ORTS - A Free Software RTS Game Engine
- 15.July.2010: ORTS new svn
- There will be an ORTS
competition in August 2009. It will feature the same games as last
year. Details here.
- 24.Jun.2007: ORTS moved to subversion
- 10.Jun.2007: added a vc++ project file creator. See misc/windows.
- 24.May.2007: Major push in ORTS development planned for this summer - see below
- 24.May.2007: tmanager update: now handles game 4 tournaments and supports running tournaments on single machines.
- 30.Mar.2007: revived tournament-2006 scripts.
- 4.Mar.2007: bugfixes, better windows/mac support, restructured directories
- 5.Aug.2006: ORTS now compiles under Visual C++ 8 !
- 27.Jun.2006: moved gfx/sound files into separate cvs directory orts_data
- 26.Jun.2006: ORTS tournament results and presentation available here
- 1.Jun.2006: added client authentication (server -ids foo,bar ; clients: -id foo, resp. -id bar)
- 10.May.2006: improved doxygen documentation now made available on this webpage
- 5.May.2006: new cvs server location
- 30.Apr.2006: cygwin build working again, see README file
- 25.Apr.2006: updated pathfinding code
- 7.Apr.2006: added section on pathfinding to misc/doc/client-code
- 4.Apr.2006: added paragraph on action messages to misc/doc/client-code
- 3.Apr.2006: Code review: more runtime type checks in scripts, 64-bit compliance, new FIND macro
- 1.Apr.2006: ORTS runs under MinGW
- 3.Feb.2006: RTS Game AI Competition Page Update
- 2.Feb.2006: Added Windows "makefile" makefile.mak; Looking for someone to port
ORTS to mingw.
- 27.Nov.2005: Created RTS Game AI Competition page
- 24.Nov.2005: created the ORTS sourceforge project
- 8.Sep.2005: submitted RTS game AI competition proposal to AIIDE organizers.
- 5.Sep.2005: third competition draft proposal
- 3.Sep.2005: second competition draft proposal
- 1.Sep.2005: added system requirement section
- Aug.2005: new overview article
- Aug.2005: added section on RTS AI
We encourage researchers and students in the area of
real-time AI to take a look at ORTS and to consider it as a
test-bed for their research.
We are also inviting game designers, computer graphics artists, and graphics programmers to contribute to the
project by creating new races, low-poly unit and structure models,
ground textures, GUI widgets, and stunning particle effects (example).
ORTS development is under full steam!
Plans for Summer 2007 are:
- migration to SVN using a main trunk for development and stable release branches
- simplify installation
- improve the GUI so that players can enjoy playing ORTS
- implement a simple standard game
- add scripted actions such as Move-Attack that are invoked by buttons in the GUI
- finish the ORTS.net game server to which people can connect to chat and to initiate ORTS games
- improve pathfinding by adding TRA*
- What is it?
ORTS is a programming environment for RTS games.
- What does ORTS stand for?
- What are the project goals?
ORTS is a programming environment for studying real-time AI
problems such as pathfinding, dealing with imperfect information,
scheduling, and planning in the domain of RTS games. These games are
fast-paced and very popular. Furthermore, the current state of RTS
game AI is bleak which is mainly caused by the lack of planning and
learning - areas in which humans are currently much better than
machines. Therefore, RTS games make an ideal test-bed for real-time AI
research. Unfortunately, commercial RTS games are closed software
which prevents researchers from connecting remote AI modules to
them. Furthermore, commercial RTS games are based on peer-to-peer
technology - which in a nutshell runs the entire simulation on all
player machines and just hides part of the game state from the players. By
tampering with the client software it is possible to reveal the entire
game state and thereby gain an unfair advantage. We feel that this is
unacceptable for playing games on the internet.
We therefore started the ORTS project to create a free software system that lets people
and machines play fair RTS games. The communication protocol is public and
all source code and artwork is freely available. Users can connect whatever client
software they like. This is made possible by a server/client architecture in which only
the currently visible parts of the game state are sent to the players.
This openness leads to new and interesting possibilities ranging from
on-line tournaments of autonomous AI players to gauge their playing
strength to hybrid systems in which human players use sophisticated
GUIs which allow them to delegate tasks to AI helper modules of
- What is the current state?
We have a working platform-independent server/client RTS game engine which includes
a 3d OpenGL GUI. We are working on a standard ORTS game
and flexible client software right now. By autumn 2006 we hope to
have a working system which is interesting for both RTS players and AI
- How does ORTS work?
ORTS is not a single RTS game, it's an RTS game engine. Users define
the game they want to play in form of scripts which describe all
unit types, structures, and their interactions. These scripts are loaded
by the ORTS server and executed. The second part of the ORTS system is client software
which connects to the server and generates actions for objects in the game.
The server sends player views to the clients and receives actions for all the player
objects, which are then executed. This loop is executed multiple times a second.
If the 3d graphics client is connected, the world is rendered using OpenGL and
the user can issue commands using the mouse and keyboard.
- How is ORTS licenced?
ORTS is free software. It is licensed under the GNU public license
(GPL). This means that all source code of ORTS is available,
changable, and freely redistributable. It also means that publicly
available applications using ORTS source code must also be licensed
under the GPL.
- What programming language is ORTS implemented in and what libraries does it use?
C++ is used for the server and client cores, and a home-brewed
scripting language for defining games and customizing the GUI. We
currently make use of the standard C++ library, Boost, SDL, SDL_net, and OpenGL in
conjunction with glew.
- Is ORTS platform independent?
Yes - as long as the libraries mentioned above are available. We
started off implementing ORTS on Linux and Cygwin using g++, but
recently also managed to compile it natively on Windows using MS VC++
by working around several problems - most notably the unsupported
typeof functionality. In April 2006 we got ORTS working in
the MinGW environment and cygwin, which is now the preferred way of
running ORTS under Windows.
- Compared with commercial RTS games, what is different?
|Feature ||Current Commercial RTS Games ||ORTS |
|Cost ||~US$ 50 ||US$ 0 |
|License ||Closed Software |
No code changes possible; company in control rather than user
|Free Software (GPL) |
Users can study and improve code
|Topology ||Peer-to-Peer |
The entire game simulation is run on each peer node; prone to map-revealing hacks
Server simulates world and sends local views to clients; no map-revealing hacks; but need a server
|Communication protocol ||veiled ||open |
|Game Complexity ||high; RTS games are becoming more complex: more races, more unit types, more spells ... ||flexible: users define their own games |
|Game Specification ||fixed ||flexible: ORTS is a meta-game system. When starting a game, the server reads the game and world description from a text file |
|GUI ||Nice looking but inflexible interfaces; frequent context switches necessary in case of simultaneous battles due to a confined sector view ||Roll your own client: flexible resolution, split view, or no graphics at all. |
|CPU requirements ||medium to high due to fancy graphics ||low to high: depends on client mode |
|Network requirements ||low: only mouse clicks and keyboard events are sent ||medium: incremental and compressed view updates |
|Unit control ||essentially sequential: mouse clicks/pressed keys + predefined low-level unit behaviour ||parallel: one command per unit per simulation frame; atomic actions - no predefined low-level behaviour; clients are in total control |
|AI ||AI code for all players runs on all peer nodes ||AI is local to each client |
|Remote AI ||not supported; local AI is limited to scripts ||Yes - by design; if necessary you can connect a super-computer to the server to let it play RTS games on its own or help you playing games |
- Comments or suggestions?
Send me email at mburo_DELETE_@cs.ualberta.ca (remove _DELETE_).
For the graphics client (ortsg) under Linux to reach frame rates >= 20
fps, currently you'll need a mid-range NVIDIA graphics card because
the Linux ATI drivers are poor (as of mid 2005). Under Windows there
is no such restriction. Having at least 128 MB of video RAM helps and
512 MB of system RAM is minimum when using ortsg.
(July 2010: the svn URL has changed!)
svn co svn://[user-id]@skatgame.net:/all/pubsoft/orts
svn co svn://[user-id]@skatgame.net:/all/pubsoft/orts_data
(anonymous read-only access: user-id=anonymous password=guest)
See orts/trunk/README for compilation instructions. ORTS compiles
under Linux (Fedora 13), MS VC++8, and (probably) MacOS. You need the
Boost library, SDL, SDL_net, zlib, OpenGL, glew, and freeglut to
Compiling ORTS on Windows with VC++8
Follow the instructions in orts\trunk\misc\windows\howto after
downloading this archive: win32.zip.
Feedback welcome! We need developers who use
VC++ to test and improve the VC++ setup. We recently added a tool that
creates project files automatically.
ortsg split screen 18-Sep-2003 (before we added textures to objects)
ortsg on 10-Nov-2003 (after we finished the minimap)
ortsg on 12-Dec-2003 (better human colors, 3d model test)
ortsg on 27-Dec-2003 (3d unit models)
ortsg on 18-Jan-2004 (command buttons)
ortsg on 24-Jan-2004 (texture,shadows)
ortsg on 18-June-2004 (better terrain, shadows, MD2 models)
ortsg on 4-Sep-2004 (more models, button/info panel)
ortsg on 25-May-2005 (more models, trees)
ortsg splash screen 19-Aug-2005
ortsg on 26-Aug-2005 (more bugs models)
- doxygen-generated documentation
- See orts/trunk/README for compilation information, and create doxygen documentation
(cd orts/trunk/misc/doxygen; make)
- Scripting and 3d model loading documentation
- M. Buro,
ORTS: A Hack-Free RTS Game Environment,
Proceedings of the International Computers and Games Conference 2002, Edmonton, Canada.
- M. Buro,
ORTS - A Hack-Free RTS Game Toolkit, RTDS meeting, October 2002
- "Games Research at UofA",
Invited talk at the Relic.com, Vancouver, May 2003
- M. Buro,
Real-Time Strategy Games: A new AI Research Challenge,
Proceedings of the International Joint Conference on AI 2003, Acapulco, Mexico.
- M. Buro and T. Furtak,
RTS Games as Test-Bed for Real-Time Research,
Invited Paper at the Workshop on Game AI, JCIS 2003 PDF
- M. Buro and T. Furtak, RTS Games and Real-Time AI Research, Proceedings of the Behavior Representation in Modeling and Simulation Conference (BRIMS), Arlington VA 2004
- M. Buro, Call for AI Research in RTS Games, AAAI-04 AI in Games Workshop, San Jose 2004
- M. Buro and T. Furtak, On the Development of a Free RTS Game Engine, GameOn'NA Conference, Montreal 2005
- D.A. Reece, M. Kraus, P. Dumanoir, Tactical Movement Planning for Individual Combatants,
9th Conference on Computer Generated Forces and Behavioral Representation, 2000.
The first RTS Game AI competition was
held prior to AIIDE 2006. If interested, please have a look. Feedback
and suggestions are welcome! The
second competition took place prior to AIIDE
2007. Participation has more than doubled from 2006!
The fourth competition will be held
in August 2009.
If you have questions about ORTS installation and usage please post
them to the ORTS help forum
Feature requests should be posted to the ORTS open discussion forum
Developers please post messages to the ORTS developers forum
You can also contact me directly: Michael Buro
- Michael Buro (Associate Professor and project leader):
Working on all ORTS components
- Timothy Furtak (grad): Working on all ORTS components
- Alexander Kovarsky (grad): Build-order optimization
- Marc Lanctot (grad): ORTS.net, planning
- Sterling Orsten (ugrad): AI scripting
Former Contributors - Thank You!
- Kenneth Anderson (2006): Unit Targeting
- Nicholas Wiebe (2006): Pathfinding, game2,3
- David Tom (2006): High-level AI, game3
- James Bergsma (2006): Pathfinding, game2,3
- Nathaniel Rossol (2006): Graphics
- Mike Packer (2006): Graphics
- David Deutscher (2006) Pathfinding, game1
- Frano Sailer (2005-2006): Planning
- Douglas Demyen (now at Bioware, 2005-2006): TRA* Pathfinding
- Krysta Mirzayans (ugrad, 2006): Implemented tournament manager
- Nathan Sturtevant (2005): Pathfinding and porting ORTS to Mac-OSXLenore Brown and Kurt McMillan (ugrad, Summer 2005): Map generation
- Kevin Loney and Allan Schumacher (ugrad, Summer 2005): Combat AI, pathfinding
- Andrew Hakman and Jeff Liske (ugrad, Summer 2005): ORTS.net, Qt integration
- Erik Benner (ugrad, Summer 2005): Graphics programming
- Trevor Gilday (now at Bioware, 2005-2006): 3d models
- Matt Marshall, Xinghua Qin (Summer 2005): 3d models
- Sami Wagia-alla (ugrad, 2004): ORTS.net, game definition, GUI scripting
- Jonathan Yip (grad, 2004):
Design and Implementation of a Scripting Language for RTS Games
- Brandon Blanck (ugrad, 2004): Pathfinding
- Sean Healy (ugrad, 2004): Development of a standard ORTS game
- Tin Hoang (ugrad, 2004): ORTS.net, game definition, GUI scripting
- Keith Yerex (grad, now at Bioware, 2004): Graphics programming
- Michael Chung (grad, 2004):
Abstraction and Planning in Capture-the-Flag Games
- Ghassan Zabaneh (grad, Summer 2004): 3d models
- Adrien Cho (grad, now at Bioware, Summer 2004): 3d models
- Darren Yeh (ugrad, Summer 2004): ORTS.net
- Harry Wentland (ugrad, Summer 2003):
Worked on the graphics part of the ORTS client
- Alexey Badalov (ugrad, Summer 2003):
- Markus Enzenberger (Research Assistant, Summer 2003):
Documentation and pathfinding
last modified on
; you are visitor #