Project management plan
Week 7
- Create models and materials for:
- Crystals
- Player weapon
- Altar
- Enemies
- Cave walls
Week 8
- Import all created assets to UE4
- Implement player and enemy movement systems
Week 9
- Implement combat systems
- Create environment
Week 10
- Implement wave-spawning for enemies
Week 11
- Add lava to central moat
Week 12
- Add music/sound effects
- Make adjustments to enemy spawn rates as appropriate
Development Log
Week Number & Date: Week 7 – 25/3/19
List of Tasks planned for this week:
- Create models and materials for:
- Crystals
- Player weapon
- Altar
- Enemies
- Cave walls
Current Position –
This week, I started making the 3D models and materials, because without those, it’s more difficult to build the game in UE4. The first model I created was the enemy. Originally, I planned to have the enemies walk on four legs- however, after much research and testing, I couldn’t figure out how to implement walking animations.
So, I resorted to another solution: I would have the enemies hung from the ceiling by one leg, then detach from the ceiling, curl up and roll towards the player. Therefore, I have made two models for the enemy: One with the leg extended, and another with it retracted.

Next, I moved onto the player’s weapon. This was fairly easy, as it was a symmetrical shape. I would later add a crystal to the end once I had made the environmental crystals. Additionally, in the staff’s material, I included a blue tint running down the centre, drawing attention to the crystal, and implying its importance to the weapon’s functionality.

I then developed the different crystals that I would use to decorate the environment. I made two models and two materials, allowing for four variations of crystals. I used an altered version of one of these as the crystal in the player’s weapon.
Next, I made the material for the cave walls. Since there is going to be lava in the cave, I chose a dark, volcanic-looking rock colour, and added red, lava-like cracks in the surface.

Finally, I created the forgotten altar. Its design is rather minimalistic, with sharp edges. This will contrast from its smoother surroundings, once the environment is built. I used the cave wall material for the altar, as it gives a rather nice cracked, forgotten aesthetic to it.

Planning for next week –
This week, I completed everything I had planned, and it feels like I’m off to a good start. I plan to keep up this pace. Next week, I intend to make any extra models and materials that are needed, and import everything into UE4. I will then start work on the enemy AI.
Week Number & Date: Week 8 – 1/4/19
List of Tasks planned for this week:
- Import all created assets to UE4
- Implement player and enemy movement systems
Current Position –
This week, I started by making the model and material for an explosion. The enemies will explode in proximity to the player and altar, and this will be the asset used. I originally used a yellow-orange-red colour scheme, but I eventually settled with a blue-green colour, making it contrast with the red, lava-filled cavern.

I also modelled some rocks that I can use to decorate the environment. I will use the cave wall material for these rocks, so that they seem like a natural extension of the walls.
For the actual structure of the walls, I have decided to use UE4’s Landscape sculpting capability. This will allow me to make a complex structure without needing to model every single corner in Maya. However, one problem with this method is that it doesn’t allow you to make ceilings. Therefore, I will use the left-hand rock model as the ceiling, placing it over the top of the landscape, like a lid.
When attempting to implement the enemies’ AI movement, I had great difficulty figuring out how to reference the altar (since I needed half of them to attack the altar).
I managed to make it work by making the enemy spawn the altar, then using the return value as the altar’s reference. However, I quickly realised this would not work, as every enemy would spawn its own altar.

So, I scrapped that idea. Eventually I realised I was massively overthinking the problem, and that I could just tell the enemies to go to a specific location (the location of the altar), and explode on proximity.

I also developed the below blueprint, which makes the other half of the enemies move towards the player, explode, then destroy themselves. The nodes coming out from ‘Spawn Transform’ are simply scaling up the explosion, because the model was too small. I could have just altered the model’s import settings like I did with many of the other models, but it seems I was yet again overthinking the problem.


Finally, below is a very large section, which I created using the help of a tutorial. It essentially makes the enemies rotate in the direction they are travelling, making it seem like they are rolling toward their destination, rather than just gliding along. It is purely an aesthetic change, but I believe it was an important one.



Planning for next week –
At the moment, I am on-track with my original plan, so my project management has been adequate thus far. Next week, I plan to make the environment using a landscape, my rocks, crystals and altar. I will also implement the combat and damage mechanics.
Week Number & Date: Week 9 – 8/4/19
List of Tasks planned for this week:
- Implement combat systems
- Create environment
Current Position –
This week, I started by sculpting the map in UE4, using the Landscape tools. However, I ran into a problem: I needed to apply the cave wall material to it. So, I exported the landscape from UE4 as a .fbx, and used that model in Substance Painter to apply the cave wall material.
However, this meant that the collisions were much less accurate than the original landscape’s. I resolved this issue by using both versions at once. The textured landscape is the one the player sees, whereas the original landscape is hidden, providing the complex collisions.
Shown below is the blueprint that decreases the player’s health if they take damage, and quits the game if their health reaches zero.

Shown below is the blueprint for the player’s projectile, which senses when it has hit an enemy, and applies 40 damage to it.

