Synesthesia – Postmortem

Posted by (twitter: @fullmontis)
December 17th, 2013 1:51 pm

Wow. What a weekend. I love Ludum Dare because it helps to learn and do something, but it also stresses you out completely, especially of you are mistake prone like me. In the end, Synesthesia hit the shelfs, so to say, but it wasn’t an easy task, despite the game’s semplicity. Let’s recapitulate what happened in these 72 hours and what I have learned from it.


The Good ūüėÄ

Picking an idea I liked

Like last edition, this time I decided to focus not on making a game just for the sake of it but actually focused on an idea that I really enjoyed, even if it looked way harder than other ideas I had. This, counter intuitively, helped me a lot in getting the game done: I was very interested in seeing how my idea would have turned out on screen. If you’ve played Synesthesia, you probably felt it is quite a weird and disorienting game; if that’s the case, I’ve done my job well and I’m happy about it.

The thing I love the most about Ludum Dare is the amount of inspiration you get. For someone who is cronically depressed creatively (like me) it feels like growing back a lost arm. It is amazing. You see so many ideas with so many applications, and you can’t help but get dragged into the vortex of ideas. Then, from the mass a few ideas stand out that you really like and start implementing them.

This is the best mental state to be in when starting to make a game, to me. It doesn’t feel like you choose an idea. It feels like an idea has chosen you as your ambassador, and your job is to show it to the rest of the world as best as you can.

I felt this way with Spark, my last compo game, and Synesthesia. I couldn’t make them justice in just a weekend, but I like them so much that I am willing to work on them even after the compo is over. I’m currently working on a longer and better version of Spark, and I hope to do the same with Synesthesia, since there is so much I’ve left out. They may not be a critical success in the compo but I’m proud of them nonetheless.

Game Maker: Studio

As I said, I’m currently developing a follow up to my game Spark in Game Maker. I was lucky to get a free copy of the standard ¬†edition of the studio about a month back, and thought that making a smallish game with it would have been a great learning experience to test the waters, so to say. Then I decided to use it for the LD too, to see how it performed in a time critical situation.

I have to say, I’m very impressed with it. I was able to get a basic working engine in less than two hours. This is quite outstanding. The interface, compared to other popular development environments like Unity, is extremely intuitive, and it just “flows”. I can’t explain it in words but everything is where I expect it to be; after getting used to it I rarely even checked the help. It is definitely an accomplishment for a developer to be able to pull this off. Also, compared to other D&D environments like Construct 2, I felt it is faster to make it do what you want.

In the end, I’m very happy with choosing Game Maker this time around, and I’m sure I’ll be using it again for other small projets.

(still, it’s not all smiles, see below…)

Knowing the mechanics

As we only have a week end to complete a game for a LD, what a developer should focus on first is the basic mechanics. I had a good grasp of what I wanted from my game and how I wanted it to work, and this helped me immensely in saving time during development. I knew what I should have been focusing on and what I should have scrapped, and this made it possible for me to make Synesthesia in only 15 hours, more of less. Sure, the game itelf hasn’t much going on to show, but it was just impossible for me to make more levels in the time I ws able to squeeze in, so I’m happy that I actually got anything working at all.

Focusing on “accessory” stuff

Okay, this may be controversial. I was actually happy I spent a couple hours on making music and a micro dialogue system to give atmosphere and a setting to the game. The intro dialogue actually works like a sort of tutorial, explaining what the mechanics are in a subtle way, which is a lot metter than a simple wall of text coldly showing the ins and outs of the system. Also, I strongly feel that aesthetics actually should build on mechanics, empowering them, not being completely detached from them.

I know that for some it would have been better to just focus on making more content for the game itself, but I don’t regret my choice. I like games that have a mood to them and I would have been very displeased if I couldn’t give it to the game.

