Ludum Dare 27 – Dissociation post-mortem

It is a few days after the competition now, so I’ve had some time to rest and reflect about my performance over the weekend. Although I am not entirely happy with the outcome of my game, I am very proud that I managed to string together a functioning game with an actual goal. I would have loved to have more time to implement all the features I wanted, but I guess every LDer runs into that issue.

javaw 2013-08-28 04-16-26-89

Play the gameLudum Dare

I managed to render my ridiculous timelapse video after having a lot of trouble. The biggest lesson I have learnt this weekend is not to record a time-lapse in fraps because 10 hours of footage is about 500 GB of data. Sadly, this meant I only managed to record about half of my work over the weekend, but it is symbolic enough none the less. I’ve compressed about 12 hours of footage into a few minutes, but I had to render multiple times so it really screwed up the video quality. Oh well, I have learnt from my mistake. In the future, I will use fraps to automatically take a screenshot every 10 seconds or so, and instead use the image files to compile the time-lapse.

What went wrong:

Time

I spent way too long fussing over how neat and reusable my code was, that in the end I was very short on time. I managed to program all these brilliant tools for making maps, characters, and weapons, but because of the lack in time, I couldn’t make the assets to actually use the tools. I ended up with only a few building variations, 3 characters, and 2 weapons. It really doesn’t take long to add variety to the game because of all the infrastructure I coded, but because I didn’t have time to make any art assets for them, the tools proved to be useless. I really should have just hard coded everything. That way I would have been able to focus more on the art, and actually make some sound effects and music. Next time, I will definitely try to manage my time better.

Theme

The theme was actually another reason I ran out of time. I decided to do a more ambitious project in hopes of using the theme in a more interesting and unique way. I originally planned for you to play as the good personality, trying to keep your other personality out of trouble by hiding weapons from him, or taking pills to try to suppress the amount of control he has over you. Unfortunately, I realised I was running short on time and had to change the rules so that you play the psychopathic personality that is obsessed with murder. In the end, the theme felt very tacked on, and not an essential part of the game even though the whole game was planned around it.

Art

Because of the lack in time, I really skimped out on the art. I didn’t have time to texture the buildings, floor and doors. And I had to design the characters as just emoticons so that it would be faster to make. I really want to focus on this more next time.

Music and sound

As I said before,  I didn’t have any time to make the music or sound due to the lack in time. To be honest, even if I did have a few hours, I’m not entirely certain I would have been able to make any. I have absolutely no experience in any sound software, and was very unprepared.

Mental stamina

On the first day, I should have gone to sleep much earlier. I spent a good amount of the day doing proper work, but I started to slow down near the end. I started day dreaming, getting distracted and making bad decisions due to being tired and having worked on the game for so long. I would have been much more productive if I went to bed a few hours earlier and woke a few hours earlier the next day.

What went right:

Code

I personally felt that I had done some very solid coding. The game is relatively bug free, works as intended, and has some very reusable classes. I spent too much time on coding properly, but that did mean it came out quite nicely. I might pull out some of the stuff made in here to keep for later as some basecode.

Blog posts

I think constantly forcing myself to step away from the coding to write a development log about my progress really helped me. It gave me a good break, and allowed me to take a step back and evaluate the choices I was making. This helped me slow down, think more about what I was going to do without just rushing into a decision that would have turned out badly.

Testing

I managed to get a few people to play the game and give me feedback. This helped me find a game breaking bug that I could not replicate on my own computer, but I managed to fix that. I got a lot of great suggestions, and I wish I had time to actually use them, but I didn’t even have enough time to fill in my own stuff.

General

In general, I thought development went well. I spent a total of about 25 hours of pure development (taking out breaks, etc), which is quite a lot in 48 hours. I also felt quite productive in that time, even though I might not have been producing the right things.

Conclusion:

Overall, while I wish the game could have come out so much better with all the features that I planned, I am still very pleased that I managed to make a functioning game. I think it can actually be quite fun once you understand all the rules and controls. The competition has definitely given me a kick of inspiration to continue with game development once again, so I hope to use this to be a bit more productive. My next project will likely be the October challenge, where you have to try to make at least $1 by making a game. I think completing a challenge like that will be absolutely crucial to moving up a level in terms of game development.

Got some sleep, feel refreshed

I made a vital mistake yesterday. I decided to continue coding for a few hours after I got tired. In that time, I was coding badly, taking a long time, and was uninspired in general. I’ve gotten about 5 hours of rest now, got some breakfast and went back down to the pool for a swim and some sun. (Instant noodles because I am lazy)

