Orcs vs. Martians
by Geom · 07/10/2007 (8:11 pm) · 25 comments
It's been a while since I've posted about Orcs vs. Martians, and I've got something exciting nearly working, so I figure it's time for an update.
The past six months I've worked on a little of almost everything in this game - useability, gameplay, replays, the hud, graphics, sound effects, animations, networking, out-of-game guis and dialogs, you name it. Probably, the areas I've put the most effort into are the hud and the guis / menus. Although, sometimes it all seems like a blur :) so I'm not really sure.
In contrast to the other stuff, I've only spent a little time on the AI. I'm really looking forward to getting to that in a bigger way, one of the main reasons I wanted to write an RTS was to try some crazy ideas with the AI.
Some current screenshots.


The thing I'm excited about is, I'm close to allowing selection of different tile sets in the game. I think it's cool to see how different the game looks with different terrain textures; it's a pretty dramatic visual effect. And, I've already tried a few different ones -
here's a tile set consisting mostly of textures that came with the Torque 1.3 SDK. I'm not too crazy about this particular set - it's a bit dark, making it hard to see the units, but still it makes for an interesting variant.


Here's a 3rd tile set, consisting mostly of textures from the RTS environment pack. I thought this one came out looking really good. I need to do a little tweaking though like maybe smoothing out the transition from sand to grass.




So much for tile sets. Another new feature is, you can now order a worker to build multiple buildings. Just hold down SHIFT while placing a building, and you can queue up several of them. Very convenient for building a line of towers, since it lets you divert your attention elsewhere while the things are getthing built.
The queued buildings plans show up in the 3-D view as white, translucent buildings. (the green one is the building "cursor")

Another area I've been putting a lot of effort and thought into is the end-of-game gui. I feel it's important that the player have a satisfying end-of-game experience in an RTS, more so than other types of games. OVM's end-game gui now has quite a few stats and graphs (possibly, too many at this point):

The player can even watch a replay of the game right in this gui, while he's still connected to the server. Since players are still connected, they can watch the replay together and use the chat window while watching it. The replay is is sort of a poor-man's version; it's not a full-blown Torque replay, it just shows an enlarged version of the minimap and dots moving around on it.
Back to Torque-ing around. Charge!!

The past six months I've worked on a little of almost everything in this game - useability, gameplay, replays, the hud, graphics, sound effects, animations, networking, out-of-game guis and dialogs, you name it. Probably, the areas I've put the most effort into are the hud and the guis / menus. Although, sometimes it all seems like a blur :) so I'm not really sure.
In contrast to the other stuff, I've only spent a little time on the AI. I'm really looking forward to getting to that in a bigger way, one of the main reasons I wanted to write an RTS was to try some crazy ideas with the AI.
Some current screenshots.


The thing I'm excited about is, I'm close to allowing selection of different tile sets in the game. I think it's cool to see how different the game looks with different terrain textures; it's a pretty dramatic visual effect. And, I've already tried a few different ones -
here's a tile set consisting mostly of textures that came with the Torque 1.3 SDK. I'm not too crazy about this particular set - it's a bit dark, making it hard to see the units, but still it makes for an interesting variant.


Here's a 3rd tile set, consisting mostly of textures from the RTS environment pack. I thought this one came out looking really good. I need to do a little tweaking though like maybe smoothing out the transition from sand to grass.




So much for tile sets. Another new feature is, you can now order a worker to build multiple buildings. Just hold down SHIFT while placing a building, and you can queue up several of them. Very convenient for building a line of towers, since it lets you divert your attention elsewhere while the things are getthing built.
The queued buildings plans show up in the 3-D view as white, translucent buildings. (the green one is the building "cursor")

Another area I've been putting a lot of effort and thought into is the end-of-game gui. I feel it's important that the player have a satisfying end-of-game experience in an RTS, more so than other types of games. OVM's end-game gui now has quite a few stats and graphs (possibly, too many at this point):

The player can even watch a replay of the game right in this gui, while he's still connected to the server. Since players are still connected, they can watch the replay together and use the chat window while watching it. The replay is is sort of a poor-man's version; it's not a full-blown Torque replay, it just shows an enlarged version of the minimap and dots moving around on it.
Back to Torque-ing around. Charge!!

