Onslaught: H.E.R.O - Development Blog #4
oooooh. It has been a very long time since the last blog post, but a lot has changed since then. To start it off we have two new team members coming aboard to join the Onslaught Team, Mitch will be undertaking some of the new level design and environmental assets and Ethan will be taking on Our UI as well as some level design. In the process of some new team members, we have also changed the Rendering pipeline that our game is going to using, We have swapped from unity (HDRP) to unity(URP).
HDRP -> URP
There is not a lot i can explain about the reasons for this other then the FPS/Rendering time for the HDRP were just to much as we would like to produce this game for consoles in the future, the problem is that the rending was our biggest over head, so by cutting certain aspects in by swamping renders gave us more control on the FPS as well as the amount of stuff we could do. As well as the performance boost it seems that the HDRP is not really set up in the community eyes, so finding tutorials and examples was almost near to impossible.
AI Path Finding
Our first major hurdle that became the most successful part of the game was our AI for the swarmers. Due to such a huge amount of enemy's we wanted, we had to make sure they would path find and look natural enough when heading towards the player. This had a load of problems from to many paths being generated to many units on screen rending to a bunch of null errors. What we first started using was a flow field system, this system was great but with so many changes in the players path as well as the ability to climb on walls no set up for flow fields, we ended up making an A* Path finding solution that build on top of unity's Navmesh system.
In the photo we have used as many Gizmos as possible to show the AI system in its working.
The purple outline means that the enemy is close enough to the player to start doing constant updates to the Mechs positions, the Yellow spheres are the end target of the navigation, the solid orange is a node in the path that the Ai would take. The Orange outline is the range of the "Leader" of our flock. the green outline means its an "Leader" of the flock, the white outline means that it is a member of a flock "Leader".
With our AI navigation system working wonders for the performance we set our eyes onto the rendering of the AI mesh. What we discovered is that Skinned mesh renders in an abundance will cause rapid FPS loss in the rendering pipeline. So our solution was to convert everything to an mesh render, and instead convert our animations to an vertex array that uses the animation frames as a base. this system alows us to GPU instance these enemy's but retain the animation of the AI. Now we can up to 2500 enemy's on screen and still have a solid FPS.
AI Wall pathing.
This is by far the hardest thing that we had to do in our game so far. Wall walking was not easy, this required a lot of refracting of our code and our system to get the AI working on it. As well as making sure that our AI can handle the small and complex walls, which we found that they could quite easily. the problem's that made life hell while working on this task was getting the AI to even connect to the side ways nav mesh. which with almost 0 documentation from unity and almost 0 tutorials or forum posts about this system it was a lot of trial and error.
the problem with art takes awhile to get done and that is fine as the quality cannot be rushed, so we thought it would be a great idea to use one of the most amazing creatures to walk the land, and that is Shrek. Shrek has been very useful in the testing side of things as we can use him as a guideline for scale, speed and damage. its also very funny to see a few 100 Shreks running towards you.
With our upgrade to the URP or downgrade depends on how you see it, we started on a new networking solution for the AI and the enemy's as we pleased with the performance of the Rendering and the AI, but we still had no clue how well the AI would function over a network. We later found out that the network was unable to handle such a large sum of units so we went a head and wrote something that completely changed the AI over the network, what we did was took inspiration from games such as supreme commander. What we do is that we send the updated positions to the network server, and have a few checks in place to make sure they are as close to one another across the network to not only fix huge network lag, but lower the amount of data we have to send every frame over a network.
We have also switched over to using Mirror in Unity 2019.4, as Mirror itself has the best networking solution and the best price for doing so. which in our testing phase of Networking API we found many of them to be to hard to use or not scale like mirror, we also don't have the time to write a full networking backed.
This system is mostly having a reason to spam r and not spam r when reloading, What this system does is adds a bonus for clicking R at a certain point in a reload to not only give yourself more ammo for that clip but to reload quicker as well.
With the rapid progress we were making on the game we thought it would be a good time to start on the environment and getting what we wanted at a good cost, so we decided on using Quixel Megascans. The quality and the quantity of assets made this purchases worth it, Every single asset is of great quality and has great integration with unity. Its mostly just a matter of clicking import texture.
With the new additions in the forms of new enemy and new weapons we decided it would be a good idea to implement some type of screen shake effect for certain things in the game like explosions and or walking enemy's.
With our game getting a huge upgrade on graphics we had to make scenes pop out like the environment around us, s owe started working on new systems such as volumetric fog effects that over hang on terrains like our dessert terrain to give the effect of harsh winds blowing sand all over the place, as well as limiting the view the player has.
With the project starting to come together we have to organise our game for the finial release which means starting on the correct flow for the game and the correct first impressions of the game. So we have decided on a nice view overlooking the planet that you will be raining onslaught to.
Redesigned the mech
The Mech has gone under a complete transformation. We were originally making a low poly flat surface game, so the textures and the model all had to be very low poly count and the textures had to be flat. That has all changed, as the art direction has gone from low poly to close to realism. So we are working on a complete redesign of the mesh and the textures, its all still currently a WIP but none the less its getting there.
Altered Swarmer Animations
With the edits to the texture of the swamer we have decided to refactor the animations a little bit more to give off a better feel to them as well as making them more stream lined. The animation makes them look more ant like and makes them seem like they are willing to kill anything for their queen.
Some more work has been started on our logo, and its so far looking good. we have narrowed down the design more and have started on something which we think everyone will love.
Our drop pod is the first thing we see in the game, so we have to make it look as good as we could. We think we are heading in the right direction for our human race theme. The Mechanical and and Flat look seems to work great with what we want.
As the game develops more and the design of the enemies keeps getting more lore friendly and more in depth, we have to change what the swarmers looks like, so we decided to create a more earthy and more natural looking texture.
we noticed that our biggest let down so far had been our UI, at the moment we are still working on it, but it has 100% gotten improvements since the last blog post. What we are going for is an UI that is very straight forward and very useful.
Alien Birthing Egg
With the lore coming together and the understanding of our aliens we have started working on the base of the aliens, this including the the first stages of these aliens. Which is the egg. Here is a WIP of the new alien egg sack.