Home & News

Discussion Board

Conceptual Overview

CVS & Project Page

Screenshots

Downloads

Contact

[ leiavoia.net ]
PROJECT COMPLETION:
36%
CURRENT VERSION:
v0.2 "Switchboard"

NEXT VERSION:
v0.3 "Zombie"
[due ~September 2004]


DESIGN DOCUMENTATION

"Skinability" & Mod Potential

The Basic Concept

AXIS has a good artistic concept already IMHO. However, it isn't going to please everyone and there are those that would like to change the game for one reason or another. The biggest quick-hack for AXIS is its user interface. There is no reason why the AXIS UI can't be mostly, if not completely, skinable.

However, it could be even better. Imagine this: what if you could mod the entire theme of AXIS? What if, instead of shapes and abstract geometric things, you could have knights and wizards, or dreadnoughts and cruisers? Here is an example:

Let's say we want to convert AXIS into a space theme. The first thing to do is get some appropriate ship graphics for combat, etc. We would replace all the graphic files with space equivelents in combat, cards, pods, and other map images. Then we replace all the map tiles. Empty land becomes empty star filled space. Block-like obstacles become asteroid fields, secondary obstacles like barriers, water, and pits may become star bases, plasma clouds, and nebulas. Now that the map looks appropriate and shapes have been converted to ships ("ship-shape", get it? Nyuck nyuck), the game feels goofy because it still makes references to "opacity" and "spheres" and such. Here is where a new system comes in

UI Templates & Data Hooks

Probably the best way to facilitate all of this theme making is to have a "UI Template" system where each UI screen consults a template file with "hooks" in it for data and graphics. For a screen, the program would pop open the thisUIScreen.cfg (or similaryl named) file which is then parsed and handed to the program. The config file contains info about which files to grab for graphics, which buttons associate which files, X,Y pixel coords on the screen, etc. This way, skinners have an easy way to get the job done. Since graphic GUI skin programming is not my specialty (but you get the concept), i'll talk about data hooks now.

A data hook works like this in a text file example. Take this simple sentence:

In this sentence, the word {HOOK} is replaced by something

Now when we run the program, "{HOOK}" is replaced by whatever we want. There is a seperate config file which can be opened and tells the program what "{HOOK}" is. The config file says "{HOOK}" should be replaced by "hot dog". So when the program is run, the user sees something more like this:

In this sentence, the word hot dog is replaced by something

Let's now take it a step further. In AXIS, everything can be a hook. Shape names, force types, materials, attacks, specials, missions, map obstacles, everything. So in battle, you could talk about AXIS like this in it's unedited form:

Sphere from Pod A attacks Tetra from Pod B with the X2 Attack special. Tetra structural integrity was reduced by 32 and sustained massive damage.

Now from the programs' point of view, that last sentence would have looked like this:

{shapeName2} from {podName} {podNameCounterA} attacks {shapeName5} from {podName} {podNameCounterb} with the {specialAttName7} special. {shapeName5} {hpName} was reduced by 32 and sustained massive damage.

And the config File roughly resembles this:

--------------------------------------------
# AXIS Data Tags Config File

# Shape Names
shapeName1 = 'Cube'
shapeName2 = 'Sphere'
shapeName3 = 'Block'
shapeName4 = 'Pyramid'
shapeName5 = 'Tetra'
shapeName6 = 'Torus'
shapeName7 = 'Amorph'
...etc...

# Specials Names:
...
specialAttName6 = 'Tri-Focus Plasma'
specialAttName7 = 'Steller Converter'
specialAttName8 = 'Photon Torpedo'
...

# Misc tags:
podName = 'fleet'
podNameCounter = 'digital'
hpName = 'hull strength'
...
--------------------------------------------

After the space-mod, the sentence would look like this:

Dreadnought from Fleet 1 attacks Cruiser from Fleet 2 with the Steller Converter special. Cruiser hull strength was reduced by 32 and sustained massive damage.

Open Format

We would like to use open source and easy to edit file types. Config files are just plain text and are about as open is it gets. They make for easy hacking and modding. We would also like to go gung-ho on PNG images, since they offer a variety of benefits: tradable on the web, open source file format, easy to create and edit, lossless compression, 24 bit color depth, full alpha channel transparency (thus can be stacked and layered), and compatability on most image editors including Photoshop, PSP7, and the GIMP. Many 3D rendering programs can export to PNG format automatically with full alpha channel support without having to edit much.

By keeping the graphics simple (but very slick looking), and the files open, modding, theme making, and editing become simple and accessible