About the author
My email address is my GG handle, at redbrickgames.com.
Recent Blogs
• Orcs vs. Martians - updated video• Orcs vs. Martians November update
• Milestone!
• The Burninating
• Victory flags
#22
* most of my features are implemented purely in C++, and aren't exposed to TorqueScript, which would be an issue for most people
* I use of STL a lot - difficult to get compiling with Torque
* I've modified the RTSSK extensively so it's difficult to pull out any one feature in isolation - for example, I got rid of the RTSConnection, and instead use the regular NetConnection everywhere
* I've also pretty heavily modded Torque itself like the Point2I, RectI, etc. classes, and my code relies on those mods too
which is all kind of unfortunate because I'd like to share the fog of war and pathfinding features in particular, I think those would be really useful to other RTS developers.
As far as releasing all my RTS features in a big package, that thought has occurred to me too, but it would be a bit of work and I don't want to tackle that til after this project.
10/24/2007 (11:15 pm)
Marcus, I would actually share more of my code if I could. But there are a lot of obstacles because of the way I've implemented things. For instance -* most of my features are implemented purely in C++, and aren't exposed to TorqueScript, which would be an issue for most people
* I use of STL a lot - difficult to get compiling with Torque
* I've modified the RTSSK extensively so it's difficult to pull out any one feature in isolation - for example, I got rid of the RTSConnection, and instead use the regular NetConnection everywhere
* I've also pretty heavily modded Torque itself like the Point2I, RectI, etc. classes, and my code relies on those mods too
which is all kind of unfortunate because I'd like to share the fog of war and pathfinding features in particular, I think those would be really useful to other RTS developers.
As far as releasing all my RTS features in a big package, that thought has occurred to me too, but it would be a bit of work and I don't want to tackle that til after this project.
#23
10/25/2007 (1:31 pm)
BTW - the tab control doesn't have any of those sharing issues. It is really easy to use, so I'm excited about resourcing it. It's not finished yet though.
#24
Is great to see someone that has made such amount of work, to be willing to share it.
Thinking about the pathfinding, I see it would be dificult to just use your code, but maybe you could help us with some clues on implementing Micropather? I was thinking also on Gavin Bunney's Immersive AI which seems to have a good pathfinding solution, but in both cases I dont even look a line of code. If you have some time, could you also take a look at the Immersive AI pathfinding approach and give us an opinion?
And btw, good to know that the tab control is a live project! :)
11/01/2007 (11:45 pm)
Mhh great to know about your sharing spirit Geom :DIs great to see someone that has made such amount of work, to be willing to share it.
Thinking about the pathfinding, I see it would be dificult to just use your code, but maybe you could help us with some clues on implementing Micropather? I was thinking also on Gavin Bunney's Immersive AI which seems to have a good pathfinding solution, but in both cases I dont even look a line of code. If you have some time, could you also take a look at the Immersive AI pathfinding approach and give us an opinion?
And btw, good to know that the tab control is a live project! :)
#25
The Immersive AI project looks intriguing but it wasn't around when I started Orcs vs. Martians, so I didn't take a look at it. If its pathfinding can be pulled out easily, seems like that would definitely be worth a look. Because Immersive probably doesn't have Micropather's STL & performance issues.
11/05/2007 (11:58 am)
I think Micropather is a nice little A* solver, but it uses STL. (there's the STL issue again :[ ) So you'd either need to remove its STL usage or get STL compiling in Torque. Micropather also isn't super-optimized for game usage out-of-the-box, but there are some constants that can be tweaked to get it better.The Immersive AI project looks intriguing but it wasn't around when I started Orcs vs. Martians, so I didn't take a look at it. If its pathfinding can be pulled out easily, seems like that would definitely be worth a look. Because Immersive probably doesn't have Micropather's STL & performance issues.

Torque Owner Marcus Gibson
Have you thought about licensing your code to other TGE RTS developers? You seem to have gone further and been more successful than anyone else running with the RTS Starter Kit. As a newb Indie it would save me 1000s hrs scratch building solutions you've resolved: collision detection, path finding, resource management, AI, FoW, results/replay, tab ctrl, etc.
I'd happily pay at least the original RTS Kit price again for the privilege of seeing more of the code and negotiating use of specific elements. Payment would include license fee, full credit, profit share, and quid pro quo code access.