Do you really wish to Exit the mech?
Navigation

Home

Briefing
Mechs
Articles
Gallery
Fun

Links

Using the Cube Engine to replicate Mechassault & make......

The cube engine is a multiplayer, online cross platform FPS engine that has been around for many years and is probably the pinnacle of Open Source online game development. It is specifically designed for the online multiplayer FPS experience and it has been used in commercial games. The latest, is Saurbraten (Cube 2)  and there are a few major children ( Assault Cube, Eisentein rpg ) of which the slickest is Blood Frontier, a Scifi FPS shooter.

While I was playing Blood Frontier that I suddenly realised that all the basic online game play existed in the engine to do MA 1. The major changes would be the models (player mechs, weapons and effects, destructible terrain/buildings and the of course maps. Cube includes an idiosyncratic, 'on the fly' map editor. it's pretty cool but with a bit of a learning curve. You can even do cooperative editing online. A few tweaks to the engine to accommodate 'mech behavoirs and get some people map making, it would be more than half way there. I had modded the HUD and the game menus in the past, so it mostly came down to models.

I thought I might try a proof of concept. I have a simple Madcat model, not fully animated but it walks, turns and falls over (typical Madcat!) I thought it wouldn't be to hard to import this model into the game.

That was some months ago.

My Misadventures with Models.

I am not very good in the 3rd dimension. I have done a little bit of model making in 3DSMax but never had any facility with it. The player models that come with Cube are Quake/Doom md2, md3 and md5 models. The tool chain that may people use is to import a model from 3DS studio, Maya or similar into Blender, which has import and export scripts for quake models. Won't bore you with the details, but basically I couldn't get the import or export to work, nor could I use any of the tools I had to view the md5 format. End of project.!

NOTE: I have started a Google Code project mech-arcade
Any further progress will be reported there - visit

 

General Comparison between MechAssault 1 and  the Cube Game Engine

I have starred the areas where most work is needed and ranked them according the difficulty. The most important and most difficult is building the mech models and getting them to work properly.
 

  Mechassault 1 Cube (eg Blood fronteir)  
Online team play upto 8 more than 81  
Server Xbox Live Comes with server app, anyone can host. * 2  
Campaign Fixed Can string together levels, can have triggers and events 3  
Graphics DX8 Open GL  
Platforms Xbox only Window, Mac, Linux
(No OpenGL on the 3604)
 
Basic FPS functions (power ups, health5) Some Most5  
POV 3rd 3rd, 1st, Camera  
Destructible terrain yes Yes. using quake models ** 6  
Player Models X models quake 5 models *** 7  
Weapons N/A quake models**8  
Maps ??? create with inbuilt editor **9
?import .obj files
 
Comms Headset/voice Text -  would need teamspeak, xfire or similar to add voice *  
Input Controller Keyb/Mouse - mods available for controllers *  
Customizable No Yes *  
bot team players No Yes  
       
Notes
  1. Out of the box it all seem to work well.
  2. Again it seems to work well, in my one attempt.
  3. The triggers and events can be used to add more complex game play, such as would be needed in a SP Campaign. There are some examples with each Cube flavors.
  4. Do any 360 games use OpenGL? Does it exist at all on the 360? Answer: NO
  5. MA only needs health and weapons, Cube has armor and others.
  6. This would need to be quake models, not sure if md3 or md3 would work or need md5. I have had a lot of problems even viewing md5 models, there seems to be a few flavors. I haven't been able to get Blender to even import the character models.
  7. This is the hardest part of the job. Point 6 is also true for this.
  8. Some thought is needed how to do the weapons. it may be you only need to see the blast/beam/missle rather than the weapon, and just use an indicator in the HUD

  9. Maps are a very big job but unlike the quake models, the tool chain is all there ready to go, just waiting for a few obsessive compulsive personalities to do it. Look through the maps, there are many good maps to learn from.  

Functionality Issues

  The engine offers a bit more than MA uses. What's in and what's out.

  1. POV - ?3rd or 1st or both Probably Both
  2. Jump Jets - will probably need engine and model changes, though it is not impossible the behavior could be scripted
  3. Jumping - the engine does it already. ?turn if off? ?could it be adapted for jump jets
  4. Pilots and Battlearmor - Probably Not
  5. VTOL - Probably Not\
  6. Alpha Strike -  Probably Not\
  7. Reduce weapon types  Probably Yes - see here
  8. Controller mapping
  9. Mech behaviors - try to reproduce all
  10. Balance mechs better - Probably because of forced weapon changes

Engine Mods

I was hopeful of no engine mods, however  other than perhaps peripheral things like radar. There are a number of behavoirs and functions that will probably require engine +/- model changes

1. Weapons
Some changes would be necessary.  The more you could use original models, or rather the projectile & fx the better, as you would probably remove actual weapon models given the mech POV. See here

2. Health pickup after death
The goodies may be able to be managed with the current engine

3. HUD & GUI
Looks like all can be done without engine changes

4 Mech behaviors
The engine would have to Actions: Running, Walking, Flying, Gimped,
Heat management
Damage Fx (impact animation, visual damage cues, gimping)


5. Input
Controller mod does exist, have downloaded

6. Physics
????????


Major Model Changes

1. Damage effects
2. Ragdoll behavior at death, needs explosion
3. Torso rotation
4. Flying
5. Targeting effects (targeting, tracking, null sig, chaff)
6. Invisibility

HUD

1. Radar - should be able to be turned on
2. Graphics/Style

Menu & GUI

1. Layout
2. Graphics/Style


The first draft is here >>>

A more detailed, up to date version of step 1 is here

For weapons see here

First Cut:
I have a cunning plan Sire?

Mission Objective: Reproduce MA1 online game play using the Cube Engine

Step 1 - Proof of concept - 3 months

Get a mech model into current maps, a basic a proof of concept.
Reskin the GUI to make it more mech like, including radar
Set up the 'tool chains' for code, models, maps and graphics

Note 1: Main difference(s) between a MA style mech the current player model:

  • the torso rotation and effects of gait
  • the damage fx and gimping
  • targeting fx (nullsig, chaff)
  • invisibility
  • weapon handling
  • heat management

Note 2: The Mech would be a player not a vehicle b/c the cube engine doesn't do vehicles without modding the source

Start with only a few people, a lead, a modder, map maker, a C coder (if possible, I would be hoping not to mod the engine ) and someone network/server savvy. These would form the basis of the 'teams' as more join

Step 2 - Get the old Mechassault feel - 6 months

Add controller support, test and refine, try to make it like  feel MA1
Develop the mech model into a 'reference mech'

  • 2 actually, one for chicken walkers and one for human style gait
  • Include all base behaviors (walking, running, falling, exploding etc)
  • work out how to do the weapons
  • The teams would start to form:
    • Engine Team
    • Map Making
    • Modelers
    • Network & Testing

Step 3 - Base Game - 12 months

We have 2 reference mechs, and a game that works and feels like MA

1. Develop a few more mechs from the reference designs
2. Work on Weapons - missiles, gauss, PPC,  MG, lasers, hammers
3. Develop a few test good test maps (?replicate some classic MA maps) with some destructible terrain
4. Make all the above work together as best as possible, without significant mods to engine. What's missing?
 Is it a problem with the engine, models or maps. Does it need an engine mod?

 We now have a If OK proceed to 4

Step 4 - Finishing the Basics - 18 months

1. Engine Mods - see below
2. Work on weapons
3. Work on maps inc destructibles
4.
Add voice coms here ( use Xfire or teamspeak)

Test, refine, test etc

 If OK proceed to 5

Step 5 - Alpha release - Around 24 months

Aim at about half a dozen mechs and maps for Alpha.

1. Major test including volume testing
2. Map development would continue
3. Mech development would continue

Step 6 - Post Alpha

1. Fix problem identified in alpha
2. Ideally map and mech development would be finished by the end of this

Step 7 -  Beta release 1.0 Beta

1. Major test including all release maps
2. No new map or model development

Step 8 -  Post release V 1.1

1. Fix problem identified by users
2. Community development groups

Step 9 - Version 1.5

1. Add the good community maps, mods, mechs and models.
2. Fix bugs
3. Develop functional spec for 2.0

  • Persisting world aka MA2 conquest
  • Mission bookings/game scheduling
  • VTOL and other vehicles (significant engine changes)

 


 

By CD Xbow, Metal Commander, House Euphrates