

== Researches

So, what is the point of doing quite amount of researches before into real game developing. Ehr… RTS is a hard topic, especially, thousands of game in this genre got published, with failures and successes. If we want to go beyond “making a game like Starcraft goal, we have to do those long term researches. 


This page consist researches and link I recommend you to read the get the full pictures of the game genre and the techincal challenges and difficuties ahead.

'''


=== Famous RTS game

link:http://guyspeed.com/best-rts-games-ever/[http://guyspeed.com/best-rts-games-ever/]

'''


=== Terrain & Tiling

link:http://world-editor-tutorials.thehelper.net/tilesets.php[http://world-editor-tutorials.thehelper.net/tilesets.php]


link:http://forum.unity3d.com/threads/131862-Terrain-Tile-Editor[http://forum.unity3d.com/threads/131862-Terrain-Tile-Editor]


link:http://nargaque.com/2010/05/01/the-starcraft-ii-map-editor-in-context/[http://nargaque.com/2010/05/01/the-starcraft-ii-map-editor-in-context/]


link:http://www-cs-students.stanford.edu/~amitp/gameprog.html[http://www-cs-students.stanford.edu/~amitp/gameprog.html]


link:http://www-cs-students.stanford.edu/~amitp/game-programming/grids/[http://www-cs-students.stanford.edu/~amitp/game-programming/grids/]


link:http://archive.gamedev.net/archive/reference/programming/features/arttilebase/[http://archive.gamedev.net/archive/reference/programming/features/arttilebase/]


link:http://gamearchitect.net/Articles/StreamingBestiary.html[http://gamearchitect.net/Articles/StreamingBestiary.html]


link:http://geoinformatics.fsv.cvut.cz/gwiki/Modern_Algorithms_for_Real-Time_Terrain_Visualization_on_Commodity_Hardware[http://geoinformatics.fsv.cvut.cz/gwiki/Modern_Algorithms_for_Real-Time_Terrain_Visualization_on_Commodity_Hardware]


link:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.104.7168&rep=rep1&type=pdf[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.104.7168&amp;rep=rep1&amp;type=pdf]


link:http://www.codeproject.com/Articles/106884/Implementing-Auto-tiling-Functionality-in-a-Tile-M[http://www.codeproject.com/Articles/106884/Implementing-Auto-tiling-Functionality-in-a-Tile-M]


link:http://autoloot-games.com/?p=232[http://autoloot-games.com/?p=232]



=== A-like open source projects

There are numbers of open source projects trying to intimate SC BW :


Star craft 1 Bot +++<abbr title="Application Programming Interface">API</abbr>+++:
link:http://code.google.com/p/bwapi/[http://code.google.com/p/bwapi/]


link:http://code.google.com/p/bwapi/wiki/TableOfContents[http://code.google.com/p/bwapi/wiki/TableOfContents]


link:http://code.google.com/p/bwapi/wiki/Academics[http://code.google.com/p/bwapi/wiki/Academics]


Open source RTS
link:https://skatgame.net/mburo/orts/orts.html#Overview[https://skatgame.net/mburo/orts/orts.html#Overview]
Associated papers and researches from ORTS members:
link:http://rtsairesearch.wordpress.com/[http://rtsairesearch.wordpress.com/]


Yet another RTS
link:http://sourceforge.net/projects/yarts/[http://sourceforge.net/projects/yarts/]


MircoRTS


… [ 5 more]


I 've read their source codes for *a few times* to get the idea of making RTS game in two important fields: *AI* and Networks programming. 

'''


=== Gameplay: Core and additional elements


Gameplay element will lead to requirements in AI and other components. Here we look around to review others famous game within RTS genre. The most obvious feature can have recognize a RTS game is number of units and its tech tree.



==== Battle

Battle are most obvious activities of wars and also the distinc of RTS with civilazation game genre which have slow peace and mainly in Economic. War between planets and universe races like in StarCraft or between Countries like in Age of Empires. Battle in each game have its own “style and “form, mainly cause by the theme of the game, the skills of each units, number of them and the enviroments. 


Also we can see this gameplay element will require AI, network system to tightly corporate.



==== Economic

Economic in RTS can be seen as “build order, “tech tree or “resource locating problem, because almost every game have economic just as secondary gameplay to support battle. 



==== Fog of war - Reconnaissance

The lack of full view of the world also need to differences between RTS and board game (chess etc).. as Player don't have full awareness of opponents. Also in some games, player have to go explore or build houses to expand their map.



==== History and agriculture

Each race or country have its own history and agriculture which will affect assets and can cause different tech tree of course.

'''


=== AI

AI in an RTS is defenitely the most advanced game AI topic. It's diffucult and contain a lot of topic:


.  Path finding
.  Invidual AI
.  Group AI
.  Tactical formation

Techniques used are wide:


.  A*, Theta*,
.  Decision making and planing: STRIPS, HTN, Monte Calor sampling… 
.  Behaviour language , probilities …
.  [hundred more..]

In fact these researches took me like 3 years or more, the more I've read, the more techniques shown up.
So at last, in this example game's source code (HeavenRTS), there are entirely fews implemention which include serveral AI approaches:


.  My first attemp is an old-skool approach which represent the agents with simple AI model. The country with Goal-based reasoning and the unit with HFSM.
.  My second attemp is building a beyanis network for reasoning, in which advanced in programming techs but a lot weaker in term of a RTS bot.
.  One more implementation inspired by this paper : link:http://eis.ucsc.edu/sites/default/files/gda_aiide2010.pdf[http://eis.ucsc.edu/sites/default/files/gda_aiide2010.pdf] involve ABL, in which use open-source Star craft's EISBot , which is the most advanced and promising in AI field but as I said tied with specificly Star-craft like gameplay.

<<jme3/advanced/atom_framework/ai#,More AI>>

'''


=== RTS Network


=== Other pieces


==== Cheating

People always try to find way to cheat around. And if you don't take care of your AI, it can also be consider treated. The implementation such central system (server) and communication protocol should also be well designed to reduce or prevent cheating as much as possible.



==== Balancing & Economy

What if a race have dominance, advantages that superior to others. How can we balance between the race without annoying players by too much restrictions. This point should be considered carefully, even worth researchings



==== Expansions & Mods

Also Starcraft, Warcraft, AOE come with its editor helps modder make their map and game, which is open a whole new world of gaming as we've seen today.

