Rogue Zombie POST JAM WRITE-UP


Rogue Zombie Write Up!

Hi friends!

Before I begin, I want to thank everyone who reads this or has any interest in my games whatsoever. I recently got finished recovering from nose surgery because I couldn’t breath properly for many years and had a rough recovery, and prior to that I was very sick. I’ve been “away” from game developement for many months due to health and sickness and I’m beyond thankful for this opportunity and “jump start” back into development. You’ll never know how much this truly means to me but I hope I articulated it well enough.

BUT enough about me, let’s get into the GAMES!!!!


I’ve never released a game, nor talked about a game I’ve released so I’ll try my best to explain my journey making this project!

This was my first game jam and first public game release ever! SO I’m super happy!

Itch designates a Postmortem as: Share what went right, what went wrong, and anything else you learned after completing a project. So that’s what we’ll do!

This will also probably be a bunch of tech talk too since I’m more of a programmer than anything.

The project started with the theme of “death being an opportunity”. I felt without making some thing too complex, a survivors style rogue like where your kill count is the currency could fit the theme fairly easily.

I started early with Unreal’s UE 5.5 FPS template and immiadiately into handling character spawning, waves, and hit detection. After a day or so, I had a modular and structured system created that allowed me to easily create new enemy waves and new enemies within minutes.

Sadly, for a game jam, this modular approach in Unreal was not very time efficient.

Unreal has so many methods of communicating between objects, and most of them are kinda complicated and time consuming, such as custom components, event dispatchers, and interfaces.

I just wanted a quick communication approach between world objects that didn’t require an intermediary BP to communicate between every set of objects (consider the “right” way). So we did “the wrong way” and tried to use direct casts and object parent type work arounds to avoid using interfaces, components, and events.

In the end, I still used as custom component for health of the enemies and player, event dispatchers for handling damage and killing enemies, and a few interfaces for the UI.

Regardless, we got enemy wave spawning working!

By the second day, I moved into creating the city map and trying to quickly put a map together. To be honest, I was hoping for an symetrical multiplayer-style map, but once I started putting blocks together, the city took form and the map quickly became a city instead.

While figuring out how to build the map, I started to use SuperGrid, which is a set of grid-base building blocks for unreal. This quickly allowed me to put together a base foundation and art style for the map, main menu world, and lobby.

Similarly, I wanted to spend some time messing with visuals and lights. I find in my projects I spend a lot of time with visual effects and camera work and enevitibly, the VFX work in the project took away a lot of my time too.

I’ve come to learn that a lot of 3D worlds can be boring unless there’s something to break the pace. Empty worlds can only do so much, but if you add some trees, now that’s more interesting at least.

Shooting zombies is cool but it isn’t cool unless it looks and sounds neat. Whenever the world is dark, the impacts and effects need to carry a lot of the weight of the gunplay. Players need responsiveness and to feel their world is properly reacting to their inputs.

As a result, I added a handful of effects to make the gunplay and shooting more fun. I started with a base niagara effect on the bullet projectile from Advanced Magic FX 13, and then using more of their effects, I added an inpact on anything effect and a seperate niagara effect for when the enemy is killed.

This VFX stuff worked pretty well for the most part. Sadly, there is an occasional collision bug which causes the effects to spawn at 0,0,0 instead of where the bullet impacted. This hopefully should be an easy bug to fix, but it was sadly something I didn’t notice until the Game jam was over.

Beyond the bullet VFX, I spent some time working on post processing layers and color grading in Unreal. I used Fog Gradients and AmplifyLUTS from FAB/UE to get the cool fog look within the world. I can’t really say much about this other than it was time consuming and tedious.

I like the end result, but most of the “testing” was switching out different colors and testing them until I found one I liked.

Even with the VFX processing completed, I still messed around with some lighting and camera settings to properly lighten out the world a bit more. In my first implementation, you could only see like 5 feet / 2.5 meters around you and it was pretty disorienting. Increasing the falloff the post process effects allowed for more light to get in so users could properly see the world and that is what was used in the jam release.

That night I also had a slight migraine but I continued working. With my little bit of brain power left, I started composing the main audio song/track for the game. This took me around 30 minutes to create, and it honestly took me longer to edit it and create. I have a huge interest in electronic music production so this wasn’t a huge part of the project for me. I just wish I could have made more songs.

Beyond that, there was a handful of planned things that didn’t get added:

  • Pause Menu -> There’s no way to pause or exit the game, lol
  • Properly Credits and options -> No options at all and coming soon for credits and options lol
  • Multiple guns -> Only 1 gun thats heavily based on the UE FPS example rifle
  • Multiple levels -> Only 1 level, We were gonna have a BS Unreal level too but ran out of time
  • Multiple songs -> Only one origional song
  • A proper ending -> The Jam Release’s ending doesn’t actually work, fixed in update 1-1
  • Enemy Kill Counter - HUD kill counter
  • Enemy Kill Store -> Sell your enemy kills for upgrades
  • World based UI mission select -> I wanted to use an Unreal UI Widget within the 3d world and the player would click on it, but I couldn’t get the widget interaction stuff to work properly so I quickly switched to using collisions for the world select.

By the beginning of the last day, I was slightly freaking out, thinking of how I wanted to complete the game.

The gun play was finished, the lobby was started, and the zombie stuff was pretty much working. But I didn’t have the theme or the upgrade store implemented, nor most of the UI or player traversal logic.

I spend most of the last day completing major portions of the project, starting at the beginning with the main menu. I finalized the UI design, added the options and credits screens (didn’t finish them) and moved onto the lobby.

As I mentioned before, I wanted to have a 2D text widget in 3d space as the map select in the lobby, but this did not work in the end. I probably spent ~2 hours working on it, and eventually switched to using collisions and the level BP to handle map selection.

Once the map selection was completed, I tested switching between the lobby and the city_map and the controls did not work origionally for some reason. Long story short, I didn’t tell Unreal for the player to possess the player character in the city map world. That took an hour or so to fix, lol, and it was like 2 settings in a drop downbox lol.

Once traversal was fixed, I spent some time cleaning up the lobby and adding lights, and then I quickly switch to the city map to do the same.

Upon entering the city map, a resource I was using for scatting rubbish around broke and caused many errors and hard crashes. After 2-3 hours of debugging, I eventually re-installed the unreal plugin and it was working again. IN this case, I learned that its probably a better idea to reinstall things if it doesn’t work in an hour so, especailly for stuff that was really quick for me to put together in the first place.

After reinstalling and fixing those issues with the rubbish scattering, I adjusted it back to my origional designs and moved on.

Now at this point, I knew I wasn’t going to finish the game but I wanted to have an “ending”. In the last hour or so of the jam, I added extraction portals all around the city map to teleport the player back to the lobby. If I couldn’t finish the game, I could at least try to loop the player back into playing it again through the lobby.

I added some VPX to the extraction attached it to the game manager that handles all the time stuff and tested it. It seemed to work in my origional testing so I went with it, built, zipped, and submitted the project.

At this point, I submitted with only 5 minutes left before the deadline.

Then I double checked, I still had an hour and 5 minutes left. OH I STILL HAVE TIME? I RUSHED FOR NOTHING? Oh well, I spent the last hour making the itch page and gathering the credits and attributions. Honestly, that hour wasn’t enough time and I’m still updating the itch page, but it worked out for my first one.

HOLY COW I WAS FINALLY DONE. GAME WAS SUBMITTED.

My first game jam and first released game was finially finished (for what it was).

The game was unfinished and had a few bugs, but I am super happy with what I was able to put together in such a short period of time. I couldn’t be prouder.

I spent the next 2ish days sleeping. And then I came back and rated some other titles and started working on Update 1.

Update 1 was supposed to be quick fixes, primarily fixing the ending portals. Due to my little testing, the ending extracting portals didn’t actually work 100% of the time and a lot of times, the VFX wouldn’t match with them being “working” they were basically useless beyond looking neat.

This took me WAY too long to fix. This took me a day or so to implement and fix. Long story short, I was trying to do too much with too little code. Basically, the master clock would handle the portals opening, but that same master time was supposed to handle how long the portal was open and how long until opening a new one. As you can tell, this became really complicated to code properly in an hour and that’s why it didn’t work.

I simplified this to only have the master clock handle spawning the portals. The portals themselves then handle how long they’re open. In this case, I don’t have to determine the time between closing a portal and opening a new one.

But I often have a habit of overcomplicating things like that. But I got it fixed.

Simailarly in Update 1, I wanted to fix the player’s death as when players died, the game would softlock as no dead logic was added. I added the death screen and a similar type of logic when using the portals so the player can be teleported back to the lobby.

Beyond that, there were some minor changes with meshes changing to nanite and some shadow optimizations, but everything was fairly minor.

With that update completed, I was finally statisfied with my demo being mostly done. Obviously there were some portions missing that I wanted, but I was happy the game could finally be “completed” and replayed. It didn’t feel right releasing it so incomplete in my eyes.

But wow, thats enough of me typing.

I learned so much working on this project. I learned that I love game jams and I’ll probably do another one soon!

I learned that project management, task allocation, and being “good enough” is something I need to work on. I learned that sometimes I need a change from my normal projects and tasks to properly enjoy things again. I learned that Unreal has a lot of quirks that piss me off lol. But even more, I learn about the game dev community on Itch and it’s been super welcoming!

Most importantly, I learned that I can do anything if I set my mind to it, and you can too!

Believe in yourself and hang in there! Times might be tough and suck sometimes, but everything gets better. You will too!

Thanks for reading, especially if you got this far! You’re a real peach <3 I might do another write up again if I forgot anything, but who knows! I’m done typing for now lol, this was all in one sitting so I’m ready to go play some games.

Stay well everyone! Talk again soon! Love always, MarkDotExe <3

Get Rogue Zombie

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.