I looked at it a while back (over a year ago I think), but was deep into rolling my own MMO Engine Tech Demo at the time. (And that was an invaluable learning experience)
But now for my current project ‘Asteroid Wars’, I have been back to look at it again and I have to say I am impressed so far, especially when you take into consideration external tools and services like SmartFoxServer running on Amazons EC2 Cloud.
It’s a bit pricey at $1,200 (going to $1,500 soon) there is a free ‘lite’ version with watermarks all over it, but it is good for checking it is going to work for me and my game is viable before I part with that much cash for a full licence. Plus the range of platforms it runs on is very impressive indeed.
Of course one of Unity’s big selling points is there static drag and drop world designer, that I have no intention of ever using, which seems a little pointless but most of my ideas for games revolve around highly dynamic game worlds.
SmartFoxServer costs a bit too $2,000 for the version I might end up needing, though again I can get away with their free version for the majority of the development process, and a cheaper version while I am just dipping my toes in the water.
Part of me is sitting here thinking, “well this is all just too easy… where is the fun in this…” and there are still questions to answer, but for Asteroid Wars this particular technology stack seems to fit perfectly, so far from what I can tell.
I do like Project-Darkstar and even the thought of doing it myself (again), as I have invested a stupendafying amount of time in learning everything needed for writing an MMO engine, scalable networking, threads, sockets, delta’s and bit packing, server nodes, collision detection, persistence, various Spatial Data Structures, etc.
I even bought this book and this one while writing some of the code for my MMO Server, and I don’t normally do books.
I have written and maintain a multi-threaded server at work that has to connect to lots of different pieces of hardware using lots of different protocols, so I am used to dealing with raw sockets.
But it does seem to integrate into the rest of my chosen tech stack far too well and be far to easy to use to just ignore. And after playing around with it all for a bit and getting some good results very quickly, I have a good feeling about the whole thing.
The Idea of using cloud technology for an MMO server as interested me since I went to a Windows Azures Seminar in Reading, for now EC2 seems the better choice though I like some of MS’s ideas for Azures.
Using the cloud will mean that even though the base point for a single server is more expensive, it’s easy to swell the number of CPUs/server nodes in the cluster very quickly in the event that more resources are needed, and equally just hold them for an hour or so and drop them if it is no longer needed. I am hoping that SmartFoxServer’s clustering has dynamic allocation and deallocation as that was one of the things I was building into my design that would allow this to work brilliantly.
So yeah I think, unless I bump into some large unforeseen issue, I have made my choice in what technology to write this with. And this weekend I want to start producing a very basic physics based flight model running in sync on two or more clients, if it can do that then I am sorted.
Considering the large range of platforms and the number of other technology’s that can be used alongside it and integrated into it with ease, I think Unity really does live up to its name.
I have been thinking more seriously about developing one of my ideas for a game.
I was thinking I might be able to kill two birds with one stone as it were…
I came across a game development framework called Unity about a year ago and dismissed it as being too much of a game creator type product that only let you drag, drop and script… but It does let you develop for a large range of platforms Windows, Mac, Wii, Xbox360, iPhone, iPad, Android, PS3 and can be run though a Web Browser.
And it will let you script using C# or Java so I have been taking another look at it recently. I have to say I love the idea of creating a game where you only have to download 3mb + the data for the initial scene and then stream the rest of the game world data in as needed (when the player moves about).
But I need to play around with it some more, to see what it can do and what the limitations are, as always I suspect it is fine for your standard small static levels, but my ideas are rarely that constrained.
One problem I faced last time is that if you are using a float or even a double to store your vector information, at some point you will start to loose fidelity. If I want to model small objects such as missiles and buildings on the surface of an asteroid, and then want to be able to zoom out to an overview of the whole solar system all the time keeping things to scale in one fluid motion, then I will run out of digits of precision.
A 32bit float will only store 7 digits of precision and the aphelion of Neptune (sorry Pluto) is about 4,546,000,000 km so unless the smallest unit we wanted to deal with was 1000km (which would make for a very long missile) then these distances won’t fit into a float.
Also just fitting everything on screen does not work either, if we take the camera out to a distance that can see the whole solar system you would only see the sun, and even out at the distance of Saturn the sun is so small that it would just look like any other star in the sky.
Last time I went to a lot of trouble to fake all this up, having different bands radiating away from the camera view where I would bring objects closer but scale down their size proportionally.
This time I am going to ignore the side of me that wants to keep to working with real scales and true orbits and go with something that will look alot more like the spores universe and solar system views.

And only apply physics to objects smaller than the asteroids.
But what I would love to achieve with this game is a true multi-player, multi-platform real time strategy 4X game. Where you can log in from your iPhone and check up on your empire, issue some new commands and then log off and leave your units to get on with things.
Just like VGA Plannets, you would be able to view re-plays or reports of any events you where not on-line to personally witness.
But first things first I think I will try to create a tech demo of a deformable asteroid that you can place blocks on (representing buildings) and space ships that can navigate around the asteroid and shoot at each other using real physics. On a micro scale a battle around an asteroid would be a bit like a 3D version of spacewar.
The player would not have to worry about the physics behind it all, they would just issue movement, patrol or attack orders, set up trade routes etc and watch the ships carry those out using real physics.
If anyone has any experience with Unity or just C#/Java or 3D modelling in general and feels like helping, once again, just get in touch with me, It’s always better to work on these things with a group of people.
One of the other ideas for a game that has been milling around in my head for a very long time is Asteroid Wars. The basic concept is that large mining and production corporations are just becoming autonomous and akin to mini nation states with many self sustaining colony’s and have recently started warring each other like the tribes of old.
Basically its a long winded multiplayer RTS that can take weeks to play out. The idea mainly comes from things like VGA Planets and Carrier command, but I am also aware of games like ‘Time of Defiance’ but this would be my take on it.
I have twice written the whole framework for this and even constructed a full scale solar-system with multiple asteroid belts and spent ages creating a seamless scaling camera view, so you could be building things on the surface of an asteroid one moment and then zoom out to see the whole of the solar system the next in one fluid motion.
But as always I get bogged down in detail, I spent ages learning the physics behind orbital motion and the whole solar system became a full scale simulation that was really unnecessary.
If it do attempt this again I really need to just concentrate on a small section of a single asteroid belt and have everything static (like a standard rts map but in 3D) Just a few thousand asteroids.
But I still want to go with the idea of procedurally generating everything, including the individual asteroids mesh/shape so they are unique and deformable.
The main building view would be like the planet view on spore, you are tethered to the asteroid and can spin it around in full 3D, placing building sites anywhere on the surface. And in a way the buildings and population centres would ideally play out a bit like an ‘Anno’ game, in terms of keeping your colonists happy and providing them with the things they need whilst either trading or making war with your neighbours.
I really like the Wing commander or Battlestar Galactica style of space combat Basically WWII carriers and battleships but in space.
But I also like the idea of keeping with real physics and projecting current tech into future tech and imagining what it could be like, where the quickest way of getting somewhere would be to accelerate up-to the halfway point and then de-accelerate again to come to a stop at your destination. Just like the combat in Elite.