I’m halfway through, and here’s what I’ve got so far:
Tiny, isn’t it? Don’t worry, you’ll be able to upsize it.
This time I decided to go with a Java Applet, rather than asking users to download a jar. I’ve got to have it tested on other computers this time, as my last entry had a few deployment problems.
I’ve got myengine running nicely, and the actual level mapped out on paper (it looks like there will be 9 tiny worlds). I think I’m up to where i want to be with this one, including the 12 hours i’ll miss while sleeping Sunday night/ working Monday morning (Australia time)
Play it Here
Or rate for it here (I think)
How it works
My Ludum Dare 48-hour game competition entry was a pixel platformer. This technique allowed me to rapidly create unique levels that would otherwise require some sort of map editor.
Each level was 100×100 pixels, but magnified 4x so that it would better fill the screen. The levels are made up of 3 different layers:
- The background (top third of the image)
- The foreground (middle third)
- And the “hardness” layer (the bottom third)
The player is drawn between the background and foreground layers, and the sprites would either be drawn between these layers too, or in front of everything. The hardness layer uses 3 different colours to specify what sort of pixel it is:
- Black – solid, used in walls, floors and ceilings
- Grey – semi solid, used in ladders, some floors near stairs, and water
You can walk on or through it, or press jump to move upwards, and you press down to move down
- Any other colour – not solid
There is the possiblitity of adding more types such as “destructable”, water, slippery or lava, but i did not have enough time to implement them during the competition.
Each time the player would move, the game gets the colours of the pixels behind the player’s new position, and it determines whether or not the player can move that way. This could potentially be used for NPCs as well (the zombie didn’t do this)
Here’s the timelapse video i recorded while working on my entry. The screenshots were taken every 2 seconds, which adds up to 24430 frames and over 4.5GB of jpegs (and some pngs)
I’d put annotations throughout the video, but I’m lazy, so I just did a few at the start