UE4 Mega Jam

After the announcement of the UE4 mega jam, I felt like it was time to participate in another game jam, it’s been over 4 years since I last participated in a game jam so it was a good way of seeing how my development skills have improved in that time frame.

But it was mainly the prices for participating that drew me in as they were just too good to pass, a free trip for GDC? Count me in! I know this is a bad way of getting into a game jam, as participation should be for fun and improving your skills, but I’m an extremely competitive person and I set my eyes on that first place, I was determined to win at all costs.


The Idea

Once the themes were live and I saw that one of them was space cats, it instantly clicked to make a game about my cat Poto. Since I had my eyes on the prices, I had to make a game that was very eye-catching, simple and that anyone could pick up and play without problems, so I ended up with a simple platformer using my cat as the protagonist.

The name Poto Don’t Die came up quickly as me and my girl have a lot of internal memes and joke around with our cat, we would get pretty high and start spouting random shit, imagining our cat would talk back to us and one of those shenanigans was Poto Don’t Die, I can’t recall the context of the phrase, but I’m sure it’s just something random with not much behind it.


Design, Preparation and Task Outlining

So I wanted to make a platformer and the protagonist would be my cat, what was the next step following that? I started looking for references to see how I would lay out the game, first games that came to my mind were Banjo Kazooie and Conker’s Bad Fur Day, I knew I wanted to make something similar to those N64 platformers, simple to play, a bit challenging, cute visuals, and quirky humor. By this time I haven’t found the hook of the game yet, which came once I started iterating constantly.

I quickly created the project, using the third person template as the base, set up my development environment and trello for organizing my tasks. Once I had the project opened up, I started looking for marketplace assets to use, as it was just me, I didn’t want to spend too much time on the art or simple mechanics since it would consume time from the core gameplay loop which I wanted to refine as much as possible. I saw the Directional Gravity pack and that drew me in as space cats and wild gravity blew my head up with a lot of ideas, I also bought the pack with chibi animals (can’t recall the name of the pack), which included a cat that looks very similar to Poto and had the same art style I was aiming for, I felt like I had what I needed to begin iterating and building the game.


Iteration Time

I usually begin new games by working on the controls, camera, and character movement, as it’s the core of pretty much every single game. I was mainly trying to understand the gravity asset pack I bought and see where I could start breaking it apart and implementing my custom logic, while also retargetting an animation pack to the cat mesh. Once I got the 3 C’s working nicely, I began playing around with cool ways of implementing the changing of gravity into the gameplay, by this phase, I started looking at Super Mario Galaxy’s implementation of gravity systems to come up with some cool mechanics.

By this time I really wasn’t too sure what I would be doing to turn this into an actual game instead of just a collection of cool mechanics, so I just kept doubling down on iteration and finding the fun, once I find what makes the game fun, then I could build the rest of the game around those mechanics. Around the second day was when I started playing around with the hook mechanics, I quickly thought of building Pathfinder’s hook from Apex Legends, thinking it would mesh well with the gravity system and once I quickly did the first pass, it felt really good and natural with every other mechanic in the game. Then everything else just clicked, I wanted the game to be about a space cat that collects inter-dimensional energy and slings around planets with his hook.


Evolving From Prototype To Game

After finding the fun, I quickly started thinking how I could combine all of these mechanics into a game that has a start and a finish since pretty much all of my games don’t really have a concrete end, you mainly stop playing them once you get bored. So I went back to my main inspirations and started gathering more references, most of them revolved around gathering collectibles to advance through levels, which is exactly what I ended up doing, the player has to collect all Aether in each level to complete it. Once I had set the game’s goal and knew the direction it was going, I went back to prototyping land and started fleshing out additional mechanics, this is where I came up with the zero-g, oxygen and jetpack mechanics.

The zero-g needed some balancing as the players would just endlessly drift around space without any urgency, so I added the oxygen mechanic to make players move from planets and platforms quickly before their oxygen ran out, then the jetpack would allow players to make adjustments to their movement as the inertia from using the hook would likely leave them drifting through zero-g without being able to return. Once those mechanics felt pretty good, I went ahead and started working on other systems such as the portals, HUD, health, the portals allowed the player to respawn and serve as checkpoints, the HUD was interesting as it’s all in-world, plus the way it was laid out was very similar to Conker’s Bad Fur Day and Zelda games, instead of having hearts, it had cat treats. The player has 9 health (cats has 9 lives lol) and when he loses all his health, it would initiate a cool teleporting sequence that would keep the players always in the action as there’s no loading screen or HUD prompt, the player simply gets teleported back to the nearest portal in the world.


