TUXDB - LINUX GAMING AGGREGATE
by NuSuey
NEWSFEED
▪️ GAMES
▪️ STEAM DECK ▪️ DEALS ▪️ CROWDFUNDING ▪️ COMMUNITY
tuxdb.com logo
Support tuxDB on Patreon
Currently supported by 10 awesome people!

🌟 Special thanks to our amazing supporters:


✨ $10 Tier: [Geeks Love Detail]
🌈 $5 Tier: [Arch Toasty][Benedikt][David Martínez Martí]

Steam ImageSteam ImageSteam ImageSteam ImageSteam ImageSteam Image
AI War 2 v0.748 Released! "Macrophage Teeth"

Release notes here. This week hasn't exactly gone as I expected, but it's been very productive.  I had planned on working on the lobby, first of all, but then some performance-unfriendly saves came to light and I decided I'd work on that instead.  The biggest hog in large battles is the vis-layer movement of ships around, and last release I talked about how I was going to look into System.Numerics and DrawMeshInstanced to solve that.  I also basically decided to upgrade to Unity 2018.2, even though that's still in beta, because it has some things we need. Well, that didn't happen either! Badger fixed up the "unit testing" program that we have for the sim layer, and for the first time I fired that up.  It's an area that was previously out of my domain, but that's been expanding a bit lately just due to necessity.  At any rate, I spent almost all of this week on performance improvements to the sim layer. Badger also fixed some notable bugs, such as the Macrophage not actually doing damage when they attack.  That concludes my summary of the release notes other than to talk about performance. Enjoy! Chris I again wanted to mention: we have a new Steam Developer Page.  If you go there and follow us, you'll be notified about other upcoming releases (including this one, of course). Performance Hunting I've tried using three different profilers in this period: NProfiler (which is awful despite promising big things), JetBrains dotTrace (which seems fine), and RedGate ANTS (which is maybe a bit better, but it's hard to be sure). At first these tools were lobbing up really juicy bits for me that I was able to majorly optimize, leading to quite a bit of savings.  I spent way longer than I expected just trying to optimize squareroot again for our use cases, and finally cut that to a tenth or less of the load it used to represent. I thought I was going to have to create a new form of data structure for tracking lists of entities in our code, and I came up with one in my head that I haven't implemented yet (a wrappered, pooled, linked-list structure that is super fast at adding, removing, and iterating, but has no random access possible).  It turns out that the things that I thought were going to require that MAY have been a profiling artifact, but the vote is still out on that.  I'm undecided on whether or not I need to make an adjustment there. At the moment, what I am winding up finding is a suspicious "speed limit" on the sim code that is related to the framerate in some fashion (and no, it's not any of the obvious things; in this case it's a virtual framerate, but that still adjusts the speed limit).  At any rate, that's the next thing I need to dig into, because I think no other changes I make will show a result at the moment because all the background threads are presently running below that speed limit, making it the limiting factor.  Some of the later performance improvements I made show up with no benefit in actual gameplay yet, but they show up fine in unit testing if I set the virtual framerate really low.  Fun for soon. One of the things that I've observed is that the background threads aren't hitting the other processors on my CPU as much as I expected, which was suspicious to me.  I've gone in and looked around, and my first thought was that our threads are spending too long transitioning from idle to active.  I'm still not sure that isn't the case.  We're using Thread.Sleep(1) in order for them to wait while being alive and then turn on as soon as a bool is set that says "your data is here -- now go!" The problem is... apparently Thread.Sleep doesn't guarantee that it will only wait one ms.  Instead it will apparently average 12-15 ms.  That is an eternity!  No wonder things are not very busy on the secondary processors.  So that's no go. I started using SpinWait to spin the cpu instead of Thread.Sleep(1), and that does indeed peg the CPU at 100, but there's 88% wasteage on spinning according to the profilers when that happens.  That's going to slow down the main thread and lose framerate as well as making the other threads slower to sync, too.  So that's really kind of a no-go. I need to figure out what that mysterious "speed limit" in our code is and get rid of that, and that will solve a lot of the problem.  Other than that, though, I've got to figure out a way for the multithreading to be a bit more snappy in when it does things and stops doing things.  Right now it's 12-15ms at best from the word go to it actually doing anything (on almost a dozen background threads, individually). We could supposedly use the Monitor class to help with synchronization, but I'll be honest that I don't yet fully understand how that would best be used while not pegging the CPU.  Offhand, it sounds like using objects to lock against and monitor instead of using a bool to check against -- still one per thread -- but I'm not positive.  Any multithreading-in-C# experts in the crowd that want to help out?  Either with some explanations or taking a look at our code, or even making some changes on your own?  We're pretty slammed, workload-wise. Anyway, another option that is still on the table is potentially just switching to using the ThreadPool or some other form of multithreaded job class rather than threads that we keep warmed up and running and managed on our own.  That might be the simplest approach, we shall see.  I've done this in plenty of applications before, but none with ms-level speed required.  AI War Classic only had one secondary thread, and it didn't block the sim when it was idle, so we never ran into this with it.  With Stars Beyond Reach, we used a ton of threads, but it was done in such a way that a 12-15 ms lag was utterly invisible. So that's what's going on lately!


