Week 01 – 25th November – 1st December
Tasks planned:
- Flow Diagrams for line trace and hover mechanics
- Psuedocode for car Hover
- Asset research for vehicle

As you can see above the first thing I did this week was create a simple flow diagram to follow for the logic of the shooting in my game. I based this flow diagram off of how I setup the shooting mechanic in my western style game so that I had a template I knew how to follow to base it off of. The shooting in my game will be hit scan just as in my last game as with the high velocity of movement that will be present from driving the hover car a physical projectile just wouldn’t work very well. This is just a rough outline of what I need to do as it doesn’t have specific values and such but it will be a great help when I come to create my blueprints.

I also this week created a flow diagram for the movement system of my hover car. I haven’t tried car movement before in UE4 and I know there are tools already present for the movement of a wheeled vehicle however my car doesn’t have wheels so I fear this might not work. In this flow diagram I have simply setup the movement of the vehicle to be based off of applying force to the object to move it around based on the axis controls I would have setup in the project settings I think this should work and its a good start of something to follow though I dint think it will be as simple as this as I will have the torque to manage whilst applying force to the vehicle which might cause some issues

I begun researching some assets for the vehicle in my game and the first asset I found was this car with two mounted guns on it and this would be perfect as my game will revolve around a shooting car however I felt the design of the car wasn’t cyberpunk enough. This was because the colours used were kind of bland with the army green and I wanted a design that felt like it was more near future and less sci-fi. I also wanted to create some kind of hover vehicle and this design wouldn’t quite fit that

This was another car design I found for my game and I much prefer this design over the previous 3D model I found. The dark blue contrasted with the bright lights give the car a solid cyberpunk feel. This design is also a mover vehicle which I think leans more into the cyberpunk fantasy, I wanted to have a hover vehicle in the game over a standard road vehicle so this design ticks all my criteria’s perfectly. Going forward I think I’ll be using this design and I can begin work on creating some test programs for the hover car movement using this design.
Going forward I don’t think I need to make any changes to the pace I’m working at as I’ve been able to achieve everything I need to this week.
Week 02 – 2nd December – 8th December
- Create test program for hover mechanic
- Create test program movement mechanics for the vehicle
- Create test program for shooting mechanic


Starting this week I begun the creation of my hover mechanic. I followed a tutorial to help me understand how it works and how to implement it into my game. I needed to setup three different variables to allow the car to believably hover and react to the environment around it so I needed to setup what the hover distance would be from the ground measured using the line trance and then I needed to setup a spring and dampening coefficient which gives the vehicle the bouncing element which sells the feel of some kind of thruster holding the vehicle up. In reality it works like invisible suspension but I am very happy with how it works and it didnt give me too much trouble setting up other than sorting out the specific force of each hover component to balance the car


Secondly this week I created my driving mechanic for my hover car. I went through multiple different iterations of movement mechanics as I wanted to create something I was happy with. Firstly I naively tried just adding force to move the hover car and although this worked it wasn’t effective when it came to slowing down or turning the car, it allowed the vehicle to drift in a way similar to that of what you would expect from a hovering car it just wasn’t controllable enough. Secondly I tried to add linear velocity to control the movement and this worked quite well as it was the most controllable iteration of my vehicle controls however it made the car feel more like a spaceship and less like a hover car so I ultimately scrapped this idea as well.


My third and final way of setting up the cars movement came from the idea of applying force again however I did it in a more controllable way that allows the player to drift and turn whilst still having control over the car. I’m quite happy with this way of setting up the cars movement so going forward I will keep using this though if I find a better way of doing it I will look into it.

Lastly this week I setup my shooting mechanic and this was quite easy for me as its very similar to how I setup my shooting in my last game using line traces to cast damage onto objects that obstruct it. I wanted to use a lane trace again as using a physical projectile might cause some issues with the fact that the car is moving quite fast causing strange physics to be applied to the bullet. I like the line trace because its feedback is immediate which is something that I feel is very important to my game. Having a physical projectile would of been nice to do as its not something I’ve attempted but I feel my decision to use a line trace is for the best
I think I struggled a little this week with getting the car mechanics the way I wanted them to be so this took a lot of my time however I was still able to get everything done on time which I am happy about. For next week I will focus on setting up my AI system first as I think this will be my most difficult task going into next.
Week 03 – 9th December – 15th December
Tasks planned:
- Create enemy AI Mechanic
- Create an enemy spawning mechanic
- Setup NavMesh

