PLASMAGUN! – a post-mortem for Ludum Dare 39

Hello, there! This is the post-mortem text of my latest Ludum Dare entry: “PLASMAGUN!”, I hope you enjoy reading it.

The 39th edition of the Ludum Dare accelerated game development competition started, for me, last Friday, July 28th 2017, at 10pm, local time in São Paulo/BR. The theme for it was “Running out of Power”, one of the themes I really did want to win in the voting, so I was kinda excited to see what I could possibly do for a game.

After a few months working as a front-end developer (JS, Angular, etc.), this was the first time I kinda dived fully into gamedev mode, so I was kinda in the mood for the challenge. Mostly because I worked with developers who are really great and nice, and I really helped me get more confidence in doing stuff. :smile:

As soon as the theme was announced, I started brainstorming a few ideas and thinking about the concept of “power”. It was kinda broad, since power exists in many forms and all of them can run out (political, energy, stamina, hunger, whatever). Also, I’ve had a lot of ideas that were kinda cliché, which is also something that happens when there’s this type of theme. I decided I was not going to think too much, so if an idea got me, I’d make it.

I ended up using the idea of a plasma-type gun and equipment that leaks its power, the only thing I was going to decide was which genre and how I was going to implement it. Kinda easy, right? Well, not really.

While the theme was good, and reaching an idea was quite fast and easy, the development had a lot of stuff that made it slower than I wanted to and, even though I’m quite satisfied with the outcome, the game ended up not being 100% as I intended to.

Of course, having a published control script library (inspired by how Derek Yu’s Spelunky Classic deals with controls) for GameMaker did help me kickstart things a bit fast, but only that. :confounded:

As I don’t want to make this too long (but I think it will be anyway), I’m gonna put it into topics (so I can easily make a TL;DR later too), so let’s check, in my opinion, what were my best and worst points of this Ludum Dare!

For those who don’t like too much text, here’s the TL;DR:
The Worst
  • Chose a genre! Nice! But I changed genres as soon as I finished up coding the first style;
  • I changed the GameMaker version I was using DURING the development;
  • I also ended up watching too many tutorials and doing them all, instead of filtering stuff I needed;
  • Besides making lots of projects, I kept using the 1st version of GM to prototype;
  • I left finishing the story, graphics, music and audio, to an extent, to the very end.
The Best
  • The theme was favourable to me, so reaching a decision on an idea was easier;
  • I could keep my calm way better than previous jams;
  • I had the opportunity to use GameMaker Studio 2 (and learn a LOT from the experience);
  • I also had a lot of fun recording and making the music and sound effects for the game;
  • The game, even not 100% as I wanted, with all its faults, has a replay factor to me.

And, now, for the full text…


The Worst

Chose a genre! Nice! But I changed genres as soon as I finished up coding the first style

I came up with two genres that fit what I wanted for this jam: a platforming shooter (Abuse, Contra) or twin-stick shooter (Dungeon Souls, Nuclear Throne). I decided on the former, but as soon as I decided on it I realized I forgot about a lot of things in GM! So I reached out to Zack Bell’s Platformer Tutorials and started doing them to start.

BUT, as soon as I finished writing the platforming controls and mechanics, I realized I didn’t like the outcome of it. Also, generating the stage in a random fashion sounded a bit hard, so I scraped the genre and went for a top-down shooter mechanic. Not the best thing, after you started coding things for 5 hours, but it’s ok, I still had the time, right? Not so, because…

I changed the GameMaker version I was using DURING the development

I did have to fix a few things, remove compatibility stuff, and it also did make things a bit harder, since a few things were changed from versions. Though the overall development experience was really smooth, and GMS2 didn’t crash much (2 or 3 times during development) and I didn’t lose anything I did.

But, even though smooth, I wouldn’t advise anyone to change versions during the development of a jam game, specially when changes in the language and methodology happened from versions. For example: backgrounds were removed in GMS2, and the way you handle the camera is a bit different, so it kinda made developing a bit slower. But it was not only that, since…

I also ended up watching too many tutorials and doing them all, instead of filtering stuff I needed

Tutorials are GREAT, and I’m often watching them. There are great stuff from people like Benjamin “Heartbeast”, Shaun Spalding,Lewis Clark or Zack Bell, plus the things you find in forums and the GM community. BUT you should filter stuff you need for your project when making a jam game.

What did I do wrong here? Well, for each tutorial I made I created a new project and coded everything, then ported to the main project. It doesn’t sound bad at first, as long as you don’t get that I checked tutorials for more than 8 hours (counting every now and then), which kinda slowed down even more. But that’s not all, since…

Besides making lots of projects, I kept using the 1st version of GM to prototype

When you write projects on an engine, you should prototype stuff you need in the engine. No problems with different versions, as long as you don’t have to adapt stuff to work between versions.

This is something I shouldn’t have done because I ended up making at least 6 projects for prototypes: 2 random level generators (using ds_grid and a Nuclear Throne-like methodology), a dynamic camera test, text box test, pathfinding and even a top-down mechanic test. Worse: I kept TWO versions of the main game project, one with the platforming in it and one without (the final version).

The biggest problem here, besided the mess, was that I had to port projects from the tutorials, which were made in GM:S 1 to GMS2, and I had to read the help, look for stuff and etc. It ended up slowing things a bit more, but once I did port them all, making the main gameplay was a breeze, except for the fact that…

I left finishing the story, graphics, music and audio, to an extent, to the very end

