Minimalismism Post-Mortem

Posted by (twitter: @tayl1r)
April 30th, 2013 3:59 pm

This is not the first LD48 I’ve entered, but it is the first I’ve finished. For the theme of Minimalism I decided to make a platformer that was a single screen but, as you progress, the walls shift creating new obstacles. My tools of choice were: C#, XNA, Photoshop, Notepad++, sfxr and pxtone.

Of course, you can play it at the compo entry page and here is a video of it being completed.

“Design Document”

On a project like this you don’t really need a design document as you’re implementing everything yourself and there’s not enough time to forget what you’re doing. However, it’s nice to write ideas down and come up with a base plan, if only because the act of doing so brings forward more thoughts and forces you to consider the implications of your ideas. Plus, I’m kind of used to writing my ideas into documents because of working on teams and, basically, I just like writing up systems into documents and do it even for games I’ll never make… So, here is what I wrote after waking up on the Saturday and eating a muffin.

Minimalism

A platformer that all takes place within the same ‘room’. Each time the stage is completed (the player reaches the goal) the stage is manipulated into another layout.

512×512 made up of 16×16 blocks.

Possible to die? Each ‘goal’ is therefore a checkpoint.

Layouts

We start with a hard-coded layout. Each time a level is completed we run a little Lua script that will setup the next level by creating blocks and telling existing ones where to move. The player character is frozen until the transformation has finished.

Will make up more on the fly but will at least need these:

MoveBlock(x1, y1, x2, y2, speed, isNewBlock);

Moves blocks from one location to the next during the ‘transform.’ The true/false determines if a new block should be created for this. To remove blocks we have them overlap an existing one (i.e. move into the ground)

NewGoal(x, y);

Puts down a new exit point. Required on all stages.

Corruption(x, y);

Kills you if you touch it. Killing you just sends you back to the position of the last gate you touched, though.

Finale

Some kind of constantly moving stage where reaching ‘goals’ just increases the speed? This needs moving collision. Very last goal would be invisible with a path leading out of the screen (kills sound too). Would have the ‘transformation’ sound looping with the normal ambient throughout. ART!

Sound

Generic ambient music during the stage with another track over it during transformations.

Hah, and I should point out this is not how my design documents usually read, it’s just my brain being sick in Microsoft Word at 7am! It isn’t even consistent within itself; going from ‘maybe you can die?’ to ‘this is the script command to add tiles that make you die’ and what does “(kills sound too)” even mean?

I can single out a couple of things that I didn’t do:

  • Finale: I’m not a coder and doing normal collision was such a pain I didn’t want to entertain this thought for the finale. I also didn’t really add a finale at all and the game just decides at stage 30 it’s going to wander off screen.
  • Ambient Sound: I’m also not a musician! I was tempted to use a very liberal interpretation of what sound samples we could use (though I didn’t!). In my head there was these two perfectly mixed tracks that faded in and out but I couldn’t make anything pleasant come out of my headphones. In the end I made some noise in pxtone for the transformations and there is no ambient sound.

ld26

Jump

I wanted to make sure I got the essentials right even if I was rushing everything and writing horrible, horrible code.

The jump happens as soon as the input is detected and for the first 20 frames while jump button is pressed gravity is cancelled giving a higher jump arc. I’ve been told most classic platformers do this an even simpler way: just capping the velocity when the button is released.

Air control is exactly the same as ground control (think Megaman) so you can jump and then steer as if you are on the ground. Personally, I prefer less free air control but for a game to feature this, and have the player feel like bad jumps are their own fault, you need rigorous level design and iteration that I didn’t have time for.

One thing I did do, and in hindsight I think it was needless, is add a jump buffer. I’ve never seen or felt this in other games but I wanted to experiment with the idea. When you run off a ledge there’s actually a 3 frame window where you can still jump despite running in space like Wile E. Coyote. I realise because of gravity this jump will actually be lower than those done on the ledge and I didn’t resolve that – at this point I had to stop wasting time.

LD26_2-300x300

Regrets

These are my biggest regrets on the project:

  • Play Barriers: Generally for an event like this you want to make a game that is playable in a browser. Players should just be able to click the link off the website and immediately be in your game. Not only did I require people to download an executable, virtually nobody who doesn’t develop for XNA actually has the required files to play XNA games on their PC! What a hassle.
  • Ending: The ending dissolve was there because I couldn’t think of a better way to end it. It’s lazy, but I knew I didn’t want to waste time with something riskier at the time I was implementing it.
  • Title: Minimalismism was literally my first thought after I realised submitting it as LD26 would be a bad idea. This didn’t get a single thought through all of development and it doesn’t tie into anything – it’s just a stupid last-minute name.
  • No Moving Collision: While I still agree with my decision to not implement this I feel like much more interesting levels and obstacles would have been made if it was available.
  • Bad Level Design: 99% of the level design was me winging it in notepad++. I feel like this concept was sold short by my rather unambitious approach to getting levels in.
  • Pot Noodles: I had these for lunch Saturday and Sunday. It’s like tipping an ashtray into your mouth.

One Response to “Minimalismism Post-Mortem”

  1. Haette says:

    I just played this and thought something about it felt nice, and here I find out that you did the jump buffer thing. I love that thing. It’s a very nice thing.

Leave a Reply

You must be logged in to post a comment.

[cache: storing page]