The Bad :(

Reinventing the wheel and not getting priorities right

If you were ¬†paying attention, you may have noticed that I made the game in only 18 hours, and yet it didn’t qualify for the compo (it is a jam entry). Weird, right? Why?

Well, the truth is that I actually made a first version of the game engine in the weekend, but had to scrap it whole about 8 hours before the deadline for the compo. The reason is: I’m stupid. One of my biggest sticking point about rapid development is that I can’t understand when to drop something. I spent almost two days implementing in Game Maker a particular way of displaying strings that allowed for interesting animations, like vibrating characters and such. This was an absolutely superfluous feature, but I didn’t realize this until 36 hours later when I had a messy and buggy string display system that made showing simple text very complicated, without much gain on the visual side. To my defense, this initially was a big part of my mechanic so it had some sense in the beginning, but I must have realized before that it wasn’t fundamental to making the game itself.

So what happened is that I just threw the towel and got the rest of the afternoon off to lower the pressure a bit, since I was fuming like a steam engine. Luckily, I was still motivated, and on Monday I was able to pull together a new engine quickly and arrange some gameplay together. But I’m still sore I committed such a naive mistake, again. This is the third time I’m trying to get into the compo, and every single time I didn’t fail into losing at least one afternoon on something that I wouldn’t include in the final game because I wasn’t able to complete it. Maybe next time my brain will be wired and I’ll be able to complete a game without all this nonsense.

Still, I feel that this time around the tools I used got in the way a bit, even if I shound have expected it (another mistake). And this brings me to the next point.

Game Maker Language

Okay, ¬†now let’s see where ¬†Game Maker ¬†caught me off guard and¬†pissed me off. Ohh, boy this is going to be long.¬†

Above I praised GM for being an amazing engine for rapid prototyping and intuitive use. But under the fun stuff there is unfortunately a thick stuff of sticky and smelly matter that we should talk about.

What I like about Game Maker is the fact that it gives a scripting language as an alternative to the D&D interface, which is great, since scripting is way faster to develop and allows for more complex implementations that would take a lot of time with pure drag and drop. The smell starts to rise when you actually analyze the scripting language itself. It has the structure of other c-like languages, and this is cool since it is a syntax that I really dig. But if you expect an high level of abstraction like almost all of modern languages allow, well, then you are in for a big disappointment. I (probably naively) expected that, and was disappointed to discover that, even if the game uses some abstractions called “objects”, in fact inside the structure of the code they aren’t, at least not in the OOP sense. You can’t define methods specific to a class. You don’t have first class functions. There is no means for encapsulating data. Inheritance works weirdly. Basically, it’s a purely procedural language masked as an OO one, which leads to a lot of incomprehensions for those like me who are used to the latter.

Of course, this doesn’t limit the amount of stuff you can do, in any way. Far from saying that. But this kind of paradigm today feels antiquated: making it do some stuff feels kinda hacky and making code easy to maintain is hard. ¬†It’s just some general smell that I would prefer to avoid since there is such a huge amount of modern languages that allow for great levels of abstractions, that helps a lot in developing a game.

Another weird thing about GML is scripts: I thought that they were just functions that you call and then return from. It appears this is not the case. For example, at a cenrtain point I had to call a script iside a loop. Inside the script was another loop. This caused the game to crash, for some reason. I was puzzled. It took me more than half an hour to find out that since both loops were using the same index i, the index, when “returned” from a script, had changed. This means that, even though “objects” have local variables, these variables are common to the scripts that you call. This is a very strange behaviour and while I may understand why this is the case (because of the procedural nature of the Game Maker engine), it really bugged me off. It is the kind of small limitation that really makes debugging hell in bigger projects.

This comes probably off the fact that Game Maker has always been marketed as a D&D tool, and the scripting side was seen as more of an afterthought. But I guess this came back to bite their ass when developers turned their head in favor of more “mature” engines. It’s a pity, because as I said before Game Maker is an amazing tool and very intuitive.

So, yeah. GML is not great, and not even mediocre, I would say. But it does its job, and in the end it’s the game that matters and not the language you program it in, but still. The dev inside me cringed when discovering this stuff.


So in the end it was an instructive weekend. They say that you either learn the easy or the hard way. This was more on the sadistic side, but I’m happy nonetheless. I’m actually surprised, since I thought that I had fucked up a lot more stuff, but instead it turned out to be productive, compared to last compos. Maybe (just maybe!) I’m getting the hang of it.

So that’s all. Again, if you want to check out my game Synesthesia and leave a comment, feel free to. Now onto playing a lot of games for the next 3 weeks. See you!

Blog Entry ->

Tags: , , , , ,

Leave a Reply

You must be logged in to post a comment.

[cache: storing page]