Monday, November 3, 2008

Terrain - "after war" texture set.

I updated "after war" texture set, transition from one texture to another is much smoother and terrain appears to have much more detail. Also some dry trees were added.

Terrain - meadow texture set

Few screenshots I have found on my HDD, sample of "meadow" texture set in MG Engine.

New building - AT Gun

AT gun (anti-tank) is a great defense structure which can do serious damage to all ground units within its medium range. It is heavily armored and is usually in first line of defense. Its defenseless against long-range units and aerial attacks.

Saturday, October 25, 2008

Screenshots from latest build

Few screenshots from lastest MoonGate build. Rather low framerate is cause by my (old) graphic card in laptop - GF Go 7300 was certainly not designed for game development :) Xbox 360 version runs at about 120 FPS with antialiasing on 1067x600 (without particle effects and without post-screen shaders).

Two MG videos - core functionality and editor

Next two videos show most basic MoonGate functionality. Videos are not showing latest build, they are over month old - no new units, no particles, no post-process efects. Actually whole "look & feel" will be changed.

First video shows some basic commands, unit movement, artillery turret attack and attack on aerial target. Second shows first functions of game editor that are implemented - terrain painting and object placement & manipulation.

EDIT : Same videos in better quality are here (~20 MB).

Terrain accessibility test

Here is a result of an accessibility algorithm test. This algorithm tells A* pathfinder which parts of terrain are inaccessible to ground units - these areas are marked with red triangles. This screenshot is from early version of engine (March 2008).

MoonGate units - 3D studio shot - MLRS

This unit looks (or at least should look) like near-future version of MLRS. It is a long-range weapon which fires ballistic projectiles (small rockets). It is slow, lightly armored but has long range and projectiles are very devastating in large area. It is typical second-line support unit that needs to be protected.

Triangles: 356  Polygons: 222

MoonGate units - 3D studio shot - M1A1

M1A1 tank is heavy class unit. It's only disadvantage is speed. M1A1 has very thick armor and very powerful main gun. His main enemy therefore is artillery. It is a unit of choice when attacking enemy base.

Triangles: 538  Polygons: 284

MoonGate units - 3D studio shot - Bradley

Bradley is all-purpose battle unit. Does not excell in any category but also does not fail in any. It is very useful again light and medium armored targets. Acts as a basic attac unit.

Triangles: 338  Polygons: 180

MoonGate units - 3D studio shot - APC

This APC is typical reconnaissance unit with high speed, large sight range but weak armor and gun that is useful only against light armored enemies.

Triangles: 806  Polygons: 655

MoonGate blog goes ( finally ) online

After several months of developing I finally decided to create small blog about MoonGate - my 3D RTS engine based on XNA. XNA looked very promising to me and after reading book Professional XNA Game Programming by Benjamin Nitschke I decided that this will be my Master Thesis topic - exact name of topic is "Application development for Xbox 360" (still working title). There were not many starter kits back then (one and something year ago), and let's face the truth - there are still not many today. 

So I decided to learn more about XNA and shaders and improve my 3d modeling and texturing skills :). I am working on this project alone so time available for MG has to be divided among coding, modeling, texturing, designing and learning. 

I began coding in february 2008 and things implemented so far are :

- based on Quad-Tree
- supports texture blending
- supports bump mapping
- Quad Tree acts as a scenegraph for enviro. objects

- collision with terrain
- A* pathfinding 
- Bezier Curves for (usually :) ) smooth movement
- have line of sight
- different attributes (sight range, movement speed, turn speed,...)

Custom system for animations
- units have bones and assigned animation controllers that animate these bones
- animation controllers can be either parts of buildings (heavy factory has doors that are opening and closing) or weapons
- if a.c. is weapon units search for enemies in their range and attack them if possible

- divided into several categories : straight shooting (main gun on tank, AA gun), ballistic (artillery), explosives (mines)
- each category may have bullets with different parameters (speed, 3D model, damage, area in which bullet makes damage)
- weapons and bullets can only attack certain types of units (e.g. AA gun will not lock on tanks, APC,...)
- after unit is destroyed debris is displayed and slowly disappears

- platform specific - on PC mouse + keyboard, on Xbox C&C-like "crosshair-in-the-middle" movement + gamepad buttons for orders
- units respond to attack and movement commands
- units have waypoints

Environmental objects
- cannot be destroyed
- units avoid them

- units can trigger events (e.g. after they enter certain area)
- timers for events are supported
- M:N relationship between triggers and events

- in early stage :)
- minimap in left lower corner
- if 1 unit is selected detailed unit info is shown
- if several units are selected only name + health is shown
- few basic gui objects in editor - button, text label, panel, image displayer

Level editor
- only on PC
- terrain painting (4 different textures are supported)
- environment objects can be places, moved, removed, rotated
- XML serialization for terrain vertex colors and e.o. positions and rotations

Resource pooling
- for less garbage

Particle Effects
- based on point sprites from CC sample

Postprocess effects
- in early stage