• Register

Command physics-based vehicles in an immersive world! Assemble your own army. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Join us on Discord! discord.gg/JSypkZqQT7

Post news Report RSS Steam Workshop Integration Progress

I continued implementing the Steam Workshop integration and User Interface for Assembly RTS, a real-time strategy game that will let you customize your own vehicles.

Posted by on

Hi everyone and welcome back to the devlog series for Assembly RTS - Unleash Your Forces

An atmospheric real-time strategy game which will let you choose the vehicle components for your ultimate fighting force.


Main Capsule 010
Copy of Copy of Copy of Copy of 1


This week I continued working on the steam workshop integration and user interface as well as some work on animations for the mech.

I also tried out a task manager called Codecks.
A cool feature of Codecks is that I can share my work with you.

brave 7pwFMbgiIj


As I mentioned I also continued working on the mech asset.
I had to make the artifacts when blending between different animations on the GPU less noticeable.
So I created 15 separate animations with different rotations of the turret.
This way each animation only has a 22.5 degrees turret rotation difference on the Y axis.
Next week I'll repeat the same process for the idle animations.
I'll also test the overall performance of this approach.

smooth animation transitions low

While continuing work on the steam workshop integration for my game, I needed to find a way to display preview images of Steam Workshop maps.
First, I tried downloading them directly from within the user-interface browser.
However, this wasn't possible and I had to download them from the Unity C# runtime instead.
The next step is to send the downloaded images to the browser.

Every image is a few megabytes in size so I had to be careful that the user interface stayed performant and responsive.

I had to write code that stretched the limits of my reactive programming knowledge.

For instance, this piece of code takes an array of image ids for images that haven't been downloaded yet.
Then it converts that array into an asynchronous stream from the individual ids. This returns an id every second.
And while that is going on, any changes to the missing ids array are ignored.

SScNXMmznH


All this just so that a single image is downloaded at a time, from the steam servers, without hitting a rate limit.

It might look like just a few lines of text, but that is the beauty of reactive programming: You can express a lot of logic with very little code. This has the downside that it can be difficult to understand.

I'm pretty happy with how the user interface turned out so far.
To the right of the matchmaking interface, you can select from maps you are already subscribed to.
And to the left are maps that have been selected by other players within the same lobby.

You can click on any of them to select the same map as well.
The details will be shown to the right.

Once every player is ready, the map which has been selected the most will be played on.
The game then proceeds to download and initialize this map.

vlc Sj2st2Pl7y


Thanks for reading this devlog.
Please consider following Assembly RTS on IndieDB and subscribing to my YouTube channel 🙂

Post a comment

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