I did wanted the game to have better graphics, but with so many tutorials done I just couldn’t work on them more, the same thing goes for audio and music, even though I did like a bit of them. But I also left cutscene text to the very end, so everything feels too rushed for me.

The main character and bots feel rushed, the sound effects not well balanced too, the repetitive and simple music also.

But in the end, it’s not all that bad, there’s also good points in it! So here comes…


The Best (for me)

The theme was favourable to me, so reaching a decision on an idea was easier

As I said before, the theme was really good to me this time, so it was quite fast to decide on something. I remember last time taking more than 24h to decide on a theme, and even more on earlier attempts, so it was really nice.

Of course, having a favourable idea leads to a LOT of clichés, which you may or may not avoid. I don’t think clichés are that bad, as long as you do good justice and work nicely on them.

So I was really happy with the theme, overall, but also there was more things that made it a nice experience, since…

I could keep my calm way better than previous jams

Keeping your cool, when having limited time for a project, is always important. And if I hand’t, I couldn’t even think about finishing this project.

A lot of things helped me reach more confidence and made me keep my calm during development, the most importants which I can say are:

  • My fiancée, Glauce :heart:, giving me inspiration, Love and all the support she gave to me! It really helps a LOT and besides the confidence, I had the drive to make her proud of me :wink:. She’s the source of everything I want to do and what drives me to do my best, and I LOVE HER SO MUCH it’s great in all ways :heart:;
  • Having worked with amazing people in the last few months also boosted my confidence to a higher level, since I could see, talk, get tips and some insights on work made by really great and supporting developers;
  • Experience from previous game jams and time-restricted projects also helped with this, since I did know what to expect, what I could do and what could happen, I did anticipate on things. You do feel a bit bad when things slow down, but you’re able to keep your cool way better as you gain experience, an can stand up faster too;

These are, of course, my opinions. There might have more things that made it possible, but keeping my calm and motivation really did help see things through this. But that’s not all the good things, because…

I had the opportunity to use GameMaker Studio 2 (and learn a LOT from the experience)

I purchased GMS2 a while ago, as soon as it was out of beta stage, but kept working on 1.x, since I did had a lot of stuff made for it and was kinda afraid of porting. This was the opportunity to learn and it was the main motive to switch versions during development, even though I had all the porting, adapting and new stuff to learn/re-learn things.

I did have some crashing experiences, with GMS2 freezing a bit, and it sometimes felt like it was slower than it should (compared to GMS:1), but overall the experience was really great! Luckily, I had the opportunity to get the HTML exporter, so I could also check how it ports to HTML, even though I had font size related problems (they won’t scale on HTML :confused:).

I did want to have Mobile, but since I’m quite a bit short on cash ($239.99 is quite a bit much, converting to BRL here), I might have to rework on the game using GMS:1, if I want to release a mobile port for now. But it’s not that bad, right? It happens. :wink:

But there’s more, because…

I also had a lot of fun recording and making the music and sound effects for the game

Besides voice acting, which I wanted to do more, recording the music and sound effects was really nice! I did experiment with some stuff, so that’s why there’s few effects in the game (3 in total), besides voice.

What did I do to make the effects? It’s kinda quirky and you wouldn’t even know if I didn’t tell ya, so here it is:

  • The plasma shooting sound is my diploma tube, with the pitch shifted a bit and time shortened;
  • The plasma canister item sound is, actually, the sound of a scissor hitting a metal stylus (yeah, those used in tablets) recorded 2x, then sped up and overlayed;
  • The explosion sound is the most messed up one: it’s just a newspaper popper like this one slowed down and modified with distortion and modulation, there’s also the sound of me crushing the same popper overlayed with some pitch shifting;

Neat, right? (not really)

Music, on the other way, was recorded in a more traditional setup: guitar, an Onerr GEP50 pedal (for pitch shifting, since I don’t own a bass) and an iPad with Ampkit. It was then exported and mixed in FL Studio, using Cakewalk Studio Instruments Drums for drum sequencing.

The game, even not 100% as I wanted, with all its faults, has a replay factor to me

And that’s really a great thing, if I can say. Replay factor is something that we all want as game developers, right? And I found myself coming back and playing the game, and even mimicking the sounds every now and then, so it’s a really good thing for me.

It does have a faulty collision system? Yes! It does have bugs in shooting? Yes! It’s repetitive? Yes! But, even though all that, I keep coming back, so it’s a nice thing. Of course, it becomes way dull after playing for extended time, but I often come back for a few minutes. :smile::video_game:

So I’m really proud of the final result, and plan on expanding the concept and improving on it too.


In the end, I was really happy with all the things I did for this Ludum Dare and the initial feedback I received, was really nice and encouraging, so I can say it was a success for me! I could learn things, remember things, get better at how to measure my capabilites and how to manage projects and had the opportunity to release another project, which always gives a nice feeling in the end!

And that concluded my LD39 post-mortem. Sorry for all the blabbering, I know it’s way too long, but I did want to write a proper post-mortem this time while I was still fresh on the game.

I do plan on making PLASMAGUN! into a full game, and I do hope to release it soon. But I also have other things in the oven, so let’s see what comes next!

I’d like to say HUGE thanks again to my fiancée, Glauce! I LOVE YOU A LOT! :kissing_heart::two_hearts:

And for you, checking this post, thanks for reading up to this part, thanks for checking my game and blog! Sorry if my english’s a bit bad, but thanks!

Really thanks! And keep checking for projects and more code-related stuff!

Cheers!