2018 Spring UE4 Jam

Me, Ronja and Vilma worked together during the 2018 Spring #ue4jam and made a game. The theme for the game jam this time was: Transformation. Our game can be downloaded here on the itch.io page: Transforester A full play through video can be found here: https://www.youtube.com/watch?v=TypANH5k9Lo. The game logic was implemented using only blueprint. This post is about making the game from start to finish.



May 10th (Day 1)

The game jam kicked off at 21.00 EEST and Epic Games announced the theme on their stream. The theme was Transformation which is a very broad term and you can for example transform an objects position, rotation etc. We brainstormed on what game idea to make and Ronja came up with an idea where you could either make plants happy or sad. The concept at this point was similar to our last game jam entry: E For Hugs

To transition between the happy and sad state morph targets or animations were used depending on the object. The happy and sad states are basically a healed or broken state. Vilma made many experimental flowers, flower, flower1, flower2, flower3, flower4 until we finally got the export/import settings for the morph target from Blender to Unreal Engine correctly.
Happy sad flower

I told a friend called Sophie about the game idea and she wrote lore for our game because she said a game needs lore. We modified Sophie's lore once we knew how the game would be. This is the lore for our game:

You are Lili a 16 year old bucketeer from the village Greenage, in the country of Evergreen. The village is famous for its nearby magical spirit forest. Nobody has ever seen such a natural and beautiful forest. What nobody knows is that in the forest lives a very old spirit who has been nourishing the forest for centuries. Something has happened and the spirit has gone mad and the forest is suffering as a consequence. So it's up to YOU to equip your magical bucket and save the forest from impending doom.

May 11th (Day 2)

I copied over the UE4 Game Jam Toolkit which added main menu & pause code and other assets.
main menu ue4 game jam toolkit

After that I added blueprint code to change the morph target between happy and sad state. I also did performance testing which didn't look promising so we were going to have some performance issues if we filled the world with these flowers. Each flower is a skeletal mesh and I don't know of a way to utilize batch rendering for skeletal meshes.
performance testing
The performance was at 90 FPS looking away from everything and then when starting the transition from happy to sad for 480 flowers caused the FPS to drop from 90 to 60.

Ronja experimented using Quixel Megascans to see if we could have some really good looking flowers.

May 12th (Day 3)

I refined the happy/sad logic and created a projectile that makes everything in an area happy. The sad projectile would be added later on day 4. Ronja also made me a bucket that the projectile would come out of. I don't know why but it seemed like a fun silly idea at the time as a placeholder but it stuck until the end. Which is why Lili is a "bucketeer".
first projectile

We weren't sure on what kind of game play or game mechanics we wanted so I decided to play more with particle effects. I haven't done many particle effects and I'm still not at a level where I can create them from scratch or without a template/guide.
The particle effects that I implemented was based off the particle effects from the UE Game Jam Toolkit.
The cloud shock wave effect was done following this guide: https://www.youtube.com/watch?v=apPH38f7eoo
projectile ring first test
Here's the finished particle effect for both types of projectile:
Projectile showcase

Vilma made the mushroom used in the levels and Ronja added the morph targets for the mushroom's sad state. Ronja made a staircase out of the mushrooms that you had to activate by making the mushrooms happy.
inactive mushroom staircase
active mushroom staircase

May 13th (Day 4)

I continued working on the projectile particle effect focusing on the projectile itself and the trail effect as the projectile flies to its destination. I also added the sad red bullet. One bug that I noticed when both projectiles were implemented was that they could collide with each others if you shot both at the same time. But I left that in there because it was fun to do!
particles colliding

After I was done with both projectiles I decided to build the project and ship it to make sure everything works. I noticed the projectiles weren't working properly because I used an Arrow Component to get the spawn transform for the projectiles. I learned that an Arrow Component's GetWorldTransform node returns location at 0, 0, 0 so the projectile was automatically colliding at 0, 0, 0 in the level. I replaced the arrow component with a target point and everything worked. The x-axis for the target point served as the visual cue how the projectile would be launched out of the bucket instead of the arrow from an arrow component.
This is why it's good to ship early to catch errors such as these!

May 14th ( Day 5 )

We're getting closer to deadline at this point!! I added the spirit and effects for the spirit depending if you hit it with happy or sad projectiles. I also added a win condition if you purified the spirit by hitting it 3 times with one type of projectile.
spirit states

Ronja made a pillar and a tree. The pillar used animations instead of morph targets or it'd not break properly so I refactored the code to support both animations and morph targets.
broken pillar

May 15th ( Day 6 - Final )

At this point we only had assets and no real game. So this gif sums up our reaction:
Freakout gif

Ronja started on making the actual levels which can all be seen in the play through youtube video: https://www.youtube.com/watch?v=TypANH5k9Lo. To jump between levels we needed an item to transition the player. So that is what I worked on next, making an object that changes the level.
level change platform

I also added the win screen which depends on how you purified the spirit and sound effects to the game.
win screens

Vilma made the rocks used throughout each level and especially during the last 2.

We built the final version 1 hour before the deadline and spent the next 40 minutes making the game play footage. Then we saw on the itch.io page a video between 30-60 seconds and ours was 93 seconds long so we paniced not knowing we could edit the post or not! So the first 2 videos uploaded for itch.io were horrible quality with an audible sound artifact when changing a level.

Afterword

It was fun to take part in a game jam again. I have barely touched Unreal Engine since the epic mega jam and it was really fun to use the engine again. I am surprised how well the game turned out because at the start of the final day all we had was a bucket that shoots projectiles and 4 terrain assets. So Ronja did a really good job making the levels!

No comments:

Post a Comment