Author Topic: Things that Tidalis has that AI War Does Not (Yet) -- Updated 5/26/2010  (Read 44074 times)

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Okay, so there has been some occasional concern from players that we're going to be throwing away a lot of good stuff when we convert AI War to Unity 3D (away from .NET/SlimDX) in the July/August timeframe.  Some concern is justifiable, so I thought I'd make a post about this to put you more at ease.


About Tidalis's History
Tidalis started out as a SlimDX game based on the AI War engine.  It grew for a while, then had a number of problems that we decided to solve via switching to Unity 3D.  I'll get to those benefits in a bit, but I'm first highlighting the fact that Tidalis started as SlimDX and then was ported over, and that it uses an engine very similar to that of AI War for things like rendering, sound, etc.

The first worry that a lot of folks have is that Unity 3D will have worse performance than what we were able to get with SlimDX.  After all, performance is critical for AI War in a way that it is not for Tidalis, since AI War has such a heavier load on the processor.  From our testing, we have seen no drop in performance of CPU-intensive stuff on the switch to Unity.

There may be a slight hit in terms of GPU usage, but Tidalis runs at 3x the framerate of AI War, and has a ton of particle effects -- really, Tidalis commonly has thousands of sprites onscreen at once, same as AI War does.  There are a few things in particular that seem slower in Unity, like Line rendering, but I have some tricky ideas of ways to resolve that sort of thing in AI War on Unity, while also actually significantly beefing up the graphics in that area.

The other key thing that Unity has that we don't have on the other platform is an amazing Deep Profiler that gives us an absolutely amazing amount of insight into where performance is being lost, etc.  For AI War at the moment, we can do some profiling with Visual Studio of course, but it's not as robust or informative for a lot of reasons.  This should help us improve the core performance of AI War above what it already is, but it might not happen overnight.  It will certainly be an awesome ongoing tool, though, and we're already loving it for Tidalis.

All in all, there may be some bumps in the road graphics-performance-wise, but we have a lot of tricks up our sleeves in ways to resolve that, and in the end I think the performance will be better all around.  Now, let's get to what we gain:


Things Tidalis Has That AI War Does Not

UV Animation: There are a ton of uses for this, and it's a powerful and free-on-the-CPU sort of activity.  This will let us do some things like making vastly-more-attractive tractor beams (and other "colored lines") in AI War, for example.  And they can be animated, with effects that look way more high-res.  And that will actually take LESS GPU/CPU load than the current implementation, which involves additive blending of between 2-5 lines.  This would require just alpha blending and UV animation of a single line.  Very win.

Per-Sprite Additive Blending:  Right now our sprites have to be additive blended in batches, which creates a number of challenges for them performance-wise and limits our flexibility with that sort of effect.  Without getting too much into the details, it's one reason why things like engine bloom, etc, would be incredibly hard to do at the moment.  I am not saying that we'll have engine bloom right out of the gate on Unity, but it is something we could pursue down the road (and of course with an option to turn it off as needed).

Texture Wrapping:  Right now we're using the SlimDX wrapper over IDirect3DXSprite, which is pretty limited although pretty reasonably high-performance.  One thing we thus can't do is wrap a single texture across a vertex, which limits a lot of what we can do.  That tractor beams thing I was talking about? This sort of texture wrapping is also needed for that.  But there are also a lot of other things we could potentially do.

Advanced Shader Effects: Here again, this is not something we'd do immediately, but it is something we could experiment with.  In AI War at the moment we have to stay away from Shaders because they would exclude older hardware.  But in Unity, they have methods whereby those advanced effects are simply disabled or downscaled on computers that can't handle it.  So, that would potentially let us later do some cool effects that would have no impact on system requirements.

Keyboard control remapping:  Yes, that's right.  Technically we could have done that in SlimDX, too -- Alden Ridge supported it -- but it would have been way harder for AI War in particular.  We have a model for that already going in Tidalis, and it will be easy to port that to AI War as part of our porting of AI War to Unity.