IMG_2372

I feel completely refreshed now, and ready to get back to some grunt work. I have most of the coding infrastructure down, just a few things left to code now. The thing I am dreading most is the AI. I’ve never worked on any AI before, so I really have no idea where to start with this one. After all that, I still need to make all the actual content to put in. This includes designing the buildings for the map (should be easy since the map is procedural), making some menus (I’ll just throw something quick together), doing the art (oh shit), and make some sounds (OHH SHIT).

I am putting off the art and sound to the last bit because even without it, I want a playable game, rather than a pretty picture that does nothing. Ok. Enough procrastinating. Back to work!

First working build

Spent most of the day coding here and there. Progress is going slower than I had hoped. I got stuck on way too many stupid things such as slashes going the wrong way, or capital letters working on some systems but not on others. After all that, I have a small prototype of what I had in mind. (All the squares are just placeholder graphics until I draw characters, etc)

Download it here: https://dl.dropboxusercontent.com/u/31109981/Dissociation/Dissociation.jar

Screen Shot 2013-08-25 at 2.37.07 AM

While I am not moving as fast as I can, I am still fairly optimistic about making an interesting game. I feel like I spent way too much time trying to make my code pretty and flexible. Really I should have just been hardcoding the whole time trying to get it done. I guess the good thing about this is that I can add additional features without much hassle.

So far, the game has the ability to create maps out of lots of different building designs. I just have to get round to designing lots of buildings. Not much in term of gameplay yet, you have control for 10 seconds, and then the AI takes over for 5 seconds making you run around like a headless chicken. I’ve added civilians and policemen, but they don’t do anything besides wander around for now. Simple movement, no path finding yet so they often get stuck inside the houses.

IMG_2371

I had a lovely dinner (pepper crab!), and I would be lying if I said I haven’t had a few caffeinated beverages.

Sun, food, exercise, and ideas

Being in Singapore, Ludum Dare starts at a perfect time for me (9 am). It’s nice to wake up, get ready and get working on the game right away. Once the theme was announced (10 seconds), I decided to grab some breakfast and head down to the pool for a relaxing brainstorming session.

Lying by the pool

I had a nice time swimming and lying in the sun, which really helped me relax. This helped me forget about any distractions, and let me just zone out to do some proper thinking. In about an hour and a half, I managed to make up my mind on what I wanted to do, and most of the specific details about gameplay. This is going to be an ambitious one.

The theme for this competition is “10 seconds”. I decided that whatever game I make, the main gameplay would revolve around something happening or changing every 10 seconds. After quite a bit of playing around with ideas, I finally decided upon a game where you play as a character with Multiple Personality Disorder/Dissociative Identity Disorder. Every 10 seconds, you lose control of your character, and the AI takes over control for a period of time. The goal of the AI is to kill as many people as possible, and wreak havoc in general. Your main goal would be to get your character to a mental institute before getting arrested/killed. There would be lot’s of civilians around, as well as policemen on patrol. In your 10 seconds, you have to try to get your character in a position where he will cause the least amount of chaos by keeping him away from things like knives and other people.

That is the general idea for the game in any case. I personally have not worked on a game with such a large scope before, and have never worked with any form of AI aside from path finding. I may not be able to complete this Ludum Dare, but I will definitely do my best to attempt it.

If I don’t end up finishing in time for the compo, or even the jam, it still seems like an interesting game to me. I will probably try to develop it further after. Maybe add in multiplayer so you take turns with a friend controlling the character. That is way ahead in the future though, for now, I need to get coding!

LD27 Day 1 - Lunch

Oh, and I have lunch all nice and prepared for when I get hungry. 🙂

If you want to read the text file I created while brainstorming, click here.

This is where the magic happens

Ludum Dare 27 starts in 6 hours, so I’ve decided to do some preparations. I cleaned up my work area and get ready for some game development, but more importantly, this obligatory workspace post.

Custard Games Workshop

This is where the magic happens. Out of all that expensive hardware, I value my keyboard the highest. I absolutely love having a mechanical keyboard, the sound, the touch, everything!

It’s been a few months since my last game, which was LD26 ASTEROIDS! (the side-scroller). I’ve learnt a lot from that experience, and I hope to improve using that knowledge. 48 hours is not a lot of time, and I want to have as much of it as possible developing the game. I live in Singapore, so the competition ends for me on Monday morning 9 am. I decided to take the day off from work so that I can be developing to the last minute, and also cleared any plans for the weekend.

