Well I had a stern word with myself and told me to update my blog more often. Of course I will likely ignore myself and not post again for another month, but one can try…
Anyway so I decided to go on a walking holiday and walk around the island of Guernsey for a bit of a get-a-way, so here I am in the hotel on my first night sitting in the bar with my netbook out planning each days walk on Goggle maps like a good little geek.
I plan to record the trip on my Vado HD and track my progress on my HTC Desire. And with all the free time I should have (only actually walking about 8 miles a day), I intend to continue writing Asteroid Wars, which I have’t really done any proper work on for about 4 weeks now.
I don’t know if will even manage 8 miles per day mind you, there are so many little nooks and cranny’s to go off and explore and I can waste so much time just wondering off and getting distracted, I love St Peter Port and I love looking in rock pools out on lihou Island etc.
I just spent the last 4 hours (not kidding) writing out a facinating geneological history of the Bennell Family and just as I press post chrome crashes and loses everything. I log back in and Tumblr is like oh I have an unsaved post for you…. but its BLANK!
I have just had someone point out another game (in alpha) of a very similar vain, http://www.picaroonthegame.com/ and it looks cool too. My inspiration is more from the VGA Planets side of things though and I am trying to tackle some of the issues from a slightly different perspective from these guys.
Reading their blog, it’s a company not just a single guy like me and they are going without AI for the units keeping everything simple and directly human controlled.
This half worries me and half makes me exited, they are obviously more experienced at this than me so I hope they are not passing up on AI due to architectural complexity and it really is just a game-play decision, as I plan on heavily relying on AI to aid the player and reduce micro-management. It also gives me a chance to be distinctly different (and hopefully better).
I very much want to build in user customization into both ship construction ala Master of Orion 2 and via an AI rules engine ala Dragon Age (but more advanced)
Also my biggest challenge maybe to see if I can record an instance of gameplay for later playback to create reports ala VGA Planets in order to alleviate the annoyance of logging back on to find your new fleet destroyed, at-least you could watch a playback of the action and see what happened.
We both look to be thinking of using iPhones / Android for a cut down form of playing on the move. (One of the main reasons I like using unity is number of platforms I can deploy on including mobile)
So despite it looking quite similar (though not based in space) I think we are taking the idea in different directions, and for somewhat different audiences.
I have been doing a lot of work recently with the core engine for asteroid wars, at present I have a tech demo that supports 8 clients moving around a map with 100,000 moving objects, each object has a position, rotation, velocity and acceleration. Each client sees for a range of about 2,500 units and has on average 1,000 objects on screen, So far so good, all this runs fairly fast. The server is set to run at 10 ticks/cycles/frames per second and currently 100,000 moving objects and 8 connected clients uses about 25ms per tick, which would be 40 ticks per second if unlimited. It uses about 5KB/s per connection.
Why am I quoting all these numbers at you… well to try and share my optimism that I can get a server up and running that will host up to 100 concurrent connections supporting 200 players over all in the game, each player having an average of say 250 mobile units plus another 600 static units (buildings and such)
Upto 2,000 units on screen at any one time for epic space battles (I can run with 4,000 mobile cubes on-screen at 80fps on my PC).
I am using my own custom socket server written in c# running on mono for the server and the client is using Unity3, again with c# under mono for the scripting.
So, watch this space.
Spent the last 3 nights creating a luna lander type demo game in Unity…
It’s not finished yet but it’s going to be a mars lander game where each level involves you landing near the mars base and delivering something or rescuing base crew… or something like that.
Codename… ‘Loadstone’
Picture is the link - (Note: to restart the game just reload the page)
Controls:
‘Space’ for the main thruster
‘WASD’ for manoeuvring
I want to post some more on the dev process of the game I am writing but there is not much of interest to show and tell about just yet. But I have been watching 24 hour news a lot recently with all the UK election stuff going on and I was reminded how much I like the BBC news in comparison to all the other news channels. Especially their 60 second countdown before a major news broadcast at 6 o’Clock, and 10 o’Clock.
Misrepresentation of the vote
- 23% voted Lib Dem… 9% of the seats are Lib Dem
- 29% voted Labour….. 40% of seats are Labour
- 36% voted Tory……… 47% of the seats are Tory
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 don’t know how many other people will find this amusing but I did.
Simple loop example:
HAI CAN HAS STDIO? I HAS A VAR IM IN YR LOOP UP VAR!!1 VISIBLE VAR IZ VAR BIGGER THAN 10? KTHXBYE IM OUTTA YR LOOPKTHXBYE
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.