Communication Inside Game Engine

Total Page:16

File Type:pdf, Size:1020Kb

Communication Inside Game Engine Coordination and communication inside game engine University of Oulu Department of Information Processing Science Master’s Thesis Tuomas Kukkamaa 29 May 2014 2 Abstract This study examines the communication and coordination among different parts of game engine. As games contain multiple co-operating processes, each of which handles a small part of whole game experience, game engines must handle the management of co-operation efficiently. The issue is that while the competitive and demanding game industry has hastened the development of game engines, the academic research has been lagging behind. This study aims to bridge the gap between industrial know-how and academic research by studying how game engines handle managing the processes and data that they require. The study uses coordination paradigm as the research viewpoint and focuses on finding the coordination model used in game engines. The target of the study is to understand how the coordination model is implemented in game engines. The study followed design science research, whereby both industrial know-how and academic literature were used in finding the coordination model and implementation method of it. The coordination model was first searched among the existing models, but as those were proven inefficient in describing the overall theory, a new architectural theory was built. This new theory, called “Communication-oriented game engine architecture”, was then analysed against communication mechanisms used in open source game engines for verification. The result of the analysis indicates that the theory proposed in this thesis explains the common features among analysed game engines. Since the proposed architecture is based on existing and well-known event-based communication mechanism, the theory behind proposed architecture aids in understanding the design of game engines in respect to the design of other software. Keywords game engine, software architecture, domain-specific architecture, control structures, gaming 3 Foreword Games, be it board games or computer games, have always interested me. As I have witnessed the evolution of gaming from simple toys to complex social platforms, I have learnt to appreciate both technical and artistic merits of games. Especially now, during the later part of my studies, I have noticed the meaning and value of those things that makes games unique among software. They offer new insight to software engineering and I hope that this thesis will encourage others to dive in to explore games as software. I would like to thank following people for supporting me during the development of this thesis: University Lecturer Jouni Lappalainen who guided me as my supervisor; my friends who were always ready to talk about games and game engines; my family for supporting and encouraging me forward; and of course my fiancée for taking care of me when I studied long hours among articles, books, and source code repositories. Tuomas Kukkamaa Oulu, Thursday, May 29, 2014. 4 Contents Abstract...................................................................................................................2 Foreword.................................................................................................................3 Contents..................................................................................................................4 1. Introduction..........................................................................................................5 1.1 Research topic and questions........................................................................6 1.2 Research methodology..................................................................................7 1.3 Structure of the thesis....................................................................................9 2. Games as software.............................................................................................10 2.1 Games as data-driven software...................................................................11 2.1.1 Processes inside game.....................................................................12 2.1.2 Data inside game.............................................................................15 2.2 Game engines as managers.........................................................................17 2.2.1 Process management.......................................................................18 2.2.2 Data management............................................................................20 3. Communication inside game.............................................................................22 3.1 Communication mechanisms......................................................................23 3.2 Architectural solutions................................................................................25 4. Communication architecture of game engine....................................................35 4.1 Events as communication mechanism........................................................36 4.2 Depiction of the architectural solution........................................................37 5. Analysis of existing game engines.....................................................................41 5.1 Blender........................................................................................................43 5.2 Delta 3D......................................................................................................45 5.3 Gameplay3D...............................................................................................48 5.4 Polycode......................................................................................................49 5.5 Comparison between game engines and the proposed architectural solution ..................................................................................................................51 6. Discussion..........................................................................................................55 6.1 On the verification of the architectural solution and theory.......................55 6.2 Implications for game engine theory..........................................................58 6.3 Implications for game engine industry........................................................61 7. Conclusion.........................................................................................................63 References.............................................................................................................65 Appendix A. Structural and functional diagrams of analysed game engines.......70 5 1. Introduction Computer games (hereinafter referred as games) present a great challenge for both developers and scholars: While they can be treated as usual software and designed under common software requirements, they are often required to handle many computationally-challenging tasks that are not present in other software. These tasks, such as simulating independent parts of the game world and rendering that game world efficiently to user, must be often designed and programmed under strict schedule limits that are imposed by the very competive and demanding video game industry. This has led to situation where the best practises of industry have been developed a lot while scientific research has been lacking. This does not, however, mean that there hasn't been any scientific research on games. Many game related topics have been studied from variety of viewpoints during last decades. Some of the most common research topics have been usage of games in different purposes (for example, as a simulation platfrom (Zyda, 2005)), improving a specific technological or mechanical section of game (for example, improving usage of database in games (Demers, Gehrke, Koch, Sowell & White, 2009) and improving the artificial intelligence of a game (Spronck, Ponsen, Sprinkhuizen-Kuyper & Postma, 2006)). The problem is that while research on games has increased (Ampatzoglou & Stamelos, 2010), most of the research focuses on studying how games, as an abstract entity, work in different situations (“usage”) or how certain low-level functions can be implemented (“implementation”). This imbalance can be especially noted in the research done on game engines. Game engines form the “heart” of modern games and since early 1990s, when the first game engines were constructed, have developed into large and complex pieces of software. Game engines function as a link between different major parts of the games, driving their actions and facilitating their co-operation and thus form an important base architecture for the games. These roles and the related complexity would make them prime targets for studies on architecture and communication but currently, the academic research is mostly focusing on how to perform simulations and mathematically complex issues efficiently (Anderson, Engel, McLoughlin & Comninos, 2008). This research focus has also shown up in the industry-based literature as, for example, the books by industry veterans such as McShaffry (2009), Rabin (2009) and Zerbst and Dueval (2004) all focus on telling how the specific parts of the game engine can be implemented without discussing the overall architecture and design reasoning behind it. These circumstances have led to a situation where the modern game engines have seen little focus from the academic research and thus their developments have not been analysed as a part of larger software engineering literature. While there has been some
Recommended publications
  • Openbsd Gaming Resource
    OPENBSD GAMING RESOURCE A continually updated resource for playing video games on OpenBSD. Mr. Satterly Updated August 7, 2021 P11U17A3B8 III Title: OpenBSD Gaming Resource Author: Mr. Satterly Publisher: Mr. Satterly Date: Updated August 7, 2021 Copyright: Creative Commons Zero 1.0 Universal Email: [email protected] Website: https://MrSatterly.com/ Contents 1 Introduction1 2 Ways to play the games2 2.1 Base system........................ 2 2.2 Ports/Editors........................ 3 2.3 Ports/Emulators...................... 3 Arcade emulation..................... 4 Computer emulation................... 4 Game console emulation................. 4 Operating system emulation .............. 7 2.4 Ports/Games........................ 8 Game engines....................... 8 Interactive fiction..................... 9 2.5 Ports/Math......................... 10 2.6 Ports/Net.......................... 10 2.7 Ports/Shells ........................ 12 2.8 Ports/WWW ........................ 12 3 Notable games 14 3.1 Free games ........................ 14 A-I.............................. 14 J-R.............................. 22 S-Z.............................. 26 3.2 Non-free games...................... 31 4 Getting the games 33 4.1 Games............................ 33 5 Former ways to play games 37 6 What next? 38 Appendices 39 A Clones, models, and variants 39 Index 51 IV 1 Introduction I use this document to help organize my thoughts, files, and links on how to play games on OpenBSD. It helps me to remember what I have gone through while finding new games. The biggest reason to read or at least skim this document is because how can you search for something you do not know exists? I will show you ways to play games, what free and non-free games are available, and give links to help you get started on downloading them.
    [Show full text]
  • Lucasarts and the Design of Successful Adventure Games
    LucasArts and the Design of Successful Adventure Games: The True Secret of Monkey Island by Cameron Warren 5056794 for STS 145 Winter 2003 March 18, 2003 2 The history of computer adventure gaming is a long one, dating back to the first visits of Will Crowther to the Mammoth Caves back in the 1960s and 1970s (Jerz). How then did a wannabe pirate with a preposterous name manage to hijack the original computer game genre, starring in some of the most memorable adventures ever to grace the personal computer? Is it the yearning of game players to participate in swashbuckling adventures? The allure of life as a pirate? A craving to be on the high seas? Strangely enough, the Monkey Island series of games by LucasArts satisfies none of these desires; it manages to keep the attention of gamers through an admirable mix of humorous dialogue and inventive puzzles. The strength of this formula has allowed the Monkey Island series, along with the other varied adventure game offerings from LucasArts, to remain a viable alternative in a computer game marketplace increasingly filled with big- budget first-person shooters and real-time strategy games. Indeed, the LucasArts adventure games are the last stronghold of adventure gaming in America. What has allowed LucasArts to create games that continue to be successful in a genre that has floundered so much in recent years? The solution to this problem is found through examining the history of Monkey Island. LucasArts’ secret to success is the combination of tradition and evolution. With each successive title, Monkey Island has made significant strides in technology, while at the same time staying true to a basic gameplay formula.
    [Show full text]
  • MMPX Style-Preserving Pixel Art Magnification
    Journal of Computer Graphics Techniques Vol. 10, No. 2, 2021 https://jcgt.org MMPX Style-Preserving Pixel-Art Magnification Morgan McGuire Mara Gagiu University of Waterloo & NVIDIA University of Waterloo (a) Input Image (b) Magnified 2× with Nearest (c) Magnified 2× with MMPX Figure 1. (a) Pixel art combining sprites, text, and UI elements (b) magnified with nearest- neighbor filtering becomes blocky relative to the original pixel size; (c) MMPX filtering re- fines lines, curves, and patterns for the new resolution, while mostly preserving the palette, transparency, and shape aspects of the original artwork. Input derived from Oryx Design Lab licensed sprites https://www.oryxdesignlab.com/products/16-bit- fantasy-tileset Abstract We present MMPX, an efficient filter for magnifying pixel art, such as 8- and 16-bit era video-game sprites, fonts, and screen images, by a factor of two in each dimension. MMPX preserves art style, attempting to predict what the artist would have produced if working at a larger scale but within the same technical constraints. Pixel-art magnification enables the displaying of classic games and new retro-styled ones on modern screens at runtime, provides high-quality scaling and rotation of sprites and raster- font glyphs through precomputation at load time, and accelerates content-creation workflow. MMPX reconstructs curves, diagonal lines, and sharp corners while preserving the ex- act palette, transparency, and single-pixel features. For general pixel art, it can often pre- serve more aspects of the original art style than previous magnification filters such as nearest- neighbor, bilinear, HQX, XBR, and EPX. In specific cases and applications, other filters will be better.
    [Show full text]
  • Multiplayer Online Games Insecurity (Neverfeelsafewhileplayingonline)
    MULTIPLAYER ONLINE GAMES INSECURITY (NEVER FEEL SAFE WHILE PLAYING ONLINE) Luigi Auriemma1 and Donato Ferrante2 ReVuln http://revuln.com [email protected] http://twitter.com/revuln 25 January 2013 Abstract Multiplayer online games security is an underestimated field, with an insane amount of players playing online games and companies push- ing out new games at an incredible rate. In this ecosystem finding vulnera- bilities in games turns to be a really attractive work. 1W HY ATTACKING GAMES? There are two main entities in multiplayer games: players and companies. Players play games for fun, companies make games for money. For each of these two entities there are different possible subsets of attackers. Let’s start by considering players. 1.1A TTACKING PLAYERS Some of the people who may be interested in attacking players systems while they play online games include: Script kiddies - people without any technical knowledge. They browse the • internet looking for ready-to-use attacking tools, and then they use such tools to attack players. Primarily, their final goal is to generate Denial Of Service (DoS) conditions against players systems. Others - this category is composed by several entities. We may find people • testing exploits, or people trying to build a games-based malware botnet. Others also include people interested in deploying "applications" on remote systems. 1.2A TTACKING COMPANIES As stated previously, companies make games for money. This is their business. Because of this possible attackers for game companies include: Script kiddies - this category of attackers makes no distinction between play- • ers or companies. They attack both for fun.
    [Show full text]
  • Scummvm Documentation
    ScummVM Documentation CadiH May 10, 2021 The basics 1 Understanding the interface4 1.1 The Launcher........................................4 1.2 The Global Main Menu..................................7 2 Handling game files 10 2.1 Multi-disc games...................................... 11 2.2 CD audio.......................................... 11 2.3 Macintosh games...................................... 11 3 Adding and playing a game 13 3.1 Where to get the games.................................. 13 3.2 Adding games to the Launcher.............................. 13 3.3 A note about copyright.................................. 21 4 Saving and loading a game 22 4.1 Saving a game....................................... 22 4.2 Location of saved game files............................... 27 4.3 Loading a game...................................... 27 5 Keyboard shortcuts 30 6 Changing settings 31 6.1 From the Launcher..................................... 31 6.2 In the configuration file.................................. 31 7 Connecting a cloud service 32 8 Using the local web server 37 9 AmigaOS 4 42 9.1 What you’ll need...................................... 42 9.2 Installing ScummVM.................................... 42 9.3 Transferring game files.................................. 42 9.4 Controls........................................... 44 9.5 Paths............................................ 44 9.6 Settings........................................... 44 9.7 Known issues........................................ 44 10 Android 45 i 10.1 What you’ll need.....................................
    [Show full text]
  • A Classification of Scripting Systems for Entertainment and Serious
    Published in Proceedings of VS-GAMES 2011: 3rd International Conference on Games and Virtual Worlds for Serious Applications, pages 47-54; definitive version available from http://dx.doi.org/10.1109/VS-GAMES.2011.13 A Classification of Scripting Systems for Entertainment and Serious Computer Games Eike Falk Anderson Interactive Worlds ARG Coventry University Coventry, UK [email protected] Abstract—The technology base for modern computer games is usually provided by a game engine. Many game engines have built-in dedicated scripting languages that allow the development of complete games that are built using those engines, as well as extensive modification of existing games through scripting alone. While some of these game engines implement propri- etary languages, others use existing scripting systems that have been modified according to the game engine’s requirements. Scripting languages generally provide a very high level of abstraction method for syntactically controlling the behaviour of their host applications and different types of scripting system allow different types of modification of their underlying host application. In this paper we propose a simple classification for scripting systems used in computer games for entertainment and serious purposes. Index Terms—Data-Driven Game Development, Scripting Language Classification. Fig. 1. A typical game engine. If the engine core includes a scripting system, then application specific scripts are loaded as external game assets and there I. INTRODUCTION may be no other application specific code. The computer games industry is still a young industry which continues to have a lot of potential for growth. This is especially so, since games have broken out of the domain Consequently it is no surprise that scripting systems are of pure entertainment and are now used in a wide variety of considered one of the most important developer tools that are different situations.
    [Show full text]
  • Localization Tools in General Purpose Game Engines: a Systematic Mapping Study
    Hindawi International Journal of Computer Games Technology Volume 2021, Article ID 9979657, 15 pages https://doi.org/10.1155/2021/9979657 Review Article Localization Tools in General Purpose Game Engines: A Systematic Mapping Study Marcus Toftedahl Division of Game Development, University of Skövde, Skövde, Sweden Correspondence should be addressed to Marcus Toftedahl; [email protected] Received 31 March 2021; Accepted 5 July 2021; Published 23 July 2021 Academic Editor: Cristian A. Rusu Copyright © 2021 Marcus Toftedahl. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. This paper addresses localization from a game development perspective by studying the state of tool support for a localization work in general purpose game engines. Using a systematic mapping study, the most commonly used game engines and their official tool libraries are studied. The results indicate that even though localization tools exists for the game engines included in the study, the visibility, availability, and functionality differ. Localization tools that are user facing, i.e., used to create localization, are scarce while many are tool facing, i.e., used to import localization kits made outside the production pipeline. 1. Introduction tions or specific corporate entities handling functions such as marketing or distribution. This is not always the case with “The world is full of different markets and cultures and, to indie game development, where Pereira and Bernardes [7] maximize profits™[sic], nowadays games are released in sev- note that the structure of indie development is more flexible, eral languages.
    [Show full text]
  • Writing Music for Animation, Video Games & Virtual Reality
    Writing Music for Animation, Video Games & Virtual Reality I. The Composer's Brief The composer will meet with the director of the production at a spotting session, to decide what kind of original music will go where in the production. Discussion can be focused more on emotions and effects, rather than musical aspects per se, with which the director may not be familiar. Through the contract (see section VI below), the composer will be commissioned to compose, arrange, perform (and/or or have performed), record and mix the music, before delivering finished, mixed masters. The composer will not normally be obliged to re-score the music after delivery of finished mixed masters. The composer may have to begin work with concepts (e.g. for animation a storyboard or still- frame animatics1). In computer games there may be character sketches. The visual material may exist in a rough cut or a (final) locked edit (this is rare). Having a locked edit is ideal, because music can be timed directly to it. Music is timed to picture through a digital audio workstation (DAW). The principle of synchronization stems from the formula: duration of 1 beat = 60 seconds metronome mark In calculating click tracks (see later) the composer should take care to distinguish between simple and compound time signatures. A dotted crotchet (dotted quarter note) is the beat in a 6/8 time signature for example. Each cue will have a SMPTE2 start time. SMPTE shows time in hours:minute:seconds:frames. A frame is one still picture from the animation. Production companies may work at different frame rates, e.g.
    [Show full text]
  • Chapter 1. a Chronology of Game Programming
    This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it. Thanks . [ Team LiB ] Chapter 1. A Chronology of Game Programming "In the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move." —Douglas Adams KEY TOPICS Phase I: Before Spacewar Phase II: Spacewar to Atari Phase III: Game Consoles and Personal Computers Phase IV: Shakedown and Consolidation Phase V: The Advent of the Game Engine Phase VI: The Handheld Revolution Phase VII: The Cellular Phenomenon Phase VIII: Multiplayer Games In Closing The art and science of game development have experienced a huge progression since the early days. Hardware has improved by orders of magnitude, whereas game complexity and richness have simply exploded. To better understand how games are coded today, and why, it is essential to look back and review the history of game programming. I have divided that lengthy narration into what I consider the eight most defining moments that shaped the current industry. Let's time warp ourselves to those moments and take a look at how things were done back then. This way the reasons behind today's practices will become obvious. I will avoid the trivial and focus on programming practices. Because raw data is useless without perspective, it's also important to provide some context in which to interpret the data and to understand how today's programming practices were developed. [ Team LiB ] This document was created by an unregistered ChmMagic, please go to http://www.bisenter.com to register it.
    [Show full text]
  • Google Adquiere Motorola Mobility * Las Tablets PC Y Su Alcance * Synergy 1.3.1 * Circuito Impreso Al Instante * Proyecto GIMP-Es
    Google adquiere Motorola Mobility * Las Tablets PC y su alcance * Synergy 1.3.1 * Circuito impreso al instante * Proyecto GIMP-Es El vocero . 5 Premio Concurso 24 Aniversario de Joven Club Editorial Por Ernesto Rodríguez Joven Club, vivió el verano 2011 junto a ti 6 Aniversario 24 de los Joven Club La mirada de TINO . Cumple TINO 4 años de Los usuarios no comprueba los enlaces antes de abrirlos existencia en este septiembre, el sueño que vió 7 Un fallo en Facebook permite apropiarse de páginas creadas la luz en el 2007 es hoy toda una realidad con- Google adquiere Motorola Mobility vertida en proeza. Esfuerzo, tesón y duro bre- gar ha acompañado cada día a esta Revista que El escritorio . ha sabido crecerse en sí misma y superar obs- 8 Las Tablets PC y su alcance táculos y dificultades propias del diario de cur- 11 Propuesta de herramientas libre para el diseño de sitios Web sar. Un colectivo de colaboración joven, entu- 14 Joven Club, Infocomunidad y las TIC siasta y emprendedor –bajo la magistral con- 18 Un vistazo a la Informática forense ducción de Raymond- ha sabido mantener y El laboratorio . desarrollar este proyecto, fruto del trabajo y la profesionalidad de quienes convergen en él. 24 PlayOnLinux TINO acumula innegables resultados en estos 25 KMPlayer 2.9.2.1200 años. Más de 350 000 visitas, un volumen apre- 26 Synergy 1.3.1 ciable de descargas y suscripciones, servicios 27 imgSeek 0.8.6 estos que ha ido incorporando, pero por enci- El entrevistado . ma de todo está el agradecimiento de muchos 28 Hilda Arribas Robaina por su existencia, por sus consejos, su oportu- na información, su diálogo fácil y directo, su uti- El taller .
    [Show full text]
  • Abkürzungs-Liste ABKLEX
    Abkürzungs-Liste ABKLEX (Informatik, Telekommunikation) W. Alex 1. Juli 2021 Karlsruhe Copyright W. Alex, Karlsruhe, 1994 – 2018. Die Liste darf unentgeltlich benutzt und weitergegeben werden. The list may be used or copied free of any charge. Original Point of Distribution: http://www.abklex.de/abklex/ An authorized Czechian version is published on: http://www.sochorek.cz/archiv/slovniky/abklex.htm Author’s Email address: [email protected] 2 Kapitel 1 Abkürzungen Gehen wir von 30 Zeichen aus, aus denen Abkürzungen gebildet werden, und nehmen wir eine größte Länge von 5 Zeichen an, so lassen sich 25.137.930 verschiedene Abkür- zungen bilden (Kombinationen mit Wiederholung und Berücksichtigung der Reihenfol- ge). Es folgt eine Auswahl von rund 16000 Abkürzungen aus den Bereichen Informatik und Telekommunikation. Die Abkürzungen werden hier durchgehend groß geschrieben, Akzente, Bindestriche und dergleichen wurden weggelassen. Einige Abkürzungen sind geschützte Namen; diese sind nicht gekennzeichnet. Die Liste beschreibt nur den Ge- brauch, sie legt nicht eine Definition fest. 100GE 100 GBit/s Ethernet 16CIF 16 times Common Intermediate Format (Picture Format) 16QAM 16-state Quadrature Amplitude Modulation 1GFC 1 Gigabaud Fiber Channel (2, 4, 8, 10, 20GFC) 1GL 1st Generation Language (Maschinencode) 1TBS One True Brace Style (C) 1TR6 (ISDN-Protokoll D-Kanal, national) 247 24/7: 24 hours per day, 7 days per week 2D 2-dimensional 2FA Zwei-Faktor-Authentifizierung 2GL 2nd Generation Language (Assembler) 2L8 Too Late (Slang) 2MS Strukturierte
    [Show full text]
  • Videopelien Historia Ja Pelinkehitys 2D
    Jani Ylönen VIDEOPELIEN HISTORIA JA PELINKEHITYS 2D-PELIMOOTTOREIDEN VERTAILU JYVÄSKYLÄN YLIOPISTO TIETOJENKÄSITTELYTIETEIDEN LAITOS 2014 TIIVISTELMÄ Ylönen, Jani Videopelien historia ja pelinkehitys – 2D-pelimoottoreiden vertailu Jyväskylä: Jyväskylän yliopisto, 2014, 92 s. Tietojärjestelmätiede, Pro Gradu -tutkielma Ohjaaja: Puuronen, Seppo Videopelien historia alkoi 1940-luvun lopulta ja on 2010-luvulla nopeimmin kasvava viihdeteollisuuden ala, niin Suomessa kuin maailmanlaajuisestikin. Tekniikan kehittymisen myötä myös pelit ja niiden kehittäminen ovat muuttu- neet. Peleistä on tullut entistä laajempia ja näyttävämpiä, samalla kuitenkin ke- hityskustannukset ja kehitysajat ovat kasvaneet. Mobiililaitteet kuten älypuhe- limet ja tabletit, sekä digitaalinen jakelu ovat muuttaneet alaa 2000-luvulla, ja mahdollistaneet jälleen pienten studioiden menestymisen yksinkertaisilla peli- ideoilla. Pelinkehitysvälineiden kehittyminen on helpottanut ja nopeuttanut videopelien tekemistä, ja yksinkertaisimmilla pelimoottoreilla voidaan toteuttaa pelejä jopa ilman ohjelmointia. Tässä teoreettis-käsitteellisessä tutkielmassa pe- rehdytään kirjallisuuden pohjalta videopelien historiaan, niiden kehityksen muutoksiin sekä yleiskäyttöisiin pelinkehitysvälineisiin. Tutkimus selvittää ke- hityksessä käytettävien rajapintojen ja pelimoottoreiden käyttötarkoituksen, ja esittelee vuonna 2014 pelinkehittäjien keskuudessa viisi suosituinta pelimootto- ria. Tarkempaan tarkasteluun valikoituneissa kehitysvälineissä on kriteerinä käytetty kykyä alustariippumattomaan
    [Show full text]