Resource Entity Action: A Generalized Design Pattern for RTS Games

M. Abbadi, F. Giacomo, R. Orsini, A Plaat, P. Spronck, G Maggiore

Research output: Chapter in Book/Report/Conference proceedingConference contributionScientificpeer-review

1 Citation (Scopus)


In many Real-Time Strategy (RTS) games, players develop an army in real time, then attempt to take out one or more opponents. Despite the existence of basic similarities among the many different RTS games, engines of these games are often built ad hoc, and code re-use among different titles is minimal. We created a design pattern called "Resource Entity Action" (REA) abstracting the basic interactions that entities have with each other in most RTS games. The paper discusses the REA pattern and its language abstraction. We also discuss the implementation in the Casanova game programming language. Our analysis shows that the pattern forms a solid basis for a playable RTS game, and that it achieves considerable gains in terms of lines of code and runtime efficiency. We conclude that the REA pattern is a suitable approach to the implementation of many RTS games.

Original languageEnglish
Title of host publicationComputers and Games, Lecture Notes in Computer Science (Selected papers of the CG 2013 Conference)
EditorsH. Lida, A. Plaat, H.J. van den Herik
Place of PublicationBasel, Switzerland
Number of pages13
ISBN (Print)9783319091648
Publication statusPublished - 2014
EventCG 2013, 12-08-2013 - Basel, Switzerland
Duration: 12 Aug 201313 Aug 2013

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume8427 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349


ConferenceCG 2013, 12-08-2013
CityBasel, Switzerland


  • Design Pattern
  • Source Entity
  • Language Extension
  • Game World
  • Resource Transfer


Dive into the research topics of 'Resource Entity Action: A Generalized Design Pattern for RTS Games'. Together they form a unique fingerprint.

Cite this