RTS engine
by William Finlayson · in Game Design and Creative Issues · 05/01/2001 (3:20 pm) · 10 replies
It's not really a game, but it is in the design stage.
What kind of features would you think as essential in an RTS engine. Graphics, Sound, Networking etc.
So far I've come up with this for the engine:-
Graphics:
-16 bit colour
-alpha blending
-uses DirectDraw, or D3D
-Split-screen play
-isometric tile system
-animated sprites
-menu system
Sound:
-8/16 bit wavs
-MP3's and MIDI for music
Input:
-1 or 2 mice
-keyboard
Networking:
-LAN games
-internet play
Scipting:
-simple scripting of whole engine
I am in the process of making this RTS engine, and so far I am in the process of implementing the above. If anyone can think of features they would think of as essential, or useful in an RTS game, then please share them with me.
This is the first (realistic) project that I am doing at GG. I hope to complete it and let others with little programming experience at GG use it for creating RTS's.
What kind of features would you think as essential in an RTS engine. Graphics, Sound, Networking etc.
So far I've come up with this for the engine:-
Graphics:
-16 bit colour
-alpha blending
-uses DirectDraw, or D3D
-Split-screen play
-isometric tile system
-animated sprites
-menu system
Sound:
-8/16 bit wavs
-MP3's and MIDI for music
Input:
-1 or 2 mice
-keyboard
Networking:
-LAN games
-internet play
Scipting:
-simple scripting of whole engine
I am in the process of making this RTS engine, and so far I am in the process of implementing the above. If anyone can think of features they would think of as essential, or useful in an RTS game, then please share them with me.
This is the first (realistic) project that I am doing at GG. I hope to complete it and let others with little programming experience at GG use it for creating RTS's.
About the author
#2
I figured this would be good to make, because it's nice and focused, not like a generic game engine or anything. And also I figure that a lot of the components will be reusable for my next, bigger project.
One thing I forgot in graphics:
-Text display (just for displaying messages, info etc in the game. Simple graphical fonts system)
05/01/2001 (3:35 pm)
Yeah thanks for that, I totally forgot about built-in unit and interface AI, doh! There will be a seperate script handler for enemy AI's with in-game functions like build(X), move unit(M) to (P).I figured this would be good to make, because it's nice and focused, not like a generic game engine or anything. And also I figure that a lot of the components will be reusable for my next, bigger project.
One thing I forgot in graphics:
-Text display (just for displaying messages, info etc in the game. Simple graphical fonts system)
#3
The first version would be strictly 2D, obviously you could use 3D looking tiles, and set barriers and things. It wouldn't be totally flat. If anybody likes it then in the next version I would consider attempting 3D terrain, maybe deformable.
05/01/2001 (4:32 pm)
I was thinking of having an option for dynamic lighting. It wouldn't be too hard to implement, but it depends if anyone would use it.The first version would be strictly 2D, obviously you could use 3D looking tiles, and set barriers and things. It wouldn't be totally flat. If anybody likes it then in the next version I would consider attempting 3D terrain, maybe deformable.
#4
Even if it's just a .txt interpreter. Say, a text file holds a 60x60 tile area consisting of normal text characters. Every character would represent a different tile. Example:
****t*****
*@****T***
**********
**t***t*@*
****T*****
Where
* = grass
@ = base start
T = big tree
t = small tree
The actual character maps and art are of course the responisibility of the game designers. You might also want another input file that connects the characters with specific image files for the tiles. (i.e. t=tree.tga T=btree.tga *=grass.tga)
05/03/2001 (12:49 am)
Don't forget tools!Even if it's just a .txt interpreter. Say, a text file holds a 60x60 tile area consisting of normal text characters. Every character would represent a different tile. Example:
****t*****
*@****T***
**********
**t***t*@*
****T*****
Where
* = grass
@ = base start
T = big tree
t = small tree
The actual character maps and art are of course the responisibility of the game designers. You might also want another input file that connects the characters with specific image files for the tiles. (i.e. t=tree.tga T=btree.tga *=grass.tga)
#5
The map will be composed of not only the tiles, but objects on the tiles. The tiling is used just for the graphics, it's not going to be a grid system - one unit/tree a square. Instead it's per-pixel placement.
There is going to be:
-A tile editor, with the inclusion of animated tiles.
-An object editor - trees/rocks etc.
-A map editor - placing tiles, objects, and special flags (start positions, resources). As no resources/map tags will be hard-coded. The editor will be editable, to add diferent flags.
-An unit/building editor. For making the sprites, and their animations.
-A script editor for writing scripts. Minimum features in that would be a debugger.
It will be up to the user on what tile-size they use. The engine will handle isometric/top-down views using rectangular tiles. If you want an isometric perspective, then just draw isometric images onto to tiles. There will be help wiht this in the tile and unit/buildings editors, by supplying guide lines for isometric images. User's can specify the perspective for the guide lines.
I have added support for automatiallt choosing the best graphics card on your machine, and setting the highest refresh rate for it.
D3D support is almost finished using DX8. DDraw support is under-way with DX7. Input supports keyboard and mouse right now, but support for a second mouse needs to be added (split-screen). I'll have to get started with the network code at some point. I would like to be able to support split-screen networking - 2 player's per computer while networked. That would mean that 4 players could play using just a null-modem cable.
05/03/2001 (12:31 pm)
Don't worry, I haven't forgoten the tools.The map will be composed of not only the tiles, but objects on the tiles. The tiling is used just for the graphics, it's not going to be a grid system - one unit/tree a square. Instead it's per-pixel placement.
There is going to be:
-A tile editor, with the inclusion of animated tiles.
-An object editor - trees/rocks etc.
-A map editor - placing tiles, objects, and special flags (start positions, resources). As no resources/map tags will be hard-coded. The editor will be editable, to add diferent flags.
-An unit/building editor. For making the sprites, and their animations.
-A script editor for writing scripts. Minimum features in that would be a debugger.
It will be up to the user on what tile-size they use. The engine will handle isometric/top-down views using rectangular tiles. If you want an isometric perspective, then just draw isometric images onto to tiles. There will be help wiht this in the tile and unit/buildings editors, by supplying guide lines for isometric images. User's can specify the perspective for the guide lines.
I have added support for automatiallt choosing the best graphics card on your machine, and setting the highest refresh rate for it.
D3D support is almost finished using DX8. DDraw support is under-way with DX7. Input supports keyboard and mouse right now, but support for a second mouse needs to be added (split-screen). I'll have to get started with the network code at some point. I would like to be able to support split-screen networking - 2 player's per computer while networked. That would mean that 4 players could play using just a null-modem cable.
#6
I was thinking that as this engine is going to be highly configurable, It could also be used for other kind of strategy games.
Using the tiling engine, a campaign map could be made, used for controlling forces, looking after cities and things. Another view could be used for conflicts. It would be easy to make overlay windows for information, and make sidebars, as different viewports can be assigned for drawing in the engine. Quite an in-depth strategy game could be made.
I was thought of this after I had a look at cliffhangergames, a strategy game of the sort I'm describing could be split into campaigns, making it ideal for sale at cliffhangergames.
Anyway, on with the coding...
05/03/2001 (3:50 pm)
There don't seem to be that many people interested in this thread, so this post is more for mu benefit then anything else :)I was thinking that as this engine is going to be highly configurable, It could also be used for other kind of strategy games.
Using the tiling engine, a campaign map could be made, used for controlling forces, looking after cities and things. Another view could be used for conflicts. It would be easy to make overlay windows for information, and make sidebars, as different viewports can be assigned for drawing in the engine. Quite an in-depth strategy game could be made.
I was thought of this after I had a look at cliffhangergames, a strategy game of the sort I'm describing could be split into campaigns, making it ideal for sale at cliffhangergames.
Anyway, on with the coding...
#7
what you have posted so far tells me exactly NOTHING about your game or why i would want to invest in it. what you are describing is a list of potential features for a rts engine.
granted, if selling an engine is what you are hoping to do, then great, however there are enough companies out there today attempting to do the very same thing without much if any success at all. You need a successful GAME before the engine becomes interesting to anyone else at all.
You can have the worst engine as long as the game is fun, and people will still build mods/add-ons and so on...
you should work on the gameplay/game balance/story side of things WAY before you even decide what kind of engine would suit your purposes.
I wouldn't even decide as far as 2d-versus-3d until you can justify that the game even required the years of extra effort for the move to 3d.
05/03/2001 (4:43 pm)
i think that too many indie developers get stuck in the 'feature list' side of game design.what you have posted so far tells me exactly NOTHING about your game or why i would want to invest in it. what you are describing is a list of potential features for a rts engine.
granted, if selling an engine is what you are hoping to do, then great, however there are enough companies out there today attempting to do the very same thing without much if any success at all. You need a successful GAME before the engine becomes interesting to anyone else at all.
You can have the worst engine as long as the game is fun, and people will still build mods/add-ons and so on...
you should work on the gameplay/game balance/story side of things WAY before you even decide what kind of engine would suit your purposes.
I wouldn't even decide as far as 2d-versus-3d until you can justify that the game even required the years of extra effort for the move to 3d.
#8
I had thought this a very feasible project for me, as I work alone, with no artists etc. An engine requires no content other then the programming to make it work - ideal for me. I am doing this more for experience then anything else, and also, I hope that the engine could be useful to some developers at GG. It will be designed to be as easy to use as possible, with hopefully no coding involved. Ideal for a game developer who knows little programming. Also, it will be VERY cheap if it costs at all - great if you are a new developer, looking to make a simple game, without spending ages programming, and withough spending a fortune.
05/03/2001 (5:35 pm)
This project is only to make an RTS engine - no game as of yet.I had thought this a very feasible project for me, as I work alone, with no artists etc. An engine requires no content other then the programming to make it work - ideal for me. I am doing this more for experience then anything else, and also, I hope that the engine could be useful to some developers at GG. It will be designed to be as easy to use as possible, with hopefully no coding involved. Ideal for a game developer who knows little programming. Also, it will be VERY cheap if it costs at all - great if you are a new developer, looking to make a simple game, without spending ages programming, and withough spending a fortune.
#9
I currently have problems working with 3-D on my computer, and programming just isn't my specialty. If you make sure that the options are out in the open like you've said, then a very good project is what you have there!
Using the term RTS Designer Engine would get the object across better, but I understood you from the start, and you have some great ideas for it.
On the subject of distribution, I would personaly say to keep it freeware, as long as you were mentioned in the design of the game, and then the option of getting some cash sent to you for helping them. Of course, selling art/sound/etc. for use with it could be a nice way to get some cash also, as long as it's not manditory. Then, since everyone is into this, when you make it with 3-D, then you could sell it to those who value your efforts.
The way I see it, if I made a game that sells, and someone helped me make it possible, they would get not only paid for helping make it possible, but also I would be waiting to buy their next product, all out of appreciation. Not to mention, your product gets advertised in the game itself and people will check it out!
Keep up the great work, and let me know how it's coming along! If you want any game design ideas, let me know!
See ya'!
05/07/2001 (11:07 pm)
I'll say it sounds very interesting to me.I currently have problems working with 3-D on my computer, and programming just isn't my specialty. If you make sure that the options are out in the open like you've said, then a very good project is what you have there!
Using the term RTS Designer Engine would get the object across better, but I understood you from the start, and you have some great ideas for it.
On the subject of distribution, I would personaly say to keep it freeware, as long as you were mentioned in the design of the game, and then the option of getting some cash sent to you for helping them. Of course, selling art/sound/etc. for use with it could be a nice way to get some cash also, as long as it's not manditory. Then, since everyone is into this, when you make it with 3-D, then you could sell it to those who value your efforts.
The way I see it, if I made a game that sells, and someone helped me make it possible, they would get not only paid for helping make it possible, but also I would be waiting to buy their next product, all out of appreciation. Not to mention, your product gets advertised in the game itself and people will check it out!
Keep up the great work, and let me know how it's coming along! If you want any game design ideas, let me know!
See ya'!
Torque Owner Luc Jordan
Well, I don't have anything to add graphics-wise, but you should add a bunch of basic AI pathfinding functions, etc. For RTS games, where the number of units is very high, scripting those kind of low-level functions is obviously not feasible.
With those basic pathfinding features in the engine, the game designers can implement them as best they see fit.