So it’s been been several months since I last made a post here, life has been busy and it’d been more difficult to motivate myself for games development than it has been in the past. Most of my time outside of work had been preoccupied with personal writings completely irrelevant to games, including a book project that I had been working on and off since May 2019, and after Rogues of the Seven Seas, I was doing lots more writing and walking around the lakes and countryside than writing code.
That being said, in April of this year I decided I was going to set a weekend aside to work on a games jam, a simple bullet hell game for a bullet hell themed game jam. It went alright, but in my stupor I failed to realize that this game jam was a week before Ludum Dare 48, and so as a result of mental exhaustion, I decided to opt-out.
Fast forward to this month, and needless to say, things went a bit crazy. To start off with the easiest, I decided I was going to take part in Ludum Dare 49. Because I’m kinda lazy, I’ve copied over the postmortem I wrote on the website to explain how they went.
Although I’ve done several game jams over the last eight years, this time was rather worrying for me as the last game jam I actively took part in this year was back in April. Not to mention, I had fallen back to my low, unmotivated, state that I thought I broke out of back in LD47, so I had done little to any hobby game development during the months since then. When I said I would take part in LD49, I was incredibly rusty.
Ludum Dare has a tendency of the majority theme being something a lot of people hate, and “Unstable” was no exception. I initially gave it a positive vote, until I found out that all I could come up with during my brainstorming session was a physics balancing game, so I changed to a negative vote.
When the theme voting results were released at 11pm on Friday, I couldn’t think of any other idea, at least until I talked it over with Kris, a friend that I usually talk with about game ideas for Ludum Dare. When I told him that all I had was a physics balancing game as an idea for the theme, he replied “city building game about balance right?”
Since I was working with a mostly 2D game framework, and a physics based city builder sounded like it’d work with 3D, I was doubtful of how good the idea would be, but I had nothing else to go with.
I quickly set up a physics world in my project, and using the custom shape object to create a bowl shaped world and some randomly placed blocks in less than an hour. The resulting GIF was slightly more popular than I thought it would be.
As with other previous Ludum Dares, I work on a set of rules. First two rules are Gameplay First and Small Scope, to put it simply I make sure the gameplay that I want is done in the first day and I make sure the scope of the gameplay is not too big.
The three things I wanted the game to do first and foremost is to place buildings, move them around, and have little people walking to and from them. Prior to this, I had worked on adding phyiscs in my engine, and I wanted to make it easy to add and remove physics to a game object. As such, all I need to do when clicking on a building was to remove the physics, and then add the physics back in when I click again to place a building.
I also wanted to avoid buildings from being dropped at high places, since blocks tend to bounce when they land, and might not go exactly where the player wants it to. As such, I had to go back to trigonometry to calculate the point on the ground to place buildings based on the mouse’s position.
As for gameplay logic, I figured having buildings not only of different sizes, but different types. Houses and apartments would house people, shops would be wider and be a place people can go to, power stations would be the largest (and therefore heaviest), hospitals can produce more people overtime, and police stations would reduce crime (and hence reduce the chance that people would die).
Unfortunately, I didn’t have the day completely free, it was one of my friend’s birthday, and we all went out to a fancy Indian restaurant to celebrate, followed by more drinks afterwards. Considering the lack of social gatherings because of the pandemic, I didn’t want to miss out, so adding people was rushed in past midnight. It proved to be harder than getting the buildings to work, since the people needed to walk from one building to another. I wanted populations to be kept track of, so buildings needed a count of how many people are in them, with the count changing when people leave and entering buildings.
Not to mention that getting people to move on a constantly wobbly surface isn’t straightforward in a physics enviroment.
One of my other rules is [Make your content easy and noticeable], which is primarily a rule I apply for doing art for the game. If I decided to go with doing the 72 hour jam instead (or was able to produce more art at a faster rate) I would have done more detailed fully coloured pixel art, but given the rustiness I have (and I had recently transitioned from Photoshop to Photopea), I went with the 1-bit minimalist approach.
Looking back at the first GIF with art for the houses, I kinda like the effect I put in with the outline of the ground drawing around buildings when they land, it’s a pretty easy trick that didn’t require any shaders to pull off, however I wasn’t a fan of the lack of detail the bowl ground had, even though in hindsight it looks like the city is balanced on some Figgy pudding.
As for music, I went with LMMS. After the suprise success of the audio in my LD47 entry, I used my same approach of utilising samples and instruments for the music. However, I couldn’t really come up with something long and complex enough that could fit the city buiding theme, which was ultimately why I took out Audio rating for this game. I’ve heard some people say they still like the music, but I don’t think it’s worth getting a ranking for.
Sound effects were also just random chiptone samplings. I kinda wish I had more options to create sound effects for games so they don’t all sound the same.
The last thing I added for the game was the weather effects, which was a combination of a random applied force and particle effects so it looked like either snow or rain. I felt like I had everything done by 9pm on Sunday, and as such submitted it to the compo.
I think the game went well, the biggest positive I can say from this game was that it was the first time using the implemented phyiscs in my engine in a game project, and it went remarkably well. There are a few hiccups that I can’t figure out (notably when game objects jump in the air after a certain amount of delay between frames), not to mention the code I used to handle the amount of people in the city was broken, leading to people being visible despite the city population being zero, as well as a lack of transparency inside the game regarding to how buildings work.
But as long as other people enjoyed it, I’m happy with it. Glad to know I can still make games in two days with only a few bumpy roads.
As of writing, that was several weeks ago, voting has since finished. One of my friends asked what I’d hoped my ratings would be, and honestly I thought the game was too simple and the hiccups would put people off giving it high scores, and with my Ludum Dare 47 having my best results so far in the compo I didn’t think this game would top it,
I still cannot believe it, even after going to the game’s page multiple times. but there it is. After eight years of participation, I’ve achieved a top 10 ranking in the Ludum Dare comp. It was surreal seeing my game on the results page without the need to scroll downwards.
Still, words cannot describe how happy I am to achieve this. Thank you to everyone who played it, shared it, and provided feedback on it.
This part is quite important, as it has both good and bad news.
I’ll give the bad news first, following from Gemstone Keeper on the Nintendo Switch, I started working on a new big project, a bullet hell shooter. I had gotten up to a pre-alpha demo before the pandemic brought a lot of things to a grinding halt. I’ve decided to place this project on hiatus for the forseable future, if not indefinitely. This is partially because the inspiration that got me to work on it has all but faded out, and although I did use some of the code for Bullet Hell Exam, so it wasn’t all to waste.
If I get new inspiration, I may pick it back up again, possibly starting from scratch, however there is a new career that I wish to focus on. This is the good news.
Starting near the end of November, I will be working for Team17. I have had a great time with the company I have spent six years with, but this is a career opportunity that I have been working for since the beginning, and I’d never forgive myself if I didn’t take it. Team17 has been around longer than I have, and I’ve enjoyed the Worms titles from my childhood, and their decision a few years ago to move into indie game publishing has shown to be impressive. I look forward to joining them, and seeing where my future will take me.