Level Design and Fleshing Out Audiovisuals

Once most of the game mechanics were implemented, it was time to finally start fleshing out the level design and visuals, I started with the water dimension as I had a cool idea of playing in a dimension that had an ocean as the sky, with huge thunder tornadoes and planets in between. I wanted this level to be the most challenging one, as it didn’t have any zero-g areas and it was mainly a lot of platforming and abusing physics with the hook to get around the level, the best part of this level for me was when you had to cross a large area that had two overlapping tornadoes moving quickly, the player has to time when the tornadoes move away before slinging themselves with the hook across to reach the other side, this part is quite easily my favorite in the whole game.

I did the first pass of the water level and then quickly moved to the first level, which is where you initially spawn in, it serves as a tutorial and a playground since it’s extremely vertical and it forces the player to use the hook on specified platforms to move around. The third and final level is the biggest one, the fire dimension, I believe I left this one for last, probably 1-2 days before the deadline, so it was the most rushed and boring level out of all 3. I made a lot of mistakes in this one, mainly collision issues with the assets that I used and the fact that it’s too big, most players kinda just skipped this level.

For the visuals, I tried to keep things very UE4 vanilla while doing some tweaks to the post process settings, mainly just bumping up the saturation and other misc settings to make the visuals stand out more. Each level has it’s scene colors which gives them their distinct look. For the audio, I used a lot of Soundly assets and tweaked them a lot in-engine using Sound Cue modulations, for the music, I bought them from different websites, I wanted a lo-fi chill vibe with the game as it kinda fit the whole space cat flying around planets with a plasma hook.


Preventing Packaging and Engine Issues

Before starting I made sure to employ best practices to avoid weird packaging and engine issues, so I set up a network drive with my second workstation and used that for packaging and lighting builds at the end of every day, as well as backups. I tried to avoid renaming and deleting assets as much as possible and kept most of the project settings at vanilla, which would keep asset corrupting at it’s minimum. Staying consistent with these practices helped me avoid these issues completely, I never had an issue with packaging or crashes, which was extremely helpful as these usually creep up at the end of the development cycle and eat up a lot of your time when fixing them, as I saw in the UE4 slacker’s discord with a lot of developers facing last-minute packaging issues, a lot of these developers couldn’t finish their submission in time due to those issues, which is why it was one of the first things I made sure to do before starting the project.


Wrapping Up

Once I had all levels and mechanics set up, I quickly implemented a combat system just to give the game a bit of action to break the monotony of collecting Aether and slinging around with the hook, I originally wanted to have animal enemies but I wasted an entire day trying to get the AI working with custom pathfinding and the gravity system, so I quickly pivoted and ended up with static slime enemies that fired homing projectiles at you, this allowed me to place them anywhere and not have to worry about issues with pathfinding, as all they do is fire projectiles at the player once he’s close. It was the last day and I was awake for more than 24 hours trying to ensure the build was working perfectly and had no issues that blocked the start to finish, I discovered a couple of game-breaking bugs 30 minutes before deadline which had me freaking out, implementing fixes and running builds constantly, but luckily I managed to fix these up and submit it properly with just a few minutes before reaching the deadline, it was extremely tense and once everything was done I felt a huge relief and was able to go to sleep without any stress.


Player Perception and First Impressions

I was surprised at the first impressions, people started going nuts over my game, lots were saying that this game was going to win and that the mechanics were ridiculously fun, while others were accusing me of starting the game before the jam. Even during the development, I showcased a few videos and images and the reception was extremely positive, this boosted my confidence and had me thinking I was going to win or at least get a prize.

I presented the game in the UE4 meetup in Portland, where again, the feedback was really positive and everyone was saying that the game was amazing and that it was going to win. I also saw 3 streamers playing the game live and their faces pretty much said the same thing, once they got a hang of the hook mechanics, they were amazed at all the crazy movement they could pull off and all of this just kept boosting my confidence.


Reality Kicked Me Hard