The blueprint below is for the explosion that is created whenever an enemy detonates. For every tick that the player touches the explosion, 0.1 damage is dealt to the player.

This blueprint makes the enemy spawn an explosion and destroy itself whenever it hits the altar.

Finally, this blueprint deals with the enemies’ health. When they die, it also makes them deactivate and be able to be pushed around and affected by physics. After a few seconds, they are then destroyed. This change of state makes it clear that the enemy has died, without simply disappearing.

Planning for next week –
This week, I managed to get everything done that I had planned to do, so my project management seems to be going well. Next week, I hope to use timelines to implement a wave-spawning enemy system. I have researched this beforehand, so I have a general idea of what I will need to do, but I’m not sure how long it will take.
Week Number & Date: Week 10 – 15/4/19
List of Tasks planned for this week:
- Implement wave-spawning for enemies
Current Position –
- What did I do this week and why did I do it? (Screenshots/Videos/Photos)
- What did I find difficult or easy?
- What tasks didn’t I complete from this week?
This week, I implemented a system that spawns the enemies in a sequence, and in random locations. I did this using a timeline. The timeline sends a signal when the time reaches each time-frame, and that signal spawns either an enemy that attacks the player, or one that attacks the altar.
I randomised the spawn locations by adding 22 target points in three corners of the map, and putting them in an array. A random target point is then selected as the spawn location for each enemy. This was all rather simple to put together because I did a lot of research and testing on this beforehand.


I also implemented a system that makes the enemies switch to their folded-up mesh and material when they hit the ground.

Planning for next week –
This week, I was able to get the enemy-spawning system working, as planned, as well as adding the enemies’ ability to change their appearance. Overall, I seem to be on-track to complete this project in good time. Next week, I plan to add lava to the map, and have it destroy anything that touches it. I will also dedicate more time to my blog and other tasks, since the actual development seems to be nearing its completion.
Week Number & Date: Week 11 – 22/4/19
List of Tasks planned for this week:
- Add lava to central moat
Current Position –
This week, I didn’t get as much done as previous weeks, as I have been working on other aspects of the project, such as this blog, and improving Task 3. However, I did manage to sort out some bugs and re-organise the environment a bit. I also made a lava material, and applied it to a plane that destroys anything that hits it. I then placed this lava plane wherever there was a hole the player could get stuck in (such as the moat).

Planning for next week –
Next week will be the final week of development, so I will need to ensure it is exhibition-ready by allowing the player to manually start and restart the game, and ironing out any bugs I come across. I also plan to, if I have time, add music and sound effects. Over the entire development process, I have been working on the music in my spare time, so it’s basically finished already- which should save some time.
Week Number & Date: Week 12 – 29/4/19
List of Tasks planned for this week:
- Add music/sound effects
- Make adjustments to enemy spawn rates as appropriate
Current Position –
This week, I have created all the audio assets and implemented them in the game. I started out by making some simple, looping action music using GarageBand, that I then attached to the player character. I then made it play every 10 minutes and 54 seconds, making it loop forever. I then made the length of the timeline that spawns the enemies also 10:54 (which also loops).
I then set out to make an electrical explosion sound effect, for when the enemies detonate. Since it’s difficult (and destructive) to create an electrical explosion in real life, I had to record other foley sounds that I could use to make a similar sound. Below are the two recordings I used, and the final sound effect.
Here, I bashed a metal shed with a hammer to create an impact sound.
Here, I scraped the back end of the hammer along a rusty wheelbarrow.
The final product is not quite what I expected, but I discovered it works fairly well, because it sticks out from the background music. To make it, I used Audacity to combine variations of my two foley sounds.
I also tweaked the timeline that spawns enemies so that there aren’t massive gaps between enemy spawns, but it also isn’t a constant stream of enemies. Additionally, I made it ramp up in difficulty over the 10 minutes, with the final minute or so being practically impossible. This is to ensure the player actually fails at some point, and the game doesn’t last forever.
I then had to sure the player had control over when the game started. So, I moved the enemy-spawning timeline to the Level Blueprint, and made it activate when ‘F’ is pressed.

Obviously, there’s no way the player would know to press ‘F’ unless they’re told. So I added some text components to the player character with instructions. I feel this is a better-looking approach than 2D UI, as the text is 3D and changes colour based on its surroundings.
I also added a section to the player blueprint that restarts the game when ‘E’ is pressed. This was also added to the on-screen text.

Next, I duplicated the level, and made two “death screen” levels, which show one of two failure messages, depending on whether the player died, or the altar was destroyed. I used a fixed camera overlooking the map to replace the player character, to give a more cinematic feel. If I have time in the future, I would also like to make this camera slowly rotate around the edge of the map, to make it more cinematic.

I then changed some blueprints so that when the player dies or the altar is destroyed, the level changes to the death screen, instead of just exiting the game.


This was a bit harder to implement for the lava, because I want objects and enemies to be destroyed by the lava, but I want to change to a death screen if the player hits it. This worked well with only four nodes, but it got into a feedback loop of constantly restarting the death screen. Fixing this required some booleans to check whether the current level was a death screen or not, before changing level.
