Why hello there! And welcome to this 28th iteration of this Weekly Update blog!
This week, I'm gonna be honest, doesn't really have ground-breaking changes. Instead, it's a mix of refactoring, balancing, bug fixing and refinement...
So this is gonna be a short and sweet one. No complex algorithm I promise!
First, I've refined most liquid floor that I've mentioned in my previous update.
Now, most non-water liquids have distinct waves patterns and particles. this means that we can safely identify a liquid more easily than before.
Here's a look at the liquid nitrogen, for example:
Secondly, I've also refined the bridges of the Island floor configuration.
It was previously very blocky and not really bridge-like.
So I've decided to remodel the basic bridge square to make it look more "bridge-ish".
Then I've also decided to reuse my liana algorithm to displace the generated bridge's vertices so that it follows a catenary curve. This gives the authentic suspending bridge look.
Aside from that, I've also added poles, rivets and ropes to reinforce the bridge look.
Another really important thing is that I've dynamized the room anchor points.
This way, Island patterned rooms will have their central anchor updated so that it actually uses the actual center of the island. This makes props much more aligned and believable.
Next up, I've also changed cracked walls so that blowing them up actually makes a hole instead of removing the wall completely.
Finally, I've updated to the game's enemies. Just to recap, I'm using Unity's NavMesh Implementation to move my enemies around. It was pretty good, and paired with a proper behaviour tree it works wonders.
However, it meant that no matter what the agent won't go out of the navmesh. Effectively this meant that there were no possible ways for the player to push AIs into chasms.
Pretty boring if you ask me.
So I've decided to temporarily disable the NavMeshAgent component of my AIs when they get pushed. This way we can use rigid bodies to push them instead.
Then I've first split the problem in two.
First one was that I wanted AIs to actually be able to "get back up" from a non-lethal push (like into water and stuff).
Then there's also the case in which I want the AI to die. (like in chasms)
To fix the first problem, I've decided to use NavMeshLinks to link two different areas together. It was pretty easy to change the map generator code to include this, and it works wonderfully.
The second one was a bit hard to implement, mainly because it required NavMesh raycast in the update loop. I'm not a fan of this, but right now it works.
Here's a video showing enemies getting pushed in a chasm:
And here's some getting pushed in a poisonous lake:
Fixed a bug with the Inputs bugging out if the mouse movement was too big
Fixed bugs with my floor marching cube algorithm.
Oh wow, look at the time!
We're getting close to my "playable demo" deadline!
The next couple weeks won't be feature heavy. I only need to fix bugs, optimize some stuff, refactoring and also coming up with some kind of demo mode. After that, you'll be able to get your hands on some kind of demo.
After that's done it's gonna be the usual suspects: Modeling, enemies, capacities, relics and so on.
There's also some game designing that needs to be taken care of. There's a particular aspect of the game that has been boggling my mind for a while, and I just need to get things straight.