From the last Ludum Dare, I learnt is that mental stamina is absolutely vital. I cannot sustain developing for 48 hours straight, and I need to look after myself to keep my brain juices flowing efficiently. This means getting a decent amount of sleep, not overdoing on the caffeinated beverages, not just eating a shit load junk food, as well as getting some exercise to keep blood flowing. Hopefully the weather will be sunny, so I can spend time by my pool thinking and getting some sun.

Looking back at my last entry, I realised that if I want to score higher on theme, I should interpret the theme more literally to get the votes. Different people have different opinions on the interpretations, but it would be safer to follow the general consensus on the matter. Currently, the most likely theme seems to be “10 seconds”, but people are often surprised at what theme actually gets picked in the end. If it were picked, I think most people would go with a variety of mini games lasting 10 seconds each along the lines of McPixel and those kinds of games. I personally have no idea what kind of game I would make if that theme comes up, but that is half the fun!

I hope to do a lot better this time. My goal is to get the coding done quickly so I can focus more on adding some content and polish to the game. Good luck to everyone taking part!

I will hopefully do a timelapse style video showing the progress, but if I don’t manage, I will definitely be documenting the development on this site.

ASTEROIDS! Ludum Dare results

Wanna try the game? Click here!

The results are in!

I am actually pretty happy with my results, coming in 416th place amongst a community of very talented individuals. Considering this is my first Ludum Dare, and the second game I’ve made, I think I did not bad at all. This, along with the comments I got on my game have definitely inspired me to make more games, and I will definitely try to take part next Ludum Dare.

Ratings

Coolness 62%
#100 Humor 3.40
#310 Fun 3.26
#416 Overall 3.30
#443 Graphics 3.19
#455 Mood 3.00
#537 Audio 2.74
#790 Theme 3.30
#1169 Innovation 2.17

My strongest category was humour. I am pleased with this because I did put in quite a bit of effort in writing the dialogue, and including funny easter eggs. Second was fun, which I am again very pleased with. Because my game is an action-arcade type game, it should focus on the game mechanics and being fun to play. I went with the decision of making the game short, but very difficult to play. I personally prefer this decision, but I’d bet that if I made it easier with more progression, I think I could have scored quite a lot higher in fun and overall. How well I did in graphics surprised me since it was just some quick programmer art thrown together. Innovation did extremely poor, but that is understandable since I didn’t really put any groundbreaking mechanics or anything into the game.

Something I am really disappointed with was how badly I did for theme. I personally thought that it followed the theme really well with minimalistic controls and gameplay. I guess people had more of an expectation for minimalistic graphics though, so I will definitely think about the theme more next time.

Overall, I am very pleased, and will use the experienced gained to try to do better next LD!

Wanna try the game? Click here!

ASTEROIDS! (the side-scroller)

Download

My first Ludum Dare entry, and the second game I’ve ever made! I’ve decided to go for a game with very simple mechanics, but is difficult as hell to win. While most people chose to go for a minimalistic art style, I’ve decided to keep the controls (only up/w and down/s) and actual gameplay minimalistic instead. It seems extremely impossible initially, but after awhile you get the hang of it.

Gameplay:
You control a spaceship that you move up and down to avoid getting hit by asteroids. Minimalistic yes? You have 5 seconds of small numbers of asteroids, then 60 seconds of full on walls of asteroids before another 5 seconds of calm if you make it that far. If you make it through all that, you can beat the game in a mere 70 seconds. Trust me, it isn’t easy. I swore profusely while testing the game.

Story:
You are the first test rocket to escape earth’s gravitational field! Unfortunately, the snarky people who made the rocket never made any way for you to turn the thrusters off, forcing you to have to dodge your way through an asteroid field.

Code:
I wrote the game from scratch in Java, using knowledge from my previous game to help me. I followed similar code for things like the game loop, the sound loading and playing, and the resource management. Coding was done quite fast as I already knew how I should structure the engine, and I hard coded a lot of things to make the progress faster. I though this was a great decision in the end to avoid over optimisation as it really helped me pump out the code quicker and leave me more time for the other things.

Difficulties:
The most trouble I had in this project was deciding what game to make, then actually starting it. Once I actually made some progress and knew where I was going with it, I flew through it quickly. I am really proud that I managed to make it in the designated 48 hours.