Alpha testing is a go.. time to step back
by Bryce "Cogburn" Weiner · 03/11/2007 (11:50 pm) · 3 comments
I tend not to update my .plan as much as I do my blogginess on the Versus site. I'm not one for blogging, but reaching a milestone is one of those things that you should trumpet to the world.
After almost 2 years of design and development, Versus: Galaxy At War had it's first closed alpha playtest. Of course, here's the obligatory screenshot.

Yeah... That's Kork. So it's not much... but there's not much there at the moment. We're going for a unique, unified look, and for a bunch of amateurs it's proving quite a challenge. Most of our assets are still paper concepts since we would have trashed any models we'd have made 8 times over already.
So what the hell have we been doing for 20 months? Well, that takes some explanation.
Versus was never intended as "just" a video game. It was to be the online entry point to a multimedia franchise, encompassing miniatures, pen-and-paper, "combat" card games and paperback fiction. With the exception of the W40k franchise and sparse others, "offline" franchises rarely make a successful transition to the online world. We decided to start with the online design, and go offline. Foremost amongst our design caveats was "Make no rule or game dynamic that isn't 100% portable". This means everything from character footspeed to terrain types to urban design must be harmonized between at least 3 products within the franchise scheme. While some rules will vary based on media, it will always be fundamentally the same game, and the skills and tactics acquired within one aspect of the franchise will translate at least in part to another.
Beyond the game dynamic requirements, we also required a deep, rich fiction to encompass our universe. All too often the "why we fight" of MMOFPS is utterly lost and a valuable avenue for subscriber retention and new content introduction is lost. Again, we took the problem from the opposite end and design 3 varied cultures with opposing, yet morally neutral, social outlooks. "Good guys" and "bad guys" only depend on where it is you're standing. So what does that mean? I'm a coder at heart, so I like numbers. Here's some numbers.
* 3 factions, each with 6 individual sub-factions
* Each faction contains holdings of at least 80 planets, each plotted on a galaxtic X,Y coordinate system
* Each planet is connected to 3 other planets via transit paths
* 10,000 + non-inhabited worlds in 20 classifications
* Population, religion, ethnicity, economic and language breakdown for each faction and sub-faction in CIA Factbook style
We call it... the Circinus Galaxy Military Atlas.

We'll be releasing the atlas in PDF form in 3 parts over the next 3 months. This has some faction and sub-faction backgrounds, but contains mostly technical information and standard conventions used within the Versus universe. Each faction will have their own sourcebook which outlines their history and society in great detail.
Now all that being said, it's notable that there were quite extensive changes required to TGEA in order to get even this far. The advanced data processing required by the project made TorqueScript on its own an impossibility. After a few discussions on the forums, I took the plunge and began converting the project over to a Python backbone. I'm firmly convinced that TorqueScript should be phased out in favor of a Python interpreter. The benefits are enormous and integration is simple for a semi-accomplished hack. Using TGEPython and the PyTorque outline, I've begun work on "rewrapping" Torque within a Python application. I've made it a separate code branch from the Versus project, but I am fully planning on merging them back together at some point. The going has been slow "pythonizing" Torque, but I just may get it done before Prairie Games sells their version. *ahem* :)
That's a pretty good segway into the technology that runs Versus. All backend processing is performed by a Python master server (lovingly named "Borg") that controls account mangement, versioning, and character status. Map servers report character position (under various conditions), status and statistics every minute to Borg. Borg spawns a child process to handle incoming data from each map server that attaches to it, and then reintegrates the data for storage and web exposure. Right now Borg lives on a quad core PowerEdge server, so he's got plenty of room to grow as we expand our alpha development. The process spawn technique was inspired by the system that handles memory management for SOE's PlanetSide. But Python with a Twisted framework is just that much better equipped for it. :)
What changes have we made to TGEA beyond Python? Most are takeoffs on resources that can be found here. Some I plan on releasing as resources once a few more hitches are ironed out of the TGEA codebase.
* Integrated shaders within ResourceManager
* Custom asset protection packaging (password encrypted LZW derivative)
* SDL MPEG stream support
* Relief map shader that utilizes fog and lightmaps properly (taxing, but oh so cool)
* Full screen properly simulated FLIR shader effect
* GuiCommanderHud that displays "bad chunk" Atlas2 terrains properly.
* TGEA-corrected beam lasers, soon to have shader support
* Experimental "WorldZone" anti-portals
* Audio improvements including Doppler effects and proper distance attenuation
* Shader-based dynamic texture masks
* Web based file versioning and patching
While each of the pieces are working, it's been a Herculean effort to integrate them into a contiguous whole. Any time you ever hear anyone say "Plan your project first" is someone that knows their sh*t. I simply cannot imagine the amount of time that we saved in not touching a single line of code until at least 75% of the game dynamics were carved in stone. It gave us the ability to toy with TSE and watch it grow into TGEA, a product worthy of our project.
So there it is. The sum total of 3 failed previous projects and 4 years of experimentation with the Torque engine. I started out with TGE 1.2 or so, and damn little C++ knowledge.
Hopefully 4 years from now Versus will be all that we've designed it to be, and I'll be giving speeches at GDC about how to succeed in the indie games industry with a good team, lots of planning and dedication... and a very forgiving wife. :)
After almost 2 years of design and development, Versus: Galaxy At War had it's first closed alpha playtest. Of course, here's the obligatory screenshot.

