There’s only two weeks until the judging period for Ludum Dare 33 ends (as of the time this was posted) so I figure I would write up a post-mortem for my entry (First Person Giant Monster Game).
The theme for this Ludum Dare was “You are the Monster”. When the jam started, I managed to come up with two ideas that would fit the theme. The first idea was a stealth game where the player (as the monster) would try to survive before dawn in a village setting whilst avoid mobs of angry villagers that are out to hunt the player whilst my other idea was to have the player assume the role of a giant monster (like those in Japanese kaiju movies such as Godzilla) and wreak havoc across a city setting. I decided to go with the giant monster idea as not only was it more easier to implement in terms of time and other constraints, but at the time I thought this would be better in terms of replay-ability.
To make it more interesting, I decided to make it into a first-person game to give players the sense that they are literally seeing through the eyes of a giant monster (i.e. everything would be smaller than them).
Instead of using Unity like I have done before for the last few Ludum Dares, I decided for a change to use Unreal Engine 4 instead. Since my C++ isn’t very good, I decided to use the Blueprint visual scripting system as I felt it would be more suitable for situations such as game jams where time is limited. Whilst I did play around with Unreal Engine 4 before (in fact, two weeks before the jam started, I decided to get up to speed by following some tutorials on Epic’s official wiki), this would be the first time I would be building something from scratch using this engine (as back then before my graphics card upgrade, my PC wasn’t able to run it at optimal settings). I also decided to focus solely on submitting for the three day jam rather than the two day compo as one of the main complaints for my last few entries were the lack of polish.
One of the advantages of using Unreal Engine 4 is that you can choose to use a premade template for your game (saving you time from setting up basic game logic and allowing you to focus more on advanced features). Since there was a First Person Shooter template available, I decided to use that as the base for my game. I also included the starter content pack available for new projects into my game so I could use the available assets for prototyping.
To show players that they were in control of a giant monster, I replaced the player model (which was actually empty) with one of the models I obtained from Mixamo’s animation starter pack in the Unreal Engine marketplace (which thankfully, resembled a monster) so players could see their own shadow.
Unfortunately, my original vision for the game didn’t go as well as I’d hoped and I ended up struggling more with the development (perhaps due to my relative inexperience with the engine). One of the problems I was struggling to fix was the player character’s scale. At first, I mistakenly believed that nothing would break if I increased the player’s size by a bit (so that they would be bigger than everything else), but that ended up causing slight problems with the player’s collider as well as breaking the offset position for the player’s projectiles. Replacing the player model also caused some problems with the camera where sometimes, the model would block the view. Whilst I did manage to fix some of these problems (I also replaced the projectiles with my own blueprint consisting of a sphere mesh using the rock materials from the starter content and a flame particle emitter), there were some I didn’t know how to fix (such as this bug in the final submitted prototype where a collision would sometimes cause the player to fly up in the air for no reason).
One element from my original vision for the game which made it to the final submission were the destructible environments using Unreal Engine 4’s destructible mesh feature. Originally, I had planned this to be various buildings such as skyscrapers (as I planned to use an urban city setting for the game) but since I couldn’t find any suitable models, I decided to use the rock model from the starter content instead. Unfortunately I ended up spending too much time trying to tweak the damage threshold for my destructible (as i didn’t want it to break too easily) as well as trying to fix the physics (as I didn’t want it to be very light).
I eventually ended up having to reduce the game’s original scope and reworked it into a simple score attack challenge. I also ended up removing some unfinished features that I had made for the game due to time such as a melee attack for the player since the model I obtained had an attacking animation (I ended up removing it as I didn’t have enough time to create colliders for the player model’s arms) and a health recovery system (where getting hit would cause the player’s screen to progressively tint red to indicate that they were being attack and the only way to recover is stay still for a few second – similar to most modern FPS games).
Overall, due to the difficulties i had making this, I felt like this was one of the worst games I’ve done due to lack of unique mechanics but I wouldn’t call it a complete failure as not only did i manage to submit something on time, I also got to learn more about Unreal Engine 4.
In the future, for the next Dare, I will probably stick to more familiar tools such as Unity in order to reduce development problems (although I’m willing to give Unreal Engine 4 another try) and try newer, unfamiliar engines for jams that take place over a weekly/monthly period instead.