This week I started off optimizing and expanding our random spawn system. The system now works as it should. There is one spawnpoint actor that you can place in the world. All that’s needed is to select which type of object it should spawn. Everything else is managed by the Spawner. The spawner finds and collects every spawnpoint on runtime and populates it with one of many suitable objects for each particular spawn type.
The spawner also has several parameters you can use to set the maximum amount of duplicates of certain types of objects.
You can easily add new object to the 3 pre-made catgegories. Or you can of course add an entirely new category with a new icon.
Then I started working on our interactable system. Which is basically a modular expandable database of interactable objects. Every object we will make will inherit from a parent “interactable” class which provides some crucial parameters. And then each object can do what it needs to do seperate from that.
As you can see below a light switch only works when the right generator is providing electricity. This is all managed by our “Level database actor” which detects when an object has been activated or when the player is trying to activate one it will check if the right conditions are met.
The player and HUD have also been updated to detect what object the player is looking at and depending on how far the player is from it he is now able to activate or deactivate it using “E”. We already have a couple interactable objects in our map and a small house in which you spawn each time you play the game. The position of the house is of course also randomized using the system I made. You can also spawn random objects within the randomly spawned buildings using child actors (random-ception!).
We want each playthrough of our game to provide a completely different experience. So it’s very important that our systems for this are modular and future proof. So I took a lot of time to optimize it as much as possible. And I’m still tweaking it as we go. This also makes it extremely easy and fast to create new interactables and objects.
I’ve also added several character effects. Such as weapon sway.
Footstep sounds that are perfectly synchronized with the run and walking animations. Using animation notifications.
Every footstep sound you hear is one of 5 random footstep sounds. Again randomization is key!
And camera shake effects when running and getting hit and …
I’ve also made several small placeholder and WIP models such as a radio tower, house, power cabin, generator and lamps.