The First thing I did this week was create my AI mechanic. I did this by using the blackboard and behavior tree functionality within UE4 to tell the actor (my AI) to move towards my player character at all times. I followed a short tutorial to set this up that was very helpful in teaching me how the behavior tree system works in unreal. I really like the behavior tree system as it’s very self explanatory and easy to understand, I don’t think I will need to make any changes to the system as I’m very happy with how it works. getting this mechanic working was easier than I expected it would be which will give me some extra time to work on other aspects of my game.

Also this week I had to add a NavMesh to my level to allow the AI to know where it can and cannot move. This is as simple as adding the NavMesh to the scene and then scaling and moving it around the different parts of the level you want the AI to be able to traverse. I don’t have a level design of sorts currently but I did get to use it on my test level and see how it works which is quite simple. it also acts as a bounds for the player to be chased in as if you leave the area of the NavMesh then you won’t be chased by the AI so I could setup some kind of safe zone for the player that they could enter but for only a limited time.

The last thing I created this week was my spawning mechanic for my enemy AI which I used a set timer by function event which allows me after overlapping with a trigger to start to run a function for a specified amount of time where I can set how many times it runs my function per second. This allows me complete control over the spawn rate of enemy AI as well as how many enemies will spawn in for each wave. I had some trouble setting up the timer by function name as I’ve not tried it before however I got to grips with it quite quickly. with this system I could setup different spawners which have more difficult enemies which I could set to activate when I am in the later rounds of my game.
Going into next week I want to get the round based system in place and to setup my players health and enemies health so that I can fight my enemies and be killed by them. I feel that I am working at a good pace currently so I don’t think I need to make any changes to my work ethic and I think I have achieved a lot in terms of what I need for my game.
Week 04 – 16th December – 20th December
Tasks planned:
- Create enemy and Player health/damage system
- Create round based system
- Setup UI to display reticle and health etc


I have setup the player and enemy health systems by simply giving them a variable for health that is a float. Setting it up as a float gives me more specific control over how much damage the player can take as I can go into decimals where as with an integer I would have to use whole numbers. For taking damage I have given the enemy AI an on hit event where by when it collides with the players mesh it will deduct a predetermined value from their health. Dealing damage to the enemies in my game I have setup the line trace to cast to the enemy and if it collides it will take away some health from the enemies health variable. I really like having everything setup as specific variables as it makes it easy for me to create more difficult enemies or make the player do more damage etc on the fly which will be useful when I come to create the power-ups in my game.

Secondly this week I setup the UI system in my game which displays my health and reticle so players can see where they are aiming. I setup the health bar using a progress bar to display a value between 0-1 as a float. This then allows me to accurately depict to the player how much health they have left, I can change the colour of the fill for the progress so if I wanted to created any additional progress bars for speed boost’s etc I could. Setting up the reticle took some time as I’m making the game from a third person perspective meaning you reticle won’t be in the middle of the camera but with some experimenting I achieved the correct placement. I’m happy with my UI setup and I will probably add to it in the future when I come to create my wave based spawning system.


The last thing I did this week was setup my wave based enemy spawning system and I did this by setting my spawn points up in an array which will then be randomly chosen from to spawn my enemy AI. After the spawn location is chosen it will run my spawning mechanic that I made earlier and begin to spawn enemies until the enemy count reaches zero, at which point the spawners will deactivate until all of the enemies in the scene are destroyed and then it will increment the wave count and increase the number of enemies that can spawn. This is perfect for what I need for my game so I will be able to implement this straight into my final product. I didn’t struggle with setting this up as I feel I am getting much more confident with UE4 whilst progressing through this project.
Going into the next phase of my project I will be focusing refining the mechanics I have already created and start getting my game ready to be present as a final product. I think this week went very well as I was able to achieve everything I had planned on time and without any real hassle.