Third Time Really is the Charm… Postmortem and History

Well, after a furious 48 hours of coding I walked away from LD27, and as I analyze my finished product it is finally something I can say I’m happy with. Is it the next smash indie hit? Probably not. (If it is let me know, I’ll prepare the Kickstarter) But it was the first LD entry that I’ve truly been satisfied with. I can also say that it’s my least favorite of the themes that I worked with. For those maybe not familiar with my previous entries, let me go on a brief history.

My first LD was LD24: Evolution. My entry was written in Java. At the time I was learning C++ but I went back to Java due to the fact that I had no good way of drawing text in OpenGL. Look at my more recent projects I still don’t, but I’ve been writing C++ exclusively for long enough that writing Java is like writing Spanish. Yes I “know” it, but I just don’t use it often enough to do it as quickly and efficiently. So I used Java in LD24. I had every intention of doing the Jam instead of the compo. But this is a double-edged sword. Theoretically for a first timer, gaining an extra day would be a good thing. An extra day means that even though you may not write as fast, you can still do some extra work to finish up your game. However this was the first time I’ve even remotely done a speed-programming event like this one. I was burnt out by Sunday night, not optimistic, and figured that I had no desire to work on the game any longer that I might as well upload it now as a Compo entry. So I did, and my first LD game was an extremely short game with inconsistent graphics (though consistently ugly) and bad gameplay. I still think that my concept was half-decent, but I would not play that game.

 

For some reason or another I was unable to participate in LD25. I did however come back for LD26: Minimalism. Now, minimalism is not exactly my “thing.” I appreciate minimalistic design, but the games I am accustomed to are anything but minimal. Trying to juggle between patients as a Medic in TF2, or trying to keep track of suspicions in TTT, or looking for enemies in the distance before they AWP you in CS:GO is not very minimal. Even something simpler like Minecraft is far from minimal. So while I appreciate minimalism in things like interface design, I find it difficult to attach it to a gaming perspective. The first thing I realized was that I was in the entire wrong paradigm. What do all of the games I play most frequently have in common? You always play as a person or character. That is inherently difficult to have minimalistically, even with the art. When I look at minimalism in games now, I think more towards “Flow Free” or “Polymer,” both mobile games. Their graphics are flat with a simple color palate. They don’t involve any characters, not really action. They are at their core a bit of strategy and thinking. By the time I realized that I had artificially limited myself, I was too far into the compo to compete, so I continued on.

This was my first compo with C++. I still hadn’t completely figured out text rendering, but I ended up hacking together a text rendering system that applied a texture of a letter onto an OpenGL quad. Nothing groundbreaking, nothing pretty (neither in code nor on the screen) but it was somewhat effective. Apart from my realization that the concept was flawed, it also featured a dysfunctional collision detection system and bad Line of Sight calculation. I realize looking back that even my bad system could have been improved with a single added clause in the if statement, but what I need to do is work on actual gamedev techniques such as ambient occlusion. I still haven’t worked on that, since most of my development in 2013 has actually been focused on web application development with the exception of LD26 and LD27.

Then came LD27: Ten Seconds. Ten seconds? That’s a mechanic, not a theme. That’s like how Twitter limits you to 140 characters or Vine limits you to seven seconds. The bane of effective communication. How could I possibly find some way to implement ten seconds into my game?

This was a combination of good and bad from my previous examples. I did break free of the character paradigm, by making the player simply place blocks (or tiles. I prefer tiles as they are two dimensional, but blocks just seems easier to fit into a sentence that flows well.) to reach an objective. There are no people, animals, or intelligent beings in the game. My text hack I tried to recreate, but just ended up with a mess. Blued out text and all. Collision detection worked like a charm, surprisingly. There are some occasional issues if the ball gets going too fast, but those are as limited as possible. I still don’t have a satisfying length to the game, and there are other things that should be in the game but aren’t. But I’m happy with it. Out of all of my entries, this one is the most appealing both in gameplay and to the eyes. There are two textures (both needed because OpenGL doesn’t draw circles) actively used in the game (not counting the splash screen) and everything is flat colors. It could have easily fit in the minimalism theme as well. I think maybe it could have done with a little more style, but overall it is not an ugly game. Looking at Neanderthalis (my LD24 entry) and Rollout, you would hardly believe that the same developer wrote them in a span of one year.

That is the difference one year can make, and I didn’t even do that much game development over this period! A BIG part of the difference is that for my web application project, I am a one man crew covering development and design. I’m working on a more minimal update that I really do like the looks of, while losing the complexity of what I originally wrote (in the beginning of the year). So stylistically I’ve moved from ugly gradients to a more flat, geometric approach. If you look at Neanderthalis you’ll see a GIMP created cloud background, dirt colored with GIMP noise, and poorly drawn bears/humans/tools/everything. The mechanic worked but it needed to be fleshed out, reskinned completely, and extended to be long enough to be a standalone game.

What I’ve been trying to get at with this entry is that this has been the culmination of my two years programming. I’ve figured out how to learn from my mistakes. My experiences in these past few Ludum Dares have improved my skills through the ability to analyze past failures. And of all the satisfaction, the thing I’m proudest about is the short scribbled note I made on my paper used to track progress titled “learned.”

Comments

swipefaststudios
26. Aug 2013 · 00:36 UTC
From your experience which language do you think is fitted better to code 2D games maybe 3D Java or C++? Because I am trying to decide which one to learn to make games. I have learned the basics of Java but have not found many online tutorials for libraries like lwgjl which why I am moving towards c++ or c#! But I think you need libraries for those. Which one should I learn and any advice on what ides or editors I should use to code in that are free and compilers. Also do c++ or c# games only run on windows? Great post btw its neat to hear how you learned from your mistakes and improved your techniques! You inspire me! Thanks for your future help!

SFS