1. Planetary Annihilation: TITANS
  2. News

Planetary Annihilation: TITANS News

AbleGamers Charity Tournament 2018



The most overtly pay-to-win tournament in Planetary Annihilation’s history is back for its fifth incarnation!

https://www.youtube.com/watch?v=aZ19dFfdiyQ

We return once more to bring you the biggest, most unpredictable and most expensive event in our community calendar. With the support of the Planetary Annihilation community, we hope once again to be able to treat you to a showcase of this uniquely cataclysmic Real-Time-Strategy game.

Sixteen players will battle in a series of free-for-all games for a chance to be crowned King of Chaos. The players will need to use all the wit, skill and diplomacy they have available to them as they try to claw victory from this frantic scrum. However, there is a twist:

YOU control the carnage!


You, the spectators, have the ability to donate units to the player of your choice, LIVE, as you watch the battle unfold. Give an underdog a second chance, drop a TITAN in the middle of a rampaging horde, or just throw down a load of nuclear missiles to watch the explosions.

Why?


This tournament is in support of the AbleGamers Charity, a fantastic organization which makes gaming and computing more accessible to those with disabilities. Every cent donated goes directly to the charity via the donation page. This annual tournament has raised over $6,400 so far, with last year raising over $2,200. As ever, we’re hoping to beat last year’s total!

How?


Before the tournament goes live, a ‘menu’ will be published, showing how many dollars you must donate in exchange for each available unit in the game. Along with your donation, you must include instructions detailing which player you wish to donate to, which units you wish to donate and where you want them to be placed. Once the donation and instructions have been received, our resident Puppetmaster will ensure they are added to the game.

For those unable to make it live to the event, units can be donated in advance and will be added at the first available opportunity.

Main Event


Saturday 2018-11-24 18:00 UTC

Qualifier Event


Saturday 2018-11-17 18:00 UTC

Live stream


https://www.twitch.tv/wpmarshall

Multi-threading, Performance and AI Improvements Update 112176

Greetings Commanders,

It took us a little longer than we expected to prepare this build in light of some server issues last weekend, which are now resolved.

This is our first new build on the legacy toolchain and will be the first of many once we stablise our modern toolchain builds.

Our focus is on speed and stability as we work to ensure we’re in the best place possible ahead of upgrading the technologies which underpin the game. We’ve implemented numerous server sim performance improvements, while also resolving a number of the most common causes of server-side crashes.

You should still make sure your graphics drivers are up-to-date as out of date drivers are still the most common cause of client issues. Seriously. Go do it now!

Over time we’ve seen the competitive meta settle, revealing some very visible imbalances. No one likes those. We’ve introduced some small changes to fix things. Balance is as much an art as it is a science, so we’ll continue to monitor and adjust as necessary.

The AI has also seen some love, upgraded to be more ruthless than ever. It’s in it to win it, with an upgraded neural net, along with additional behavioural improvements.

Finally, rumour has it some kind of ladder reset is fast approaching...

Balance
  • Advanced Air, Bot, Vehicle and Naval Factory cost increased by 25% to 4,500 (minor delay to T2 rush)
  • Slammer cost increased to 500 (minor adjustment against Leveler)
  • Solar Array cost decreased to 1,600 (minor adjustment against land-based advanced power)
  • Gil-E vision increased to 220 (vision now matches weapon range)
  • Bluehawk range increase to 220 (buff as a counter e.g. Kaiju)
  • Pelican health increased to 200 with group (formation) preference set to back (increased survivability)
  • Stingray vision increased to 250 with new radar and sonar of 350 (new cruiser role as naval radar)
  • Typhoon vision increased to 250 with drone guard radius of 250 and passive health regen reduced to -2 (20 seconds)
  • Kaiju rate of fire decreased to 0.5 shots per second (minor nerf)


Technical Notes


AI
  • Adjusted the neural network fitness function
  • Neural networks have all been re-trained for Titans and Classic
  • Threat response platoons now see amphibious units as anti-sub threat
  • Added a couple of new target filtering options, a new neural net input, and a few new outputs
  • AI does a better job of gathering and using intel as well as caching it for later use to improve performance
  • When looking for a place to attack, the AI will now take into account neighbouring areas when determining what size of a force to use
  • The AI will now look for more fights that it can win rather than fights it can at least tie
  • Fix for AI platoons that would get stuck trying to disband
  • Adjusted how much the AI raids
  • Improved AI neural data merging
  • Adjusted AI aggressiveness