OSX Support:  Being able to play AI War on the Mac or the PC will be pretty cool.

Linux Support:  AI War currently does not work in WINE.  But, we have reports that Tidalis does, even though Unity is not officially supported on that platform.

Better Installation:  The AI War installer process is currently... long and painful, if you don't already have all the prerequisites.  Unity has no prerequisites other than a working graphics card.  So, that means you can play AI War off a thumb drive without having to install .NET and so forth.  And the initial installation experience for players will be so much more positive, too.

Better Music Playback:  AI War already has music streaming off the disk, but it has a number of small things that are less than ideal.  In Unity, this works much better.

Streaming in Images:  AI War already streams in images from the disk, but it does so synchronously.  That means that when you are first in the game, there is a lot of lag the first time you look at stuff.  With unity we can stream those in asynchronously.  That will mean that instead of lag, you'll see ships "popping in" the first time their images are loaded.  That keeps things moving smoothly (especially nice for multiplayer), and in general will make it feel smoother.

Simulation-independent framerate:  Right now when AI War starts getting slow in a big battle, the game speed actually drops significantly.  In Unity, the first thing to drop will be the framerate.  So things will get jerky in a big battle, but the game speed won't drop unless things REALLY get bad.  This has a ton of benefits, and will let you get through that moment of lag (when one happens) much faster and more painlessly.

True simulation speed scaling:  Right now you can increase the simulation speed, but it pretty much doubles it with one press.  And there is no way to slow down time.  If you look at how this works in Tidalis, it is so much better and more precise, and I think a lot of players will really enjoy that.

Better windowing and controls:  AI War currently uses a mix of DirectX and GDI, which causes all manner of minor issues.  Everything from tooltip wonkiness in the lobby, to video recording not capturing menus, to issues with the screenshot function, to problems with players having in-game overlays (XFire, Steam) that sometimes don't work well with the GDI parts.  With the switch to Unity, all these issues go away, and the menus will be better-looking and will just "feel better" in general.  See Tidalis for reference, though obviously that's a different GUI skin than what we'll do for AI War.

Large RAM Support:  Right now, AI War only supports 2gb of RAM, so if your game gets too huge and goes over that limit, the game dies.  That is super rare, but for some players with monster machines and 200k+ units, it causes problems.  On Unity we will have support for 4gb of RAM instead (on Windows -- the Mac one might support more, actually).

Better In-Game Updates:  The updater process for Tidalis is oh so much better than the one we use for AI War.  It's much faster, cleaner, and supports many-updates-at-once so that we can do non-cumulative updates that are therefore smaller.  This will be coming to AI War, too.

Binary Networking Support:  This really is unrelated to Unity (as are the in-game updates, really), but it's something we're working on with Tidalis and will hopefully support with AI War in the future.  Basically, having both networking and savegames be in a binary format rather than a compressed-string based format should make network transmissions faster and lower the network requirements overall.  This is still in progress for Tidalis, but it looks promising so far.  This turned out to be a waste of time, and we scrapped it for Tidalis and don't plan to do it with AI War, either.

True Fullscreen Support:  AI War has never been able to run in true fullscreen mode, it always runs windowed (because of the GDI elements).  This causes a very minor performance hit, but more importantly it can cause usability issues for players with unusually high desktop resolutions compared to their monitor size.  This is a rare issue, to be sure, but the true fullscreen support will allow a lot more flexibility in what we are able to do.

Bitmap Font Support (With Unicode!): This lets us use fancier fonts without coming afoul of license restrictions.  This will make for an IMMENSE improvement in the visuals on fonts, expect to have this looking far more fancy with that version of the game.

.NET Issues Go Away:  Right now, if you are wanting to play AI War but your copy of .NET is corrupt, you're pretty much up a creek.  .NET is pretty embedded in the OS, so it might even require an OS reinstall, just so that you can play AI War.  Usually it is just an uninstall and reinstall of .NET itself (which itself takes like an hour), but this won't be any sort of issue at all on Unity.  Thank goodness this issue has been super rare in general.