The two weeks went by fast and the UE4 live stream started to announce the winners, my heart was pounding and I was sweating profusely while starting at the monitor, barely blinking as the categories started moving in and no mentions of the game, then came the solo developer category and I didn’t get mentioned, at that time I was like oh well maybe I’m in the top 3. Once the top 3 came up, I didn’t get mentioned, 3 went by, 2 went by and I thought, shit maybe I’m first place? Nope, they hyped up the first game to the point where I thought that shit I’m gonna win!!

Syke, my game didn’t win in any of the categories nor I was in the honorable mentions, at this point I got extremely mad and constantly asking myself what went wrong, I literally went through most of the submissions and compared them to my game, I saw their scores, I saw the streamer’s facial expressions, the tone of their voices, the stream’s chat and the length of their playthroughs and between all that data, my game had a huge chance of winning, due to the complexity of the mechanics, the visuals and how smooth and bug-free the game was, compared to all other entries.

I compared my game to the ones that won top 3 and I was trying too hard to understand why the hell did those games win and why mine didn’t even get mentioned, considering all the amount of data I had from watching people play it and all the positive feedback given, it was such a surreal moment. It reminded me of my second game jam, where I built a third-person shooter that had everyone else staring at my screen constantly because they couldn’t believe how good it was turning out, from doing all the mechanics to level design, rigging, skinning and preparing everything else in just 3 days, just to end up in 4th place while other shitty and braindead games that used a lot of pre-built code ended up beating me, but at the same time, I remember the judge that played my game probably never played shooting games in PC as he was struggling really bad to do very basic actions such as moving with WASD and shooting very slow-moving enemies, lol.

I do have a shitty luck when it comes to winning things, I always lose raffles and competitions, where I excel is mainly when it comes to persistence and perseverance over a large period of time and this game jam pretty much just reminded me of that, both of them I ended up extremely angry and confused, trying to figure out why my game didn’t win. I’m way too competitive and dislike losing, but at the same time I put way too many expectations on myself and end up being disappointed at the outcomes, which most of the times, don’t end up going in my favor.


Takeaways From This Venture

After I cooled down, I went over my game and the games that won with a fresh set of eyes and non-biased opinions and tried to dissect them to learn from this experience. Here’s what I discovered :


– The judges had a huge bias towards braindead, party games and silly but good looking experiences, it’s a trend I’ve noticed from past game jams and also by talking to other developers who thought the same, as these games usually had a higher chance of winning due to the fact that they barely required any critical thinking, I also noticed other games with really good mechanics didn’t even get mentioned and they had very good looking graphics and unique gameplay loops

– Artists have a huge advantage in these game jams since UE4 is really easy to achieve really pretty visuals while being able to quickly whip up mechanics with blueprints, it tends to favor those who focus more on the visual side, I reached this conclusion when I saw the game that reached 1st place, all it had going for it was that it was built by a team of 5 artists, which is why the game looked really good, but it’s gameplay mechanics were extremely simple and it was just mainly using the main third-person template movement with some very simple mechanics such as a jetpack, collecting orbs (same thing as my game lol) and some light AI stealth system

– If your game doesn’t enter its core gameplay loop within its first few seconds or so, it’s not going to able to keep the player’s attention for long, as attention spans are getting lower and lower, which is why games nowadays are getting easier and they hit you with dopamine spikes extremely quickly to keep you engaged, you can build the most complex and interesting game mechanics, but the likelihood of those being fully explored in just a few minutes is very slim to none


So if you want to have a shot of winning a game jam, make sure you focus more on building a very good looking game with a very simple core gameplay loop and don’t focus too much on the length or building complex but interesting game mechanics, just make sure it looks good and it has braindead gameplay, something that really doesn’t require thinking and floods the player with dopamine right when it begins and just requires 2-3 inputs to play which should take you from point A to B in a short amount of time with barely any critical thinking other than linear trial and error.


My Mistakes and Why My Game “Sucked”

Now let’s go over what I did wrong and why my game didn’t even receive an honorable mention and why it sucked to the point that barely anyone played it, despite having very favorable data and feedback from those who did try it out. When I work on personal projects, I tend to focus more on building the game for myself and not focus on how others will perceive it. All my games have been inspired by old school games, Project Frequency was inspired by Silent Hill, Bunny Madness/Poto Don’t Die was inspired by Conker’s Bad Fur Day, Mankind Reborn was inspired by Face of Mankind, all of them being old school challenging games. I’m a hardcore gamer and I’m extremely skilled at any game that I play and if I didn’t pursue game development, I probably would’ve ended up as a professional competitive player or a streamer in twitch. This tends to bleed into game development and I tend to have a hard time making my games accessible for the regular and casual gamer, which is what happened with Poto Don’t Die.