[ 2018-07-05 21:23:08 CET ] [ Original post ]

AI War 2
Arcen Games, LLC Developer
Arcen Games, LLC Publisher
2019-10-22 Release
Game News Posts: 506
🎹🖱️Keyboard + Mouse
Very Positive (1068 reviews)
The Game includes VR Support
Public Linux Depots:
  • AI War 2 Linux [1.72 G]
Available DLCs:
  • AI War 2: The Spire Rises
  • AI War 2: Zenith Onslaught
  • AI War 2: The Neinzul Abyss
AI War II is a grand strategic RTS against an overwhelming, inhuman enemy who has conquered the galaxy. The enemy has made only a single error: underestimating you.

You must steal as much technology as you can, and take enough territory to fortify your bases and launch your attacks. But every conquest you make turns the attention of the AI ever more in your direction... so choose your targets with care.

It's "a sequel to [Arcen's] enormo-space RTS AI War, which we called'one of this year's finest strategy games' back in 2009" (Tom Sykes, PC Gamer)

What's New?

We still have a lot of work to do on the game, and we're undergoing some major work with our beta testers before heading to Early Access, but a lot is already awesome:

  • The game is crazy moddable.
  • It's multithreaded to take full use of modern computers.
  • The new 3D graphics are working out great.
  • The UI has already been dramatically improved by the introduction of a tabbed sidebar in the main view, and streamlining of several other mechanics that felt very difficult in the past. More to come, there.
  • We’ve got art for over 130 distinct units (not counting different mark levels), and there's more to come.
  • We’ve got over 1500 lines of spoken dialogue from more than 25 actors, focusing primarily on the human side at the moment; we have a few hundred lines of AI-side taunts and chatter, some of which is recorded but just not processed yet.
  • There are hundreds of high quality sound effects for a varied battlefield soundscape (with distance attenuation if you’re far away, and positional 3D audio if you’re down in the thick of it), all routed through a tuned mixer setup for optimal listening to all the various parts.
  • We have a set of music from Classic that is over four and a half hours long, and the new music from Pablo is partly in, but mostly set to be mastered and integrated within the next week or two.
  • There’s also a ton of map types, many of them new, and with a lot of sub-options to make them even more varied.
  • And a whole lot more.

Wishlist the game to be notified when it becomes available!

MINIMAL SETUP
  • OS: Ubuntu 12.04+. SteamOS+
  • Processor: Dual Core 64bit CPU (2.2+ GHz Dual Core CPU or better)Memory: 4 GB RAM
  • Memory: 4 GB RAM
  • Graphics: NVIDIA GTX 510+. Radeon HD5900+. or Intel HD4000+
  • Storage: 4 GB available space
RECOMMENDED SETUP
  • Processor: Any Quad Core or 3.0+ GHz Dual Core CPUMemory: 6 GB RAM
  • Memory: 6 GB RAM
  • Graphics: NVIDIA GTX 660 2GB / AMD HD 7870 2GB
  • Storage: 4 GB available space
GAMEBILLET

[ 6144 ]

2.47$ (17%)
7.63$ (81%)
22.24$ (11%)
17.79$ (11%)
12.38$ (17%)
24.87$ (17%)
9.95$ (75%)
52.19$ (13%)
32.27$ (35%)
4.12$ (17%)
33.17$ (17%)
16.79$ (16%)
5.90$ (80%)
21.24$ (15%)
16.59$ (17%)
16.99$ (15%)
8.39$ (16%)
8.39$ (16%)
7.55$ (16%)
4.12$ (17%)
2.88$ (81%)
24.89$ (17%)
10.78$ (17%)
2.88$ (81%)
17.39$ (13%)
8.39$ (16%)
25.19$ (16%)
12.42$ (17%)
9.98$ (67%)
5.77$ (17%)
GAMERSGATE

[ 1449 ]

2.55$ (91%)
35.99$ (28%)
1.19$ (40%)
6.38$ (57%)
8.92$ (40%)
0.83$ (92%)
5.09$ (49%)
5.1$ (74%)
3.04$ (70%)
27.49$ (45%)
0.85$ (91%)
2.8$ (44%)
1.0$ (80%)
2.5$ (50%)
0.85$ (83%)
26.99$ (46%)
4.75$ (81%)
0.18$ (91%)
9.37$ (63%)
11.24$ (63%)
4.5$ (70%)
4.46$ (70%)
3.4$ (57%)
13.59$ (32%)
12.74$ (58%)
0.9$ (92%)
2.29$ (23%)
3.4$ (91%)
4.94$ (25%)
2.25$ (89%)

FANATICAL BUNDLES

Time left:

1 days, 6 hours, 12 minutes


Time left:

18 days, 6 hours, 12 minutes


Time left:

356442 days, 22 hours, 12 minutes


Time left:

0 days, 6 hours, 12 minutes


Time left:

29 days, 6 hours, 12 minutes


Time left:

15 days, 6 hours, 12 minutes


Time left:

25 days, 6 hours, 12 minutes


Time left:

24 days, 6 hours, 12 minutes


Time left:

31 days, 6 hours, 12 minutes


HUMBLE BUNDLES
by buying games/dlcs from affiliate links you are supporting tuxDB
🔴 LIVE