KIX Drake
KIX Drake
KIXEYE Support
Joined Mar 2014 Posts: 284
edited 30 Jun 2020, 8:36PM
Your friendly engineer, Nixeye, has an important update for the community.

Greetings Commanders!

Nixeye here from your friendly War Commander Engineering team. In preparation for the upcoming conversion to HTML5, we've been hard at work removing a large barrier to the porting efforts. This barrier is what we have often referred to as AIBox - this is our client-side battle simulation, which ran in parallel to the server-side simulation, and represents quite a large chunk of our codebase. Unfortunately, in order to port the game to HTML5 (an effort that has been in progress alongside this work), we first had to remove this simulation, and reimplement a huge number of features in a more standard client-server model. If you'd like more details on how this simulation worked and why it needed to be removed, you can listen to my episode of our podcast, Drake's Dungeon (https://www.youtube.com/watch?v=jmkw4_jsHPc), in which Drake and I discussed the topic in further detail.

What does this mean for you?

This week’s Release represents a very large change to the backend of the game. From the player perspective, not much has (visibly) changed, but there will still be some things you'll notice.

The first and most noticeable thing will be that units move a bit differently in your own base outside of battle. Because we've removed the entire client-side simulation, we've had to backfill a lot of behavior that used to rely on that simulation, including unit movement. As you move units around in your base, they will no longer rotate to their destination over time, nor will they accelerate and brake. They also will not do pathfinding outside of battles, so all of their movements (again, outside of battle) will be a straight line from their current position to their destination.

Another big part of this change is that the Go-Go Bar had to be completely re-written to run against the server - previously it had run entirely within the client-side simulation. This means that a Go-Go Bar battle will be a true battle simulation. However, as it now shares server resources with actual battles, we may need to disable the Go-Go Bar from time to time to decrease load on the battle servers. Hopefully this will be very rare, and is likely only to be necessary during peak battle times, such as during our monthly event.

Those are the two biggest changes in functionality you'll notice. A smaller (but beneficial) change you'll notice is that we've done away with the concept of ammo on turrets. No more need to load rockets in your Rocket Silo - they'll keep firing at whatever comes their way.

What's the upside?

I'm glad you asked - this is my favorite part.

First off, as I mentioned, this is a necessary stepping stone to an HTML5 port. The finished port is still some months away, but this is a big step toward it.

Also, you know those random Flash crashes that happen periodically? Not the red box errors, but the ones where the whole game just...dies? In our testing, we've been seeing less of those. And by less, I mean none.

The game also loads faster. How much faster depends on various parameters - your connection speed, browser asset caching, etc. However, in some cases we've been seeing the initial game load a complete 10-15 seconds faster than before.

Loading isn't the only thing that's faster. Doing some side-by-side comparisons of identical battles, we've seen the average frame rate increase by as much as 20-30%.

And of course, now that there's no client-side simulation, what you see is exactly what the battle server says. Our battles have long been completely server-authoritative, but sometimes the client-side simulation would desync and diverge from the server, so what you saw could be different than what was actually happening on the server. This is no longer the case - battles are still 100% server-authoritative, but the client is now completely dependent on the server for battle state, which means the simulation can't diverge - it can only fall behind. And if it falls behind, it should always catch up, because the server now sends the exact positions of all units in battle multiple times per second, and as soon as the client receives that information, it will interpolate to those positions within a few frames. Which reminds me of another benefit - without having to sync the entire simulation, joining an active battle is actually faster now as well. Whenever you join a battle, there is no longer a "catch up" period like there used to be - you'll simply receive the units' current positions, and within a few frames everything is in sync.

Should you expect bugs?

This is a pretty massive change so there will be bugs that we missed. We've been working on it for months, testing along the way, and fixing everything we can find, but there are a lot more of you than there are of us, so bugs will be found once this is released to the masses. If you find something, let us know. We will be opening up an AI Box Bug Channel in Discord specifically for players to report any new bugs found in this version of the game, that our QA and engineering teams will monitor closely. Since this is such a massive project, it may take a while to catch and fix all the bugs, but we appreciate your patience and support as we work to resolve them as quickly as possible.

A new day is upon us! See you on the battlefield!

To discuss AI Box Removal and other aspects of the game, but sure to join the Discord. https://discord.com/invite/warcommander
This discussion has been closed.