Right off the bat, the game starts and there are around 1 to 2 minutes of dialogue bubbles teaching you how to play the game, every player I saw skipped this since it was too slow to read, just to complain later on not knowing what to do when this text pretty much told you everything, but obviously this is not acceptable nowadays and the way I approached this was bad, since most games opt-in for more interactive tutorials. This is the biggest fault in the game as the first minute of the game is spent reading text, the game took around 5 to 10 minutes to really get into the gameplay loop, once you went over the tutorial level and finally understood the complex mechanics of the hook and how to abuse the physics to move around in a quick manner, it was probably too late.

I spent too much time developing the text system when barely anyone took the time to read them, should’ve just made it screen-based so it still keeps showing up while you’re moving around. Then the movement system had a lot of weight and inertia to it, it was a bit complicated to even do some light platforming, but the funny thing was that I never had these issues as I could zip around the levels with so much ease, I found out once I let my girl playtest the water level and saw that she couldn’t even pass the first platforming challenging, which was really easy in my perspective, but for others, it was really challenging to the point that they would rage and stop playing. She gave me some wonderful advice which was to get the players into the core gameplay loop as soon as possible, so I moved most of the power-ups into the first level instead of having a power-up per level.

The movement system’s skill gap was also way too high, most players I saw couldn’t understand the underlying physics and how to abuse them to sling around the levels, which frustrated me while I was watching them play. You could combine the hook and the jetpack to pull off some really insane movement, similar to a high-skilled Pathfinder player in Apex Legends, but it was rare to see someone being able to figure that out, instead, they just hooked onto places and didn’t let the hook go, or they didn’t use the jetpack to adjust their movement after slinging themselves too far from a planet, it was obvious that I would encounter these issues, as developers find their games too easy but that’s not the case when someone else plays them, it’s an entirely different perception and the things that I found too easy, were pretty challenging for others.

The game’s length was also too long for a game jam game, it takes around 30 mins to an hour to fully complete the game, which by then the player would’ve likely gotten bored and stopped playing and I was looking at ways to increase the length and the challenging aspects of it even more because I found the game too easy and short. You really want to get the players into the game as quick as possible and have them finish the game before they even get bored of the core gameplay loop. The combat, was a bit too challenging as some areas, were essentially bullet hells and you have to move really quickly to avoid getting hit by the projectiles, plus the game had a few intricate mechanics such as being able to hit enemies and stun them from afar with your hook, allowing you to kill enemies without getting close to them if you launched your hook, hit them and then retracted the hook quickly and also you could also destroy the enemy projectiles by hitting them with your hook, I spent a lot of time getting those small intricate details implemented and they all went unnoticed because players really didn’t bother to explore the game and they just moved forward all the time, but it’s my fault for not fully explaining these mechanics in an easy way to digest.


This Lead to a Profound Epiphany in my Career

Despite losing and not having the game reach the numbers of players that I wanted, it leads to a huge epiphany which changed how I approach my video games. I essentially came to the conclusion that I make videogames that I would love to play myself and not necessarily for the enjoyment of others. Which has been the case for every game that I’ve made before, but I never fully realized it till now, all of my games have always been complicated and have had this old school feeling of discovering the mechanics by yourself, I don’t teach you how to play the games, I just place you in them and let you discover these as you play them. I love what I did with Poto Don’t Die, I created a very challenging and innovating platformer prototype, something that I would love to play and immerse myself in, spending hours abusing the physics with the hook to find optimal paths in the levels and see how fast I can finish the game.

This experience has essentially helped me figure out myself a bit better and see the reason why I make video games with a bit more clarity, essentially the games I make are what I would love to play myself and I’m pretty much doubling down on that with my current and upcoming games, not caring about how normies perceive my games. In that aspect, I’m glad I lost because you learn more from losing than from winning and all of this has helped me shape the how and why I make video games and it’s a philosophy I will be applying consistently to every personal game I do from now on.

%d bloggers like this: