Creating a destroyable type of objective. Probably going to be used for a communication tower that can be destroyed making the enemy unable to call back up.
Nothing too fancy. Had to refactor some of the critical strike marker code to work on the objective too.
Adding interactivity for the objectives to enable a key pick up and a gate opening in the future.
Interaction types:
First objective in inspector:
Adding climbable blocks and fixing the issue where there would be a ledge in the middle of the wall.
I had an issue with climbing after I hastily threw in the WFC generated world. The walls started out with a ledge that the player would get stuck on every time and then had to "jump wiggle" out of it. You can see the problem in this video.
Essentially I just added wall thickness on the top to account for the bottom. Before those were just empty blocks.
Wall sliced with old blocks:
With new blocks:
Of course there were some troubles during the process.
But these were fixed with some intense connector and exclusion fiddling.
Post where I started using WFC for the first time
Creating climbable tiles so I can make climbing part of the puzzle instead of just letting the player run away from everything. Below is what the blocks (another one is without the grass) look in the generated environment.
For the "finished" environment the placing of these will most likely be done by hand. I thought that this would make the connector assigning a waste of time but generating the world over and over with these gives so much inspiration for the level design that it was well worth it.
Climbable grass to wall block (there's one other kind that's just the wall):
Adding functionality to the objectives on the scene level.
Creating an Objective Manager for easy management of the events I want to have happen for every objective completed.
Right now the first objective is setting the alarm offline and the second one is setting it online. So they could represent the main electrical switches, that you're tampering for example.
Improving gizmos and debugging, creating functionality for objectives and adding minor things in hopes of large impacts on gameplay.
I added gizmos and labels pretty much everywhere to make it faster to place and debug enemies when creating the level.
The really rough looking objective is the bare minimum that fills the requirements for the functionality I want (Interaction & Feedback). Currently right trigger (R1/RB) acts as the interaction button but we'll see what happens to the roll (on O/B button).
During my research on Monday I saw a couple minor things that I think have the potential to bring a lot to the gameplay. This alarm was one of them. All of them:
Fixing and tweaking minor things but mainly doing research and thinking about what to do next.
I spent my day fixing bugs and tweaking things but I also thought about what platforming do I want in the prototype. I did some research into similar games and I got a couple of ideas but I'm not sure if I want to start implementing all of those before knowing what I want the main game loop to look like. So now that I have the combat and enemy stealth behaviour I will create the functionality for the objectives. Meaning the main game loop would be "playable" before I start adding more complex platforming mechanics.
Adding to the inspection node on the behaviour tree to make the enemy look like it's actually inspecting.
The inspection consists of 3 parts:
Currently the lengths of these parts are hard coded to a single value but I will probably create a class which can get animation lengths from the animator override controller easily.
Today I added footsteps and an awareness meter.
Once I got the footstep sounds in, I noticed there was nothing to tell if an enemy can hear them or not. I thought an exclamation mark that fills up could be an fast and easy way to visualize this.
Not much to show today because I'm still fixing combat. I did get it to a point where I can control the difficulty pretty well and it doesn't have too many bugs. I will take the time to make it fun later, because right now I'm not sure what I should do to it and I have more important things to implement such as stealth.
After getting frustrated for the fifteenth time I decided to move the whole combat code to the behaviour tree. Before I had the attacking in EnemyBehaviour being controlled from the behaviour tree with a boolean but this caused many headaches as I thought it might. After the refactor, everything got a lot easier to debug and work on.
Today I started with creating an environment for testing the stealth mechanics which I will be adding this week. The better part of the day went implementing audible events and fixing combat.
Using UnityEvents to make enemies hear the player run. I don't know if invoking every enemy's OnAudibleEvent method is the best way of handling this, but for the prototype it works. At the moment the mechanic feels weird because I don't have the foot step sounds or enemy animations to go along with it yet.
I created a simple environment with a Wave Function Collapse unity implementation I had fiddled with a couple weeks back (marian42/wavefunctioncollapse). I had created the building blocks back then so I literally just had to press generate and move a couple blocks around to make it little more functional.