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.
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.