Very very impressive build by ecrider. Read more here: http://www.minecraftforum.net/viewtopic.php?pid=34906#p34906

posted 2 days ago

posted 2 days ago

Code split going good so far!

Re-structuring code is amazingly painfully boring work, but I’ve got an actually playable client going now, totally split from the game logic.

I’m taking the time to do some other long needed code changes as well.

* Updating to LWJGL 2.2.0. This should fix a couple of applet loading bugs, or so I’ve been told.
* New sound engine, replacing the choppy slow one I’ve written, with a really nice one written by Paul Lamb.
* New network core code, by Riven.
* Abstractring out the model loader. This is just a very minor tweak right now, but it will allow the game to potentially load models from disk in the future, if needed.
* Adding hooks for scripting in the server
* New level file format. This one is BAAADLY needed as the current one just uses java serialization, which is a great way of painting yourself into a corner. I will make every effort to keep compatibility with old level files, but it will only load old level terrain data. All monsters and item resources on the map will be reset when loading an old map.

Left to do in the code split are the mobs and resources, and the server project.

It’s unfortunate that this means no visible changes for a while, but I will get at least an update for survival mode based on the old code out this week so you can play around with the sheep.

posted 3 days ago

What I've been doing for the last couple of days

GameJolt is running a minimalistic game compo, and I thought I’ve give the “minimalistic gameplay” angle a shot. Here’s what I whipped up over the last couple of days:

http://gamejolt.com/online/games/action/muh/992/

Today I’ll continue on the code cleanup project, which is baadly needed. The plan is to split the code up into several separate projects with hierarchial dependencies. The core basic one will just be a basic data container and level loading/saving.

Minecraft.World - Just the data, and loading/saving that data.
Minecraft.Client - Rendering, interpolation, user input, server communication
Minecraft.Server - Hosting a headless game and sending updates to that world over network.

I’m trying to work out if I should put game logic in World or in a separate project. If I put it in a separate project, it’ll be easy to write new game logic, but I have to do a lot of annoying tile type bindings when I could just stick it the initial definition in World.. hmm.

posted 4 days ago

Skin Previewer is now up to date

Check it out: http://www.minecraft.net/skin/skin.jsp?user=PuyoDead

Click and drag to rotate, click to pause/resume animation.

posted 1 week ago

Client 0.29_02 is out, fixing the disconnect bug

Ashleigh helped me test the disconnect bug after first convincing me it was real (I’m a programmer, ok? That’s a bad trait..), and we found it.

It’s been fixed, and the client has been updated.

Technical mumbo jumo:

If someone logged in with a custom skin and you had him/her onscreen, the game would load the custom texture. However, the texture loader wouldn’t get bound properly until the custom rendering code in networked players got called (the hovering name), and I since I recently moved that to only show when mouse-overing people, well, it usually wasn’t set right.

Later, when that person disconnects, the game would try to unload the texture using an object that wasn’t bound, resulting in a null pointer exception and a crash.

posted 1 week ago

Additionally, the disconnect problem

I’ve been told there’s a disconnect bug where a lot of people (but not all) will get disconnected at once from a server. If anyone has any further information about, or detailed tests, or anything like that, I need it!

Do you?

posted 1 week ago

If you're getting the error(5): null thing. Also, hats!

I’m having trouble tracking it down, so I need your help. Please check your java console for any exceptions (large chunks of confusing looking code with line numbers) and email them to me at markus@mojang.com

The java console can be found in Tools -> Java Console in FireFox and similar locations in other browsers.

In other news, want to know how people are doing the glasses and hats? Check out this nice tutorial by PuyoDead: http://www.minecraftforum.net/viewtopic.php?id=3413

posted 1 week ago

The origins of Minecraft

While looking through some project folders, I found an old protype of a game that never quite became anything. Kinda.

It was called “RubyDung” (for various reasons), and was supposed to be a base building game inspired by Dwarf Fortress, but with a heavy focus on accessibility. Here are the screenshots from that game:

http://www.mojang.com/notch/misc/rubydung/1.jpg
http://www.mojang.com/notch/misc/rubydung/2.jpg
http://www.mojang.com/notch/misc/rubydung/3.jpg
http://www.mojang.com/notch/misc/rubydung/4.jpg
http://www.mojang.com/notch/misc/rubydung/5.jpg

Around this time, I was also playing around with the idea of making a zombie game with a graphics engine similar to GTA: Chinatown Wars. I made my own fully 3d texture mapper from scratch for the first time in my life (I had only one 2.5d texture mappers up until this point). The idea was kinda vaguely to make a spiritual sequel to Left 4k Dead.
It looked a little something like this: http://www.youtube.com/watch?v=9Vmy-ZNbGXE

As the RubyDung engine got more advanced, I started thinking about adding a first person view for following your minions around, kinda like in Dungeon Keeper. It worked ok, but the graphics got very pixellated and distorted, so I left it out.

But then I found Infiniminer. My god, I realized that that was the game I wanted to do. I played it in multiplayer for a while and had a blast, but found it flawed. Building was fun, but there wasn’t enough variation, and the big red/blue blocks were pretty horrible. I thought a fantasy game in that style would work really really well, so I tried to implement a simple first person engine in that style, reusing some art and code (although not as much as you’d think) from RubyDung, and came up with this:

http://www.youtube.com/watch?v=F9t3FREAZ-k

The response was very positive, and I was blown away at how good the framerate, and how well it ran in a browser, so I decided to go for it. I knew I didn’t want the flat sprite look of enemies that Infiniminer had, but I also knew I wasn’t a good enough artist to make anything that looked really good. Additionally, realistic looking models would clash horribly with the terrain.

Then I realized I had already made fairly cool looking player models when i did ZombieTown, so I spend some time porting them to OpenGL, and ended up with this:

http://www.mojang.com/notch/minecraft/screen0.jpg

And that’s where we are now.

posted 1 week ago

Ooohh, great suggestion by Ashleigh on irc

Ashleigh suggested a button to show all names on screen, regardless of if they’re hidden behind walls or not.

Expect that client update to arrive either later tonight or tomorrow if I get horribly lazy.

posted 1 week ago