Equilibria – Post Mortem

Posted by
May 1st, 2013 8:32 am

So here is my Post Mortem for Equilibria. which can be found at my entries page here. As this was my first LD I am quite satisfied with the outcome: I finished in time and most of my ‘I like to have it in’-stuff actually made it in the game. Unfortunately a few things were left out and got scrapped during the last few hours.

The Developent Process (iteration one)

Got up at 6 AM, saw the theme and tried to come up with some good idea. As minimalism was actually one of my least favorite themes during the voting process, I knew that it was not going to be an easy task for me. After a few cups of coffee, my first concept was to interprete minimalism in terms of ‘reduce to the bare minimum’ and apply this to the sensual information of the game itself – namely color and music. The phrase that stuck in my head was something like “the empty screen is the goal” thus making the reduction process the actual gameplay: the player would start with some sort of chaotic sound and color system which he would have to tune down by neutralising sounds and colors, leaving only one color and one sound at the end.

Exploring the first concept

Some brainstorming and exploration of the first concept which turned out to be either not fun at all or overly complicated. And yes, the litte colored dots are M&Ms…

As nicely this idea was in my head, as difficult it turned out to be to actually make a game concept out of it. At first I tried toying around with a puzzle-like game where you would have to throw color and sound particles at corresponding boxes to make them explode, thus removing more and more color and sounds from the game screen. But as the hours passed I did not see any progress so I scrapped this idea, make some more coffee and started fresh – at about 1:00 PM.

The Developent Process (iteration two)

The next idea was based on a different interpretation of ‘minimalism’: I thought of ‘minimalism’ as somehow describing the entropy of the game world. Going back to my earlier “the white screen is the goal” idea, this would mean that all color is somehow equally distributed. I then started toying around with the ideas of dual and opposing concepts like ‘light’ and ‘dark’, ‘black’ and ‘white’, ‘night’ and ‘day’ and especially ‘low energy’ and ‘high energy’ and pretty quickly came up with the concept for Equilibria. I wanted a game where the player had to maintain some kind of energy balance, originally I wanted to make the game into more of a zen-like experience, but it somehow got a life of its own and soon I had enemies added and some energy transfer laser beam. So now I had a concept at about 3PM on the first day.

The Implementation Phase

From that point the whole thing mostly boiled down to a ‘how fast can I get everything that´s in my head into code, sounds and graphics”. As I was using libgdx as game the underlaying development library and artemis (entity component system) as a coding paradigm it went pretty smooth at first. I did not have too much experience with both, so a good portion of the time I spent ‘learning by doing’ thus browsing for tutorials and investigating unexpected behaviors. Many hours were dedicated to ‘why does this stuff not show up on my screen’-related problems. Note: camera transformations are a *** in the *** – especially at Saturday at 3 AM in the morning.

Map import, textures and raycasting

Left: first working map import where for each tile I managed to create a physics body in Box2D. Middle: simple textures assigned to physical objects. Right: experiments with raycasting for later usage with the laser beam

Graphics:

As I wanted to keep the graphics simple, I did not spend too many time on it. I designed a tileset for the level with OmniGraffle (great tool for making vector graphics on a mac) but in the end did not use it as for the antialiasing made the whole stuff look really ugly. So I just used simple white squares as building blocks for the level. As for the additional eyecandy I spent approximately 2 hours designing the particle effects and writing my own particle-creating and -rendering code which went surprisingly well. I had a little bit too much fun toying around with the particles in the end, but well… particles… particles everywhere… wheeeeeee!

Music and Sound:

I started pretty late on these, guess it was about 9 PM on Sunday. I used SunVox and sfxr. As for the music I aimed for a simple and melancholic theme which I think went pretty well. Before the LD I thought about using real-world-instruments to spice the computer generated stuff up a little, but as I did not have enough time left to comfortly start this workflow, I kept it to the artificial instruments. As for the sound effects I at first tried to use sfxr but the results were too ‘comic’ like and I did not find them fitting so I created the laser and collision sounds in SunVox as well.

Last few hours:

I spent the last hours refining the game flow, adding a title and a instructions screen, creating some winning condition and test everything. Had a last-hour problem as my Screen transitions started to get messed up after two consecutive games. Bugfixing took far too long due a bad mix of sleep-deprivation and to much caffeeine.

Tools of the trade:

libgdx, artemis, Box2D, OmniGraffle, tiled, SunVox, sfxr and way too many cups of coffee

What went right:

  • Using libgdx, a library I had never really worked with before was a risk but it turned out to having been a good idea. It is very powerful and can speed up your development process rapidly. Only downside is, that some parts are not very well documented.
  • First time I used physics in a game (Box2d) as well – something I wanted to do for years and now finally did. Yey!
  • For the most part I managed to keep my code clean and well structured. Only at the end some – maybe inevitable – ugly parts got in. But mostly I am satisfied with the result code-wise.
  • Lesson learned: entity component systems are great when developing games. First time using one and its amazing.
  • It is unbelievable how much is actually possible in such a short time, some kind of lesson learned here too.

What went wrong:

  • It took far too much time for me to come up with an idea and a working game concept. I think the time I used in developing and thinking about the first concept had better been put to polishing the actual game. I have to improve here in terms of being more quick in throwing away an idea if it does not work.
  • I started too late thinking about a winning condition. I had a rough draft of the mechanics of ‘transferring energy’ but did not think it through in terms of  “what happens when enemies are overcharged? What happens when they are absorbed?”. Next time I have to force myself to really think this trough before, and not in the last hours.
  • Actually I wanted to use some fancy lighting using Box2dLights but did not manage to get it running in time.
  • Some gameplay mechanics and cool ideas had to be scrapped in order to get everything finished in time.

Summary:

Overall for me it was a challenging, inspiring and absolutely great experience!

So if you have not yet tried my game, I would be glad if you do. It can be found at my entries page. And please feel free to leave a comment. Looking forward to hear your opinions :).

 


Leave a Reply

You must be logged in to post a comment.

[cache: storing page]