
^^^ Play & Rate ^^^
Since it's now been more than a week since Ludum Dare 49 began, I figured now would be a good time to submit a postmortem to reflect on how the game was made. 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.
The Idea
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.

Day One
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.
Day Two
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.
Conclusion

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.

^^^ Play & Rate ^^^