Server / Simulation Performance
  • Adjusted how search spaces are updated in an effort to get through as many of them as possible per tick
  • During the nav update, more of an effort is made to allow as many search spaces as possible generate their high level path so units can start moving faster
  • Added a fail safe to allow nav to steal more voxel budget if it is having a tough time getting through search spaces
  • This will give nav an opportunity to fulfill a larger number of move requests over a shorter time
  • We now query a search space to ensure we have enough voxel budget remaining for the space to prevent doing a bunch of useless work
  • Added the count of updating search spaces in nav to the perf output window
  • More aggressive filtering of collision pairs to reduce the number of pairs we have to check
  • Nav now attempts to pre-allocate the cost cells it will need for the updating search spaces it has
  • Search spaces now return their cost cells to nav when they are finished so they can be reused later
  • Moved the spatial DB update for dynamic objects so that it only happens once, at most, per update


Server / Simulation Multi-Threading

Please note multi-threading must be enabled for your server.
  • The task scheduler now supports running the plan step of parallel tasks (such as weapon auto targeting and auto manoeuvring) at the same time, per unit
  • Entity record step now runs in parallel
  • The nav and physics updates now run alongside the economy update
  • Added multi-thread support for the heavy parts of the recon update
  • Units can now update their weapon aims in parallel
  • The physics update now supports multi-threading
  • The small island build is now multi-threaded per sector
  • This helps in-game perf as well as system loading
  • Added --max-threads command line to set the max number of background threads


Crash Reporting
  • Improved crash reporting for all platforms
  • Crash dumps are now stored in the log folder (varies by OS) instead of a temp folder
  • On Windows, a DxDiag report (stripped of all personally identifiable info) is now automatically attached to crash reports


Crash Fixes
  • Fix for crash if, during the same tick, a search space was marked for removal and then another search space was created for the same destination
  • Fix for rebuilding the collision geometry BVH when it wasn't needed
  • Fix for crash in swizzle tree from trying to evaluate log(0), in a rare case
  • Fix for big game crashes caused when the flood runner gets a request from a search space with an invalid goal location
  • Fix for virtual texture binding crash on the client


Modding
  • icon atlases now use grids which increases the maximum strategic icons (52x52px) on an 8K texture (older GPUs) to 157 x 157 (24,649) and on a 16K texture (modern GPUs) to 315 x 315 (99,225) resulting in a breaking change to the following shaders:
  • particle_direct_ring_selection.vs
  • particle_direct.vs
  • particle_icon.vs
  • particle_status_icon.fs
  • particle_status_icon.vs
  • strategic icon mods should use the new utility function calculateAtlasUV (added to particle_common.vs) replacing:
    v_TexCoord = vec2(a_TexCoord.x, vUVAndExtra.x + vUVAndExtra.y
  • (1.0 - a_TexCoord.y));
    with v_TexCoord = calculateAtlasUV(vUVAndExtra.xy);


Server Issues Resolved

Our legacy infrastructure hit a 10GB limit for archived game summaries. That's a lot of games!

64 bit - The Future of PA and Titans

Hello Commanders,

Today marks the six year anniversary of the Planetary Annihilation Kickstarter, where 44,162 backers helped breathe life into the concept of a next-generation RTS, where thousands of units would clash across multiple worlds, unleashing interplanetary destruction.

It's been a long road and we’d like to say a big thank you to everyone who backed, supported or just played Planetary Annihilation over the past six years; we couldn’t have done it without you!

The incredibly sexy technical work continues behind the scenes. After the next major update we will be focusing on 64-bit operating systems as we continue to modernise Planetary Annihilation. If you're part of the 2% still on 32-bit Windows now would be a good time to upgrade so you can fully reap the benefits of the changes we’re making.

Similar to Valve, Blizzard, Nvidia and many other game developers, this modernisation necessitates saying goodbye to some unsupported, end-of-life operating systems like Windows Vista, and older macOS / Linux releases. We'll confirm the details prior to our modern build going live and plan to make unsupported older builds which will continue to work in offline mode available to anyone who cannot upgrade.

We have also performed a much needed refresh of our community rules and guidelines, after all we don’t want our little pocket of humanity to fall into discord and be overthrown by the Machine Liberation Army. There’s even a tl;dr version, because we know you want to be playing PA not reading rules. These apply to all aspects of PA: lobby names, in-game chat, official forums and the official Planetary Annihilation Discord server which is now live.

Please feel free to use the official Planetary Annihilation Discord server to coordinate games, discuss strategies, seek out help with modding, and anything else PA related. We also hear there’s more to life than PA, and while we’re not sure we believe that, we have created an off-topic channel just in case.

