Abstract
Although we have recently seen an increase of good, free game engine editors, general purpose scenario (level) editors are still lagging behind in terms of functionalities and ease of use. Using them to create game scenarios can be difficult as they often expose general engine capabilities instead of limiting the toolset to fit game-specific requirements. They often require programming skills to use, which introduce additional user skill requirements, and configuring them for a specific game can be equally difficult. In this paper we have developed SpringBoard, an open source scenario editor for games using the SpringRTS engine. Extending it to support game and level requirements is achieved with multi-level meta-programming, while still providing a system that is integrated with the GUI editor and therefore intuitive to use. Our meta-programming system has support for trigger elements (events, functions and actions), custom (composite) data types, scoped data access, higher order functions and actions, and data synchronization mechanics. This novel approach allows us to have the full expressiveness of the underlying programming language, while exposing a user-friendly GUI that consists of terminology familiar to the domain expert.
Similar content being viewed by others
Notes
CryEngine - https://www.cryengine.com/
Godot - https://godotengine.org/
SpringRTS - https://springrts.com/
Unity - https://unity3d.com/
Unreal - https://www.unrealengine.com/
SpringGrid scheduler website: https://github.com/gajop/springgrid, botrunner: https://github.com/gajop/botrunner
Folding@Home: http://folding.stanford.edu/
Official Warcraft 3 homepage: http://us.blizzard.com/en-us/games/war3/
Starcraft 2 Galaxy Editor: http://us.battle.net/sc2/en/game/maps-and-mods/tutorials/data/1
Zero-K Mission Editor wiki http://zero-k.info/mediawiki/index.php?title=Mission_Editor
Jupyter Notebook for SpringRTS https://github.com/gajop/spring_kernel
Lua game console with custom command support https://github.com/gajop/chonsole
Evolution RTS: https://www.evolutionrts.info/ - an Open Source game based on the SpringRTS engine
The SpringRTS Lua scripting API: https://springrts.com/wiki/Lua_Scripting
SpringRTS API scripts https://github.com/Spring-SpringBoard/SpringBoard-Core/blob/master/triggers/core.lua
SpringBoard extra functionalities: https://github.com/Spring-SpringBoard/SpringBoard-Core/blob/master/triggers/extra.lua
Custom meta-model for the Gravitas game: https://github.com/SpringCabal/Scenario-Editor-Gravitas/blob/master/triggers/gravitas_triggers.lua. Gravitas level data: https://github.com/SpringCabal/Gravity-Enterprize/blob/master/model.lua
SpringBoard can be obtained from the following links: Core(main module used by all games) https://github.com/Spring-SpringBoard/SpringBoard-Core, official game scenarios https://github.com/Spring-SpringBoard
Balanced Annihilation, Zero-K and Evolution RTS modules: https://github.com/Spring-SpringBoard/SpringBoard-BA, https://github.com/Spring-SpringBoard/SpringBoard-ZK, https://github.com/Spring-SpringBoard/SpringBoard-EVO
Gravitas: Ludum Dare 32 entry, with level made in an earlier version of SpringBoard https://github.com/SpringCabal/Scenario-Editor-Gravitas https://www.youtube.com/watch?v=a1D295mRqdE
References
Moanes A, Ibrahim AH, Hosny A (2016) xgame: a novel approach for developing accessible mobile games. In: New trends in software methodologies, tools and techniques, vol 286 of frontiers in artificial intelligence and applications. IOS Press, pp 315–321
Anderson EF, McLoughlin L, Watson J, Holmes S, Jones P, Pallett H, Smith B (2013) Choosing the infrastructure for entertainment and serious computer games - a whiteroom benchmark for game engine selection. In: 2013 5th international conference on games and virtual worlds for serious applications (VS-GAMES). IEEE, pp 1–8
Brassai B, Varga B, Simon K, Torok-Vistai T (2014) Geoquesting: mobile adventure game and web-based game editor. In: 2014 IEEE 12th international symposium on intelligent systems and informatics (SISY). IEEE, pp 99–103
Dobrovsky A, Borghoff UM, Hofmann M (2016) An approach to interactive deep reinforcement learning for serious games. In: 2016 7th IEEE international conference on cognitive infocommunications (CogInfoCom). IEEE, pp 000085–000090
Dondlinger MJ (2007) Educational video game design: a review of the literature. Journal of Applied Educational Technology 4(1):21–31
Guo X, Singh S, Lee H, Lewis RL, Wang X (2014) Deep learning for real-time atari game play using offline Monte-Carlo tree search planning. In: Ghahramani Z, Welling M, Cortes C, Lawrence ND, Weinberger KQ (eds) Advances in neural information processing systems 27. Curran Associates, Inc., pp 3338–3346
Gustavsson PM, Lubera M, Lind H, Blomberg J (2009) J wemmergård Lessons learned from the implementation of a battle management language in a general scenario editor. In: Fall simulation interoperability workshop
Hausknecht MJ, Stone P (2015) Deep recurrent q-learning for partially observable mdps. In: AAAI fall symposium series
Lv Z, Tek A, Da Silva F, Empereur-mot C, Chavent M, Baaden M (2013) Game on, science - how video game technology may help biologists tackle visualization challenges. PLoS ONE 8(3): e57990
Mattheiss E, Regal G, Sellitsch D, Tscheligi M (2017) User-centred design with visually impaired pupils: a case study of a game editor for orientation and mobility training. Int J Child-Comput Interact 11:12–18
Mnih V, Badia AP, Mirza M, Graves A, Lillicrap T, Harley T, Silver D, Kavukcuoglu K (2016) Asynchronous methods for deep reinforcement learning. In: International conference on machine learning, pp 1928–1937
Mnih V, Kavukcuoglu K, Silver D, Graves A, Antonoglou I, Wierstra D, Riedmiller M A (2013) Playing atari with deep reinforcement learning. In: NIPS deep learning workshop
Oh J, Guo X, Lee H, Lewis RL, Singh S (2015) Action-conditional video prediction using deep networks in atari games. In: Cortes C, Lawrence ND, Lee DD, Sugiyama M, Garnett R (eds) Advances in neural information processing systems 28. Curran Associates, Inc., pp 2863–2871
Oswald P, Tost J, Wettach R (2014) The real augmented reality: real-time game editor in a spatial augmented environment. In: Proceedings of the 11th conference on advances in computer entertainment technology - ACE 14. ACM Press, pp 1–4
Park W-S, Hong H-K, WhangBo T-K (2010) Design and implementation of game scenario editor. Journal of Korea Game Society 10(1):115–125
Thompson D, Baranowski T, Buday R, Baranowski J, Thompson V, Jago R, Griffith MJ (2010) Serious video games for health: how behavioral science guided the development of a serious video game. Simul Games 41(4):587–606
Ullner F, Lundgren A (2008) Lessons learned from implementing a msdl scenario editor. Student Paper
van der Spek ED, van Oostendorp H, Meyer J-JC (2013) Introducing surprising events can stimulate deep learning in a serious game. Br J Educ Technol 44(1):156–169
Wyeld T, Barbuto Z (2014) Don’t hide the code!: empowering novice and beginner programmers using a HTML game editor. In: 2014 18th international conference on information visualisation. IEEE, pp 125–131
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Petrovic, G., Fujita, H. SpringBoard: game-agnostic tool for scenario editing with meta-programming support. Appl Intell 48, 1161–1175 (2018). https://doi.org/10.1007/s10489-017-1069-y
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10489-017-1069-y