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).
Saturday, October 25, 2008
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).
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).
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
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
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
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
- 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
- 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
- for less garbage
- based on point sprites from CC sample
- in early stage