See you in Discord: https://discord.gg/C3GBXbg

The PA Team
https://planetaryannihilation.com/

planetaryannihilation.com - The Future of Titans and PA

Hello Commanders,

We hope you enjoyed the multithreading technical update from Sorian. The work on modernising Planetary Annihilation continues and we will bring you more of that sweet technical goodness in future posts.

The transition to Planetary Annihilation Inc is almost complete and we have moved the website, forums and support.

New URLs are as follows:
  • Website: https://planetaryannihilation.com/
  • Forums: https://forums.planetaryannihilation.com/
  • Support: https://support.planetaryannihilation.com/

The support articles are being developed to provide more content relevant to issues we see reported. Like with any game though, we find most issues are caused by out-of-date drivers, especially with cross-platform OpenGL support, so please ensure you check that your drivers are up-to-date.

We are targeting 15th September for the launch of our official Planetary Annihilation Discord server, though you can already sign-up. We will also be following up later with Discord rich presence support to make it easier than ever to form a party with your friends, join a game with them, or just spectate one they’re already in.

In looking to the future, Classic Planetary Annihilation has been removed from sale. This will not impact existing players, the game will remain in your Steam library and Classic PA players will still be able to upgrade to TITANS at the permanent 90% off discount. New players will only see TITANS in the store, which is both backwards compatible with Classic PA lobbies and also supports switching to classic mode to host classic games. Classic PA will continue to receive updates, including the new simulation performance improvements with multithreading that Sorian is working on.

Later this month we will be releasing new PTE (Public Test Environment) builds for TITANS and Classic PA with some of those improvements for you to try out. The PTE is how you can test out new features that are still under development, and we’ll be using it to get your feedback ahead of official releases.

See you in Discord on the 15th!
https://discord.gg/C3GBXbg

The PA Team
https://planetaryannihilation.com/

Multithreading - The Future of PA and Titans

Hello Commanders,

@sorian is back working on server simulation performance with multithreading this month and we have a technical update to share on his work for the next update.

Two years ago I was given the opportunity to continue work on my baby, Planetary Annihilation, for the 99337 Performance Update. My primary focus was attempting to improve performance by multithreading parts of the simulation. My initial focus was on areas of the simulation where I thought it would be easiest to do things in parallel. The most natural separation was based around planets.

Since navigation and physics are typically the worst performance offenders, separating updates by planet seemed like a good plan. Their updates tend to only act on a single entity. Initial testing blew up spectacularly, as I expected it would. Fortunately, there were not many areas of contention between threads and a performance win was born.

So, now that I am back, you may be wondering what I am working on now. I’ll be continuing right where I left off! This time I am digging further into the sim to see where I can split large groups of tasks over threads to speed things up. Early this week I was focused on the physics update. I figured, since we should only be looking at two unique physics objects at the same time, it should be possible to thread this.

Well, I was right and wrong. There were the usual small issues to fix, but threading the physics update revealed a larger issue. The physics system utilizes an HGrid (described as a loose octree) to find potential entity overlaps using a function called buildPairs. It turns out that there is no guarantee that the vector of pairs that we get back does not contain duplicates. Under normal operation this isn’t a huge issue, as this is a single call that immediately returns and it was just being done thousands of times more than it needed to be. However, when you throw threading into the mix it gets ugly. Fixable, but ugly.

I have also started work on restructuring the sim tick a bit to allow the navigation and physics updates to happen alongside other updates. Right now I have it running alongside the economy update, but the economy update is only a small part of the overall update, so not much of a win there yet. I am hoping to split some of the plan steps (our sim has plan, execute, and record steps for entities) out into a group that can also run at the same time as the navigation/physics update.

For the navigation system, I have been mainly focusing on the epic number of allocations the navigation system does during voxel integration. I have a new system in place that saves off vectors of cost cells (the objects the integrator makes tens of thousands during voxel integration) for reuse. The integrator is also doing a better job of allocating in blocks instead of individually. On the multithreading front, the navigation system has proven to be quite difficult. There are so many little acceleration features and so much lazy loading that is simply prevents multithreading without a significant amount of work.

So, what’s next? There is still more work to be done with navigation, there is still the sim tick stuff to be investigated, and some AI updates as well (of course), starting with a much needed performance pass. And that doesn’t even get into other fun stuff like modern toolchain and Coherent GT updates.

Mike “Sorian” Robbins

https://forums.uberent.com/threads/multithreading-the-future-of-pa-and-titans.73101/