Tuesday, August 4, 2015

Retrospective: Flee the Darkness!

Play Flee the Darkness!

Indies VS Gamers GameJam
Started: July 16th, 2015 11pm CST
Ended: July 19th, 2015 11pm CST
Voting Ended: July 26th, 2015 11pm CST
- Theme was Arcade
- 72 hours to make a video game.
- Create all new visual assets and code during  the jam.
- Fonts, sounds and music can be from outside sources.
- Must implement GameJolt's Leaderboard API and include one leaderboard.

The Good

I actually prepared for the game jam this time! Knowing that a leaderboard was mandatory, I decided to add one to Edgar's Adventure to test out how it works. I had been meaning to add a leaderboard to Edgar's Adventure for a few months, but I've been working on a lot of projects and Edgar's Adventure was pretty much complete. So this game jam ended up being a great excuse to finally get that done. It wasn't hard thanks to the Unity GameJolt API. I'm glad I did it because it gave me peace of mind to know that it would be trivial to implement during the game jam.

I also studied the winners of the previous game jam (Indies VS PewDiePie) and took notes of what I thought made them the winners (blog post to come). I then wrote down some game ideas that would work well with a leaderboard, so that the idea phase would go quicker. I didn't know that Arcade would be the theme, but considering the leaderboard requirement, it didn't surprise me, and most of the ideas I had come up with were very arcadey in nature anyways.

I did my best to block out everything in my schedule for those 72 hours so that I would have the maximum amount of time and energy available to me. I even caught up on my sleep during the week leading up to it, just to maximize everything I could.

I went and finally purchased a proper art tool Aseprite. I knew that I would be making pixel graphics and it was just too painful to make them in Paint.net. I used Piskel for Elimination Communication which was amazing in comparison to Paint.net, but it has a few bugs and a few missing features that made it hard to work with. Aseprite was simply amazing once I learned all of the key commands and figured out my workflow. For EC, I made two characters (Avatar and toilets) which took me about an hour for the toilet, but closer to four hours for the Avatar and its four frame walk animation. As a comparison, it only took me an hour per avatar in FTD and each one had a two to three walk animation. And I was able to get the custom art for the intro screen with about a half hour per avatar. The whopping 10 dollars for Aseprite has already paid for itself by just making pixel art fun!

I implemented as many juicy tricks as I could (explosions, particle effects, sounds, screen shake, animations, lighting). This made Flee the Darkness! my most graphically advanced and satisfying game to date.

Finally, I knew that the game icon was literally the most important point to get people to play my game, so I purposely designed custom art for the main menu that I could use for the icon to really catch the eye of folks scrolling down the list of hundreds of games. Edgar's adventure had all of 11 ratings and maybe 50 plays at the end of the previous game jam, where Flee the Darkness! had 25 ratings and 300 plays by the time the voting was over. So maybe not that large of a spike, but I didn't do any marketing this time. This is all from organic traffic. So a pretty solid increase for only a little extra work and planning. It will be interesting to see how FTD does over the next few months.

tl;dr: Be prepared, research previous winners, have a good icon.

The Bad

Sweet Bananas DO NOT USE TWO BOX2D COLLIDERS ON THE SAME GAME OBJECT. So, nothing like a game breaking bug that happens very rarely in the editor, but happens upwards of 50% of the time in the plugin. What happened was that, randomly, the avatar would be locked to the center of the screen (0, 0), unable to move or do anything. The game was literally unplayable (movement is the only player action during gameplay). I'm pretty sure this is why I have a few 1 and 2 star votes. And I'm pretty sure this is why I was firmly stuck at a 3.8 rating for most of the voting period. It kind of drove me nuts that I couldn't update the game for the whole week (the build is locked until after the voting period). I had used two colliders because I wanted one to be a trigger to trigger the pickups and one normal collider for running into barrels and the walls. My theory on why the player wasn't able to move was that the normal colliders was being initialized as super large (because maybe the second collider scaled it or something) and then the avatar was always colliding with the border colliders I have set up to prevent the avatar from going off screen. This kind of actually happened to me again when I tried to clean up the Darkness, because it has two colliders, one trigger to cause the damage over time to the avatar if they stay inside the Darkness, and another to be knocked back by the Light bullets. However, this new bug would cause the Darkness to reposition to (0, 0, 0) which would instantly cause a game over (the game can end if the Darkness moves to the right and fills the screen). I didn't think this would be a problem with the Darkness, because the DOT collider was on a child game object (so that I could rotate the angle of the collider to align with the edge of the Darkness). However, it seems that removing these second colliders has fixed the problem for both bugs, although it's hard to tell because both bugs only occurred randomly in the first place.

I probably should have added screenshots and a video of the game to the game page. I still haven't. I've been working so hard on this game, I'm a bit worn out.

The Lesson

  1. Play test your game, especially the built version. When using a 3rd party engine, you never know what you might find.
  2. Spending a little extra time to make a proper icon will pay for itself.
  3. Look at what other people are doing. The people who won the game jam are excellent mentors on how you can improve your craft. 
  4. A little preparation goes a long way. You may not be able to create assets or write code before the jam, but there's still plenty of things you can do to be prepared for the challenge ahead.