[LD27] 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!

[LD27] 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.

[LD27] 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.

[LD27] 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.

[LD26] 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!

[LD26] 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.

The Well (Day 5 devlog)

thewell

Download: Custard Games: The Well

The Well is my first game I’ve ever finished making, and is about a boy who falls into a well and has to navigate his way through a dungeon to find his way out.

Development: 

As I only gave myself five days to complete this project, the game has turned out really short. I blogged my progress each day, if you are interested in learning more about the development, read my devlogs linked below.

Devlog – Day 1

Devlog – Day 2

Devlog – Day 3

Devlog – Day 4

In the end, the game did not turn out as long or complete as I would like it, so I will probably revisit the engine in a few weeks using a new set of assets and storyline. I hope to spend more time on game design and assets, so I hope it will turn out to be better made, and much more fun in general. I should also hope to document my progress better as I will have less time constraints.

 

The Well (Day 4 devlog)

Nearly done now! Today wasn’t as productive as it could have been, I spent way too much time looking around for royalty free songs and sound effects, and didn’t really come out with anything good. What I did accomplish today was adding some new textures such as the spikes, though I had to do it myself since the person who offered to help dropped out. I also added sounds into the game, and a menu screen to pop up before and after the game. I am quite happy with how the game has turned out, though I will have to do a lot of level design and art tomorrow to release this game in a reasonable state.

The way I did sounds was to have a central sound manager with a hashmap of all the sounds I need. When I want to play a sound like the player running, I set the player’s sound to the sound I want, and call this sound manager to play it in a loop. The other method I use for one time sounds such as the thud from falling or the sound effect when you die is to simple directly ask the sound manager to play the sound once.

the well menu screen

Starting splash screen

The spikes I did for today don’t really match the overall style of the game, however, I don’t really have time or skill to improve them at this point. From now, I need to focus my time into level development, and other high priority tasks such as the game over screen. I also did the art for my menu screen which isn’t amazing, but I am happy with it. I realise I won’t have a lot of time tomorrow, but it will be my absolute last chance to release this game within the next few weeks so I have to power through, and if it isn’t as complete as I would like it to be, then so be it. I am optimistic about it though, as I coded it quite flexibly, which means if I want to make a better game at a later time, I really only need to do the assets and level and not too much coding.

The challenge I faced today was using my time wisely. I spent far too long looking up sounds, and didn’t end up with many at all. I am not fully happy with the sounds I have right now, but I doubt I will have time to change it.

The Well (Day 3 devlog)

Progress! It is actually starting to come together to form a real game now on day 3. The main features added today were checkpoints, death, water, and some new art. Firstly I just wanted to mention that I now have somebody working with me on the project. Someone who read one of my posts about the game messaged me and asked if he could help me with the graphics. Since I am terrible at it, I’ve let him take over the sprite design front.

The Well - Starting game

Falling into the well

Now that I have art to use instead of my black and white placeholder images, the level actually looks like a proper level now. Not only does it look like a real game, but it is starting to have an objective to it. I added in blocks that can kill you now, so these will be things like spikes or lava, and if you touch them you are killed. Luckily, I also implemented checkpoints, so after dying you get respawned at your last selected checkpoint. The checkpoints come in the form of candles. If you walk up to a candle and press x, your character will light it and it will activate that checkpoint. The last thing I added was water, just because it was easy and added some variety to the level. When your character is in water, he is basically just slowed down, so he doesn’t move as fast or jump as high.

The Well - New checkpoint

Checkpoint candles on the right

Today felt really productive because of all the foundation code I had set up in the previous day. It is now easy for me to add all kinds of new blocks with their own functions to the game. I’ve also managed to get this system integrated with the map editor I am using so that none of the levels have to be hard coded, but can all come from file. This results in much more flexible development, and allows the artist to test his art without needing to edit the source code at all.

In order to let the artist and testers play the game, I had to export the game in a runnable jar. This proved to be more difficult than I initially thought because of the way files are handled. The way a jar gets images and files is different to the way I was using before which took me ages to figure out, but now I know better for future projects.

A challenge I had today is that I spent ages trying to figure out a bug I am having with my character’s jumping. For some reason there is a combination of keys you can press you give your character a larger jump than usual. This is something I will have to fix tomorrow as I haven’t entirely ironed out this problem. Tomorrow, I want to work on a menu interface and/or implementing sounds into the game.

The Well (Day 2 devlog)

Day 2 of development for The Well has just finished. I didn’t get as much done today as I would have liked, and am falling behind. If I really want to finish in these 5 days, I am going to have to really focus on it and not get too caught up prematurely optimising things or getting too ambitious. With that said, there was some good progress today in terms of art and coding.

Coding wise, I have set up some world physics for the player. Every game tick (every time the physics up dates), I apply a set acceleration downward on all non fixed physics objects to represent gravity. At the moment, this is just the player but it will automatically be applied to any other objects I put in the world such as mobs or a box. When the player presses up, it gives a larger acceleration in the opposite direction for a fixed amount of time before gravity causes it to slow down and fall again. The difficulty I had was trying to make sure the player can only go upwards for a certain amount of time, and then make sure that they are touching the ground before they could jump again. The good thing about having this system set up was that it made it easier for me to set when what animations need to be played. Since I had all this information of when the player was touching the ground, when he was jumping and when he was falling, I then was able to easily tell it to play the desired animation.

The Well - Falling screenshot

Character with animations and physics

The animation system that I’ve set up took me awhile to figure out, but I managed to get it to work in the end. The way I set it up in the end is that each entity sprite has a list of animations, and each of these animations are made up of animation frames and some other data. Each frame is given a duration to be played, and each animation has a timer that counts how long the animation has gone on for. When the duration of a frame runs out, it then tells the sprite to display the image of the next frame. I had some other variables such as whether the animation loops, or whether it ends with a fixed image. This was used for things like the falling animation where the character raises his arms, and they stay raised until he hits the ground.

The Well - Walking screenshot

Character walking with an animation

The progress I made with art today was that I managed to get some animations for the player drawn. Each animation is just made up of a few different images (about 2-4), and so today I managed to draw the animations for running, jumping and falling. I am getting more used to doing pixel art, so hopefully by the time I get to doing the textures I would be able to do them quickly as they should be much easier than animations.

Challenges I had today was all the bugs I kept getting every time I tried to add something new such as the animation system or the physics. I think I really need to think clearly about what I want to implement and how I am going to do it before just writing a bunch of code that I later have to go through, fix and clean up. At least I managed to do better today on not prematurely optimising code as the systems I had to make today were pretty specific to this type of game.

Although this project is small, making all these little bits of it are making me see the potential of what kind of game I could accomplish if I wanted to designate the time. After I finish this project, I may try to use what I’ve learnt to implement a more complex version of it with better physics and more modular code.