• Register
Post news Report RSS Infantry - Taking its First Steps

Take a first glimpse at infantry in Assembly RTS! Dive into this week's Assembly RTS updates, the physics-based strategy game!

Posted by on

Welcome to a new devlog for Assembly RTS, the physics-based real-time strategy game!

Unity LkUyvpJ8XG


Hi everyone, let's dive back into the world of Assembly RTS after the exciting exclusive footage showcase!

Assembly RTS is a game that's pushing the boundaries of real-time strategy with its innovative unit customization and physics-based units. In this update I'm adding animated infantry to the game using a brand new solution for animations.

Better Animations

Even though I already implemented animations for mechs, I wasn't happy with the system I was using for the animations. So I decided to look for a better alternative before adding infantry to my game.

"Why don't you just use the default Unity animation system?" (you might ask)

The answer is simple: Performance
Unity's default animation struggles when it has to animate hundreds of characters.

Assembly RTS will support over 800 moving units at a time, many of which will feature complex animations. This is why a different solution is in order.

The Old System

The animation system I previously used for the mechs required lots of additional animations to work well.
Furthermore, even though this solution was GPU-based (which can be insanely fast in theory) it was unoptimized and slow in practice.

Animated mech using the old animation system:
running boi 3 low res



I started searching for a different solution that would surpass my previous approach in every way.
To address the performance issues, I first looked at alternative GPU-based options.

The New Animation System

It turned out that there aren't any GPU-based solutions with sufficient animation blending capabilities available.
Theoretically, I could modify some code to better support seamlessly blending between many different animations, but it would cost me a lot of time.

Next, I looked for CPU-based alternatives.
This approach can't reach the optimal performance of GPU-based options, but it could still get the job done.

I discovered two promising solutions:

I tried integrating both of these libraries into my project to compare them with each other.
However, so far I only managed to get Rukhana (almost) fully working.

Rukhana

The Rukhana animation system lets me use the default Unity Mecanim animation state machine.
This makes setting up complex animation behaviors quite convenient.

The current infantry animation state machine:
1Fq3gCA8q7

Infantry Squads

Like in many other RTS games out there, every infantry unit is made up of a squad of soldiers.
To make the men move in a natural group-like fashion I implemented a simple boids algorithm.

Boids algorithm 'alignment' visualization, courtesy vanhunteradams.com:




Infantry progress so far:

Upcoming Features

Here's some of what's next:

  • Resolving remaining animation issues
  • Making it possible for infantry to properly participate in combat
  • Adding spatial querying solution for much better unit targeting performance
  • Implementing more performant VFX solution?
  • Visual improvements
That's it for this devlog. Don't forget to join our Discord!
You can also get notified as soon as Assembly RTS hits Steam!

Post comment Comments
roman9441
roman9441 - - 1,183 comments

look great , I'm sure will wait for the release

Reply Good karma Bad karma+2 votes
FlightFight Author
FlightFight - - 33 comments

Thanks!

Reply Good karma+1 vote
ApornasPlanet
ApornasPlanet - - 4,117 comments

Fab!

Reply Good karma Bad karma+2 votes
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: