Ludum Dare 46. Postmortem


Penguin March Postmortem

Heya. I have decided to write a rather casual Postmortem for my Ludum Dare 46 entry, so expect some typos and bad grammer. This postmortem will be mostly for future me to look back on and get some insight on what went through my head during development. I will be covering some design thoughts and lessons learned as well. So lets get right into it. 

Context

So just for context, Ludum dare is a online game jam that is hosted twice a year and is pretty big. The theme is publicly voted on. I participated in the Compo, so only 48 hours and I had to work alone and completely from scratch. I have only participated in Ludum dare one time before this, but I had plenty of jam practice since then. This Ludum dare was my  5th finished game jam.

The Theme this year was "Keep it Alive". before the jam started I did a fun little write up of my thoughts on game-jam themes (https://ldjam.com/events/ludum-dare/46/penguin-march/here-are-my-thoughts-on-themes-in-general here)

to be honest I was not a huge fan of this theme, its a theme that implies a pretty specific set of mechanics to choose from. While with enough interpretation of the theme could result with unique ideas, alot of entries landed on very similar ideas. I personally prefer themes that ask a question with alot of different answers, I think my favorite Jam theme was "Take a mechanic and make it in another dimension". But now im rambling off topic.

Planning

So with alot of jams, I end up starting them in a voice call with a friend who I can talk to, Just to bounce ideas off of him. I have been watching alot of penguin documentaries recently, I have always loved penguins and was stuck with the thought of how horrible it is to be a penguin. Just the thought that the only place where you can get food contains giant monsters, and they will sit on the beach staring at you. The first penguin in the water usually had a bad time. So I decided on a game where you play as a flock of penguins trying to keep their eggs alive as you cross the arctic, Emperor Penguin style. The Eggs eventually got cut from the game, and I decided to make an Oregon trail x Banner saga esc game, where you just have to survive an onslaught of random events. 

The Process

Banner saga is where I got most of my inspiration, the first thing I implemented was the penguin herd thinning which was taken from Banner saga. Its purely visual, the less "penguins" you have the smaller your herd of penguins. Its an approach I am 50/50 on for game jams, making visual polish before even having a playable game. I did make a penguin sprite before hand and made a 'Leader penguin' who has a red scarf. So before the game was playable I had 90% of my visuals. I had plans to make better visuals for the UI and ground better, but 48 hours can be tight. 

The next and most important thing I made was the event system. Something I have learned from my previous jams is that if I make producing content easy, I can add alot more of it. It helped alot in a previous game jam, for the GMTK jam I made a card game and was able to make a relatively large amount of levels and cards. So I knew if I made making events easy I could make alot! This went OK, if you have played penguin march, chance are you ended up getting alot of repeat events. There is a few reasons events ended up repeating more than I would have liked. The biggest reason is that there just are not that many events. There is only 48 in the entire game, which sounds like quite a few but there is one main issue, the event pool changed depending on what your resources are at.


I even had different events depending on what marching speed you were at. This in retrospect was a mistake, if I had more time to adjust this and make more events it would have been fine. Most players would just only fast march, so the Slow marching events were basically wasted time. It would have been better to make more neutral events. Another simple fix would have been to just remove events from the pool after they had appeared, that way no repeats! Oh well. 

Considering I had a pretty decent event making system, 48 is still on the low side. There is a pretty painful reason behind this, so for the event system, I was using unity events. This has 2 issues, 1 the event consequences could not be saved to a prefab meaning if I changed an event in 1 scene and saved the prefab I would still need to go to each scene individually to update the events. The reason it worked this way is that the consequence of the choices called the Game Manager which was a separate object. The 2nd issue with unity events is that when I made a new event I had to click 5+ times to set one consequence. So yeah, the system sucked. I was not sure if I should rewrite it because I was not sure I had time so I left it as is. After the jam I tried to see if I could fix the event system. It took 10 minutes... Now the results can stay saved on a prefab and took 2 clicks to make a new result. So yeah...

Another fun event system thing was that during the process of the game jam, I ended up completely wiping out all of my events. This was just because I tried to rewrite my event system a little and convert the events into scriptable objects (Basically a data container), if this had worked it would have fixed my prefab problem! thing is, it did not work and I stupidly just delete 30 events I had to rewrite (the ones I remembered that is).

So yeah the event system took much more time than it needed too. 

I still had a bit of time, so I did the main menus, win and lose screens. Then I remembered! I do not have sounds! so basically I had a few options at this point make the UI not look terrible, Add sounds, or  make more events. I added sounds, when I play any Jam game, if it has no sounds I have so much less fun. Sound design should be treated on the same level as graphics and story. basically secondary in a gamejam but still necessary for a good Jam game. I did spend way to much time making a script to increase and decrease the rate of chirping depending on the herd size, but the small things definitely help.

But that was basically the Jam for me, 75% of my time was writing events or working on the event system. 

Lessons Learned

So I think the big thing I learned is to avoid conditional content in a game jam, basically what I mean by that if specific conditions are required to add variety to the game, do not make it conditional. Most of my events are never seen and this made the game break realism by having the same exact thing happen twice. In another jam I had multiple endings, this works because I made it very clear how to get the other endings and made it clear that there ARE other endings. In Penguin march a player cant know how many events there are, or even that certain conditions change the events. Either Make it clear how to see the conditional content or do not have it be conditional.

The other thing I learned, is something I already knew from a amazing GDC talk by the guy who made gunpoint 

The key thing is "If you know it will be a good thing to do, but are not sure how long it will take, Give it a day", If I gave fixing the Event System just 1 hour, I would have figured out it would only take like 10 minutes. This may have single handedly doubled the amount of events in the game.

Another piece of wisdom from GDC I applied was, "Focus on Emotion" there is so many postmortems on GDC that talk about this, It is because it is VERY true. I made the Penguins cute and the game is about them dying. The simplicity of keeping cute things alive really does get a people invested, the game is basically all text but by simply having a context that you can instantly feel invested in the game ended up being quite interesting. This is all just my opinion but having very surface level context is very powerful, what I mean is having a context that is instantly relatable like "Dont let cute things die".

Conclusion

I had alot of fun this game jam and learned a TON about making event systems. I ended up trying another Jam game that was a 'Decision based' game called Mammoth Expedition (check it out it is pretty cool: https://ldjam.com/events/ludum-dare/46/mammoth-expedition) it showed me alot of really smart event system changes I should have had, things like Continuing events so an event where you do a thing and then a event that continues the previous event gets added to the event pool, or just telling the player what they lost/gain from certain choices. Compo time can be quite restrictive. 

I am glad that I have been able to make a game that I have not made before, I plan to keep that trend up for every game jam I do. I never want to make the same game, for example I plan to avoid making 3 platformers (in a row at least). This is just personal ethos, I use game jams as both a Test of my game making abilities, as well as a learning opportunity.

Get Penguin March

Comments

Log in with itch.io to leave a comment.

(+1)

Thanks for sharing! 
This gave useful insight on how to approach a random event system. Good stuff.

Usually in a jam I make something completely new, this JAM I used a system that has been in development for months.

You know my game "Mammoth Expedition". I spent most of the time just making content. I had to code a lot of course but it wasn't most of the time.

and of course having people to take care of art and sound with me was really cool. they also added some content. in fact the Fishing Camp Situation is the coolest one and it was done almost entirely by my wife.

btw my system uses both prefabs & Scriptable Objects.

I don't know why you tried to change the system during the jam to scriptables lol. I get it as a programmer sometimes we think this will only take a little bit of time and you get stuck in it trying to figure out why it is not working. I learned not to do that in a JAM. this was almost my most successful JAM because I used already clean code...

even the everyday event: -10 fuel -food*workersCount

I was not going to make it its own thing because I didn't want to spend time developing that and I will just use highPriority events to do so.

but then I decided it will be boring to see some idiot tells you every day that you lost 10 fuel followed by another idiot saying you lost food. Besides; its the core of my idea to have perishing resources. might as well spend sometime developing it.

also if anything goes wrong. I use github (you should always use some source control) I can revert my edits and continue from there.

also the github greatly increased the speed editing stuff with the team (I see you don't have that problem)