Yeah... That's Kork. So it's not much... but there's not much there at the moment. We're going for a unique, unified look, and for a bunch of amateurs it's proving quite a challenge. Most of our assets are still paper concepts since we would have trashed any models we'd have made 8 times over already.
So what the hell have we been doing for 20 months? Well, that takes some explanation.
Versus was never intended as "just" a video game. It was to be the online entry point to a multimedia franchise, encompassing miniatures, pen-and-paper, "combat" card games and paperback fiction. With the exception of the W40k franchise and sparse others, "offline" franchises rarely make a successful transition to the online world. We decided to start with the online design, and go offline. Foremost amongst our design caveats was "Make no rule or game dynamic that isn't 100% portable". This means everything from character footspeed to terrain types to urban design must be harmonized between at least 3 products within the franchise scheme. While some rules will vary based on media, it will always be fundamentally the same game, and the skills and tactics acquired within one aspect of the franchise will translate at least in part to another.
Beyond the game dynamic requirements, we also required a deep, rich fiction to encompass our universe. All too often the "why we fight" of MMOFPS is utterly lost and a valuable avenue for subscriber retention and new content introduction is lost. Again, we took the problem from the opposite end and design 3 varied cultures with opposing, yet morally neutral, social outlooks. "Good guys" and "bad guys" only depend on where it is you're standing. So what does that mean? I'm a coder at heart, so I like numbers. Here's some numbers.
* 3 factions, each with 6 individual sub-factions
* Each faction contains holdings of at least 80 planets, each plotted on a galaxtic X,Y coordinate system
* Each planet is connected to 3 other planets via transit paths
* 10,000 + non-inhabited worlds in 20 classifications
* Population, religion, ethnicity, economic and language breakdown for each faction and sub-faction in CIA Factbook style
We call it... the Circinus Galaxy Military Atlas.

We'll be releasing the atlas in PDF form in 3 parts over the next 3 months. This has some faction and sub-faction backgrounds, but contains mostly technical information and standard conventions used within the Versus universe. Each faction will have their own sourcebook which outlines their history and society in great detail.
Now all that being said, it's notable that there were quite extensive changes required to TGEA in order to get even this far. The advanced data processing required by the project made TorqueScript on its own an impossibility. After a few discussions on the forums, I took the plunge and began converting the project over to a Python backbone. I'm firmly convinced that TorqueScript should be phased out in favor of a Python interpreter. The benefits are enormous and integration is simple for a semi-accomplished hack. Using TGEPython and the PyTorque outline, I've begun work on "rewrapping" Torque within a Python application. I've made it a separate code branch from the Versus project, but I am fully planning on merging them back together at some point. The going has been slow "pythonizing" Torque, but I just may get it done before Prairie Games sells their version. *ahem* :)
That's a pretty good segway into the technology that runs Versus. All backend processing is performed by a Python master server (lovingly named "Borg") that controls account mangement, versioning, and character status. Map servers report character position (under various conditions), status and statistics every minute to Borg. Borg spawns a child process to handle incoming data from each map server that attaches to it, and then reintegrates the data for storage and web exposure. Right now Borg lives on a quad core PowerEdge server, so he's got plenty of room to grow as we expand our alpha development. The process spawn technique was inspired by the system that handles memory management for SOE's PlanetSide. But Python with a Twisted framework is just that much better equipped for it. :)
What changes have we made to TGEA beyond Python? Most are takeoffs on resources that can be found here. Some I plan on releasing as resources once a few more hitches are ironed out of the TGEA codebase.
* Integrated shaders within ResourceManager
* Custom asset protection packaging (password encrypted LZW derivative)
* SDL MPEG stream support
* Relief map shader that utilizes fog and lightmaps properly (taxing, but oh so cool)
* Full screen properly simulated FLIR shader effect
* GuiCommanderHud that displays "bad chunk" Atlas2 terrains properly.
* TGEA-corrected beam lasers, soon to have shader support
* Experimental "WorldZone" anti-portals
* Audio improvements including Doppler effects and proper distance attenuation
* Shader-based dynamic texture masks
* Web based file versioning and patching
While each of the pieces are working, it's been a Herculean effort to integrate them into a contiguous whole. Any time you ever hear anyone say "Plan your project first" is someone that knows their sh*t. I simply cannot imagine the amount of time that we saved in not touching a single line of code until at least 75% of the game dynamics were carved in stone. It gave us the ability to toy with TSE and watch it grow into TGEA, a product worthy of our project.
So there it is. The sum total of 3 failed previous projects and 4 years of experimentation with the Torque engine. I started out with TGE 1.2 or so, and damn little C++ knowledge.
Hopefully 4 years from now Versus will be all that we've designed it to be, and I'll be giving speeches at GDC about how to succeed in the indie games industry with a good team, lots of planning and dedication... and a very forgiving wife. :)
#2
Those were the good days... when you can get away with being a noob. All the playing is over, and things start to get serious, because you realise how much there is to do.
Good luck to you and your team!
03/12/2007 (7:56 am)
This sounds awesome. I esp like the screenshot! Quote:...4 years of experimentation with the Torque engine. I started out with TGE 1.2 or so, and damn little C++ knowledge.
Those were the good days... when you can get away with being a noob. All the playing is over, and things start to get serious, because you realise how much there is to do.
Good luck to you and your team!
#3
Very interesting blog to read. Some concepts in the design and goals that are similar to my own.
This game seems to have a very serious and strong backbone.
I would be very interested in seeing what has been done so far.
Best wishes for the next milestone.
03/12/2007 (1:39 pm)
... speech less...Very interesting blog to read. Some concepts in the design and goals that are similar to my own.
This game seems to have a very serious and strong backbone.
I would be very interested in seeing what has been done so far.
Best wishes for the next milestone.
Torque Owner Ishbuu
Keep up the good work.