Things We Lose By Going To Unity With AI War

As everyone knows, you can't switch platforms without some drawbacks.

Multi-Monitor Support: Right now, we could do multiple monitors if we took the time to code that in.  When we move to Unity, there's no longer any chance of that, at least not on the current versions of Unity.  Small price to pay, though.  To clarify: external products like eyefinity, or the use of simply stretching a single big window across multiple monitors by setting a larger resolution in AI War, should still work just fine.   The one drawback (possibly eyefinity excepted, not that I'm familiar with that product) would be a thin windows toolbar across the top of your view.

Faux-Fullscreen Support:  Right now, AI War usually looks fullscreen but it's really actually just a window.  That makes for fast window switching, etc.  That actually isn't possible with Unity, but if you look at Tidalis you can see what is possible: the windowed mode support is really good, and the true fullscreen support has a number of other benefits.  I will miss the support for this, but the other benefits vastly outweigh this drawback.  To clarify: you'll still be able to run in windowed mode at whatever resolution, so you can use it to fill your screen if you want.  But, you'll have a thin little toolbar across the top, and those little window border edges along the sides.


Conclusion
I think there has been some undercurrent of worry that we're moving to Unity "just because" or because we're some sort of Mac enthusiasts that don't mind throwing out a lot of PC-specific benefits, or whatever.  Hopefully this post puts those worries to rest.  There are a TON of benefits to moving to the Unity platform, and the AI War 4.0 version (that will be the first Unity version) is going to really be taking things to the next level, and letting us do even more stuff in the long term.  And I'm pretty confident that I'm forgetting some other benefits that we've had in Tidalis that AI War doesn't yet have (and can't have on the current platform).

The better-installer thing alone is hugely valuable for Arcen, as I think it's been something that harms sales that the installer process is so onerous.  It's that stupid install of .NET 3.5 that does it.  That was the main thing that made us switch Tidalis to Unity, although the cross-platform thing was also a huge draw.  But once we did that, we found ourselves amid a literal treasure trove of other benefits on that platform, and at least most of them are enumerated above.

For those who have been wondering: this Unity changeover is something to be really excited about even if you are on Windows.
« Last Edit: August 12, 2010, 03:28:58 pm by x4000 »
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Adetia

  • Newbie Mark III
  • *
  • Posts: 43
Faux-Fullscreen Support:  Right now, AI War usually looks fullscreen but it's really.  That makes for fast window switching, etc.  That actually isn't possible with Unity, but if you look at Tidalis you can see what is possible: the windowed mode support is really good, and the true fullscreen support has a number of other benefits.  I will miss the support for this, but the other benefits vastly outweigh this drawback.

Think you forgot a word in the first sentence there. But does this mean we lose support for a fullscreen windowed mode?

If so:


Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Yes, I fixed that before you posted it, actually.  And yes, that's what it means.  You'll either have a toolbar at the top of your screen while in windowed mode, or it will be true fullscreen.  That change is the main thing that I'm unhappy about with the switch to Unity, but there's always hope that they might support that at some time in the future, and all the other benefits vastly outweigh that one thing.  If you're worried, you can check out the Tidalis demo and see how that works for comparison, it will be the same in AI War (the latest versions of Tidalis have some improvements on that score, FYI).

At any rate, the switch to Unity is going to happen, we aren't going to be changing our mind on that.  If people are really bothered about this one feature they need to start making their peace with it.  The plethora of other more-substantial benefits ought to ease the sting on that one issue, I hope. ;)
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline triggerman602

  • Sr. Member Mark II
  • ****
  • Posts: 366
Quote
Faux-Fullscreen Support: Right now, AI War usually looks fullscreen but it's really.  That makes for fast window switching, etc.  That actually isn't possible with Unity, but if you look at Tidalis you can see what is possible: the windowed mode support is really good, and the true fullscreen support has a number of other benefits.  I will miss the support for this, but the other benefits vastly outweigh this drawback.



However this talk of fancy tractor beams sounds nice.
« Last Edit: May 26, 2010, 03:52:27 pm by triggerman602 »

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
I am curious: are these objections meaning that you prefer the faux-fullscreen thing to ALL of the other benefits of Unity?  If so, I'm kind of shocked at that.
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline celoxsf

  • Newbie
  • *
  • Posts: 2
Multi-Monitor Support: Right now, we could do multiple monitors if we took the time to code that in.  When we move to Unity, there's no longer any chance of that, at least not on the current versions of Unity.  Small price to pay, though.


NOOOOOOOOO!!!!!!!

Are you saying that AI War currently does not support multi-monitors? Because I would disagree with that...

I paid a lot of money for my eyefinity setup and I want to use it!

Right now I can play AI War in 5760x1200 with no problems.





My question is: UNITY will break this?


I tried attaching an image but it didn't work out quite how I wanted hehe
« Last Edit: May 26, 2010, 04:12:15 pm by celoxsf »

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
celoxsf, in our view AI War currently does not support multiple monitors (not natively in the sense of something like SupCom, I mean). Use of something external like eyefinity is something really separate and should work fine so far as I know.  Unity doesn't have any problems drawing in odd dimensions in windowed mode at least, so at the very worst you'd have a thin windows toolbar along the top; but depending on how eyefinity works, if other 3D fullscreen games work with it, I'd be surprised if Unity games did not.  A quick google search didn't reveal much on that, though.
« Last Edit: May 26, 2010, 04:08:46 pm by x4000 »
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Well, I'm really surprised by the early negative reactions to this thread, that was not at all what I'd expected, and this was meant to be a positive thread to put people's minds at ease.  Apparently there is a lot of attachment to the faux-fullscreen windowed mode.  In light of the above comments, I feel like I should make some additional comments:

Just to be clear, one of the key reasons we're not going to be convinced away from the Unity changeover (especially over one smallish feature like that -- really, the windows toolbar at the top of the screen would be the only difference if you want this) is that I see this as being crucial to the longterm survival of AI War.  Sales are still steady, but are definitely lower this quarter (by about half) compared to what they were in the first quarter of the year.

With other discount promotions and the mini-expansion and all that good stuff, sales should pick up again.  However, I feel like one thing that has definitely held AI War back is its installation prerequisites, which makes people wait an hour before they can even try the demo that they downloaded in many cases.  That's not a recipe for people being in a good frame of mind for starting the game, right?

At any rate, you wind up with market saturation at some point with any game, and it's amazing how long and how well AI War has sold considering how niche it is, etc.  And I think there's a ton more room for growth, too.  But one key thing with that is also opening up into other markets that would be available for it, like the Mac.  Is that absolutely necessary for AI War to survive?  I can't say that it categorically is.

But the loss of one little minor feature like this (which no other game I've ever encountered supports) is a pretty small price to pay for all the benefits that you the consumer get, and we the company get.  And it helps to ensure the continued survival of the game and of us as a company, and puts less pressure on Tidalis to do amazing in order for us to make it through the end of 2011 or to be able to make the staff increases that we really need to make.

I think that some of the prior objections (before this thread) had been worrying that AI War would have to be "dumbed down" in some way, and that we were just going for a cash-in with a larger audience while throwing a ton of babies out with the bathwater.  And that isn't the case.  There are a lot of things we could do to make the game more dumbed-down in hopes of attracting the more casual RTS crowd, but we aren't interested in any of that at all.  The reason for making this shift is that it's a positive thing for the game overall, existing customerbase included, and it removes some barriers to entry that aren't related to the gameplay itself.

I hope that clarifies a little bit more, at least.
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline celoxsf

  • Newbie
  • *
  • Posts: 2
Personally, I think you guys are doing an awesome job. You're my favorite Indie company and I desperately want your projects to succeed because you're living my dream!

Eyefinity is a niche market right now, too. I think it will be the future of computers.

Thanks for making such a great game AND FOR COMMUNICATING WITH US!

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Many thanks for your support!  And cool screenshot, by the way. :)
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline dumpsterKEEPER

  • Sr. Member Mark II
  • ****
  • Posts: 361
Count me in as being excited about the Unity switch.  I've been looking forward to it since it was first suggested as a possibility for AI War, I think around the time Tidalis switched to Unity.  From what you've described, it sounds like it will really improve the game in a number of different ways, with almost no major drawbacks in my mind.

As a purely anecdotal story, a while ago I shared AI War with a number of my friends at a LAN party I was at and we played part of a campaign up to the (then) one hour limit.  One of the guys had a really difficult time getting the prerequisites installed for the game and was rather frustrated as a result.  In defense of the game, his computer was hosed in several different ways and this certainly wasn't the only problem he was having, but having to wait for the packages to download and then throw errors when they tried to install was quite frustrating when he just wanted to jump into the game with us.  Smoothing out the install process can only help, and adding Mac support could potentially expand the available player base.

Offline wyvern83

  • Sr. Member Mark II
  • ****
  • Posts: 398
Simulation-independent framerate:  Right now when AI War starts getting slow in a big battle, the game speed actually drops significantly.  In Unity, the first thing to drop will be the framerate.  So things will get jerky in a big battle, but the game speed won't drop unless things REALLY get bad.  This has a ton of benefits, and will let you get through that moment of lag (when one happens) much faster and more painlessly.

Seriously. My game bogs way down when more than 10,000 ships are in a fight in the same system at one time. I've actually shelved my 19 hrs 30 minutes glassing campaign for the time being for this very reason. Losing the current fake full-screen windowed mode is a minor lose for this trade-off alone imo.

tldr: This an awesome update and losing fake full-screen windowed mode is a small prize to pay for it.

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Yeah, being able to play AI War on a semi-hosed Windows install will be a big benefit because, sadly, there are so many of those around!

And the framerate dropping thing will be really sweet, I agree -- it's not a magic bullet, in that if your game is running incredibly slowly this will help but not solve it completely, but at worst that would probably about double or triple the speed during those segments.  Another thing that may help will be the binary networking, which is used for in-game single-player communications as well, and which should cause less stress when you and/or the AI are giving massive numbers of orders to a ton of ships at once.  And the larger memory support may have some hidden benefits in this area, too.

And, as we are able to spend more time with AI War in the Deep Profiler of Unity, our hope is to be able to find some hidden CPU hogs that are currently invisible to us.  We certainly found a couple of those with Tidalis (and applied what we learned there to AI War already), but I think there are even more in AI War that we have not yet found that are specific to that game.

Thanks for the support, guys, glad someone other than people on staff are actually excited about this! ;)
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Mánagarmr

  • Core Member Mark V
  • *****
  • Posts: 4,272
  • if (isInRange(target)) { kill(target); }
You have my massive support for this. While faux-fullscreen is very convenient, I can easily live without it if all those other things make it in.
Click here to get started with Mantis for Suggestions and Bug Reports.

Thank you for contributing to making the game better!

Offline RCIX

  • Core Member Mark II
  • *****
  • Posts: 2,808
  • Avatar credit goes to Spookypatrol on League forum
I'm mostly excited about all the shiny new FX you'll be able to do, as well as actually having non-additive blended sprites and explosion effects for grenade launchers/missiles :)

But no multi monitors? :'( oh well not much you can do about it, perhaps Unity will add that in some later version...

Oh, and how does Steam fare with Unity? will it work, especially seeing you're switching the requirements over from SlimDX/.NET?
Avid League player and apparently back from the dead!

If we weren't going for your money, you wouldn't have gotten as much value for it!

Oh, wait... *causation loop detonates*