Data Driven Visualization Tool for Game Telemetry Martin Engelbrektsson Marcus Lilja
Total Page:16
File Type:pdf, Size:1020Kb
LiU-ITN-TEK-A--17/055--SE Data Driven Visualization Tool for Game Telemetry Martin Engelbrektsson Marcus Lilja 2017-10-20 Department of Science and Technology Institutionen för teknik och naturvetenskap Linköping University Linköpings universitet nedewS ,gnipökrroN 47 106-ES 47 ,gnipökrroN nedewS 106 47 gnipökrroN LiU-ITN-TEK-A--17/055--SE Data Driven Visualization Tool for Game Telemetry Examensarbete utfört i Medieteknik vid Tekniska högskolan vid Linköpings universitet Martin Engelbrektsson Marcus Lilja Handledare Henry Fröcklin Examinator Stefan Gustavson Norrköping 2017-10-20 Upphovsrätt Detta dokument hålls tillgängligt på Internet – eller dess framtida ersättare – under en längre tid från publiceringsdatum under förutsättning att inga extra- ordinära omständigheter uppstår. Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för ickekommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ art. Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart. För ytterligare information om Linköping University Electronic Press se förlagets hemsida http://www.ep.liu.se/ Copyright The publishers will keep this document online on the Internet - or its possible replacement - for a considerable time from the date of publication barring exceptional circumstances. The online availability of the document implies a permanent permission for anyone to read, to download, to print out single copies for your own use and to use it unchanged for any non-commercial research and educational purpose. Subsequent transfers of copyright cannot revoke this permission. All other uses of the document are conditional on the consent of the copyright owner. The publisher has taken technical and administrative measures to assure authenticity, security and accessibility. According to intellectual property law the author has the right to be mentioned when his/her work is accessed as described above and to be protected against infringement. For additional information about the Linköping University Electronic Press and its procedures for publication and for assurance of document integrity, please refer to its WWW home page: http://www.ep.liu.se/ © Martin Engelbrektsson, Marcus Lilja LINKOPING¨ UNIVERSITY Abstract ITN Link¨oping University Master of Science Thesis by Martin Engelbrektsson and Marcus Lilja This thesis describes and evaluates the implementation of a telemetry tool prototype for the game engine Stingray. Arbitrary data can be chosen from a database and visualized in an interactive 3D viewport in the program. The implemented visualization method is a scatter plot with optional color mapping. A MongoDB server communicates with the editor via a native DLL written in C/C++ which in turn can send data to the rendering engine via JavaScript-Lua communication. Several implemented and continuously improved pipelines are discussed and analyzed throughout the report. The tool is designed to be data driven. Advantages and disad- vantages of doing so are discussed. In the final chapter future improvements and ideas of expanding the plug-in are discussed. Acknowledgements We would like to thank our thesis examiner Stefan Gustavson and assistant Henry Fr¨ocklin at Link¨oping University, for giving general directions and guidance for this master thesis and report. A big thank you goes to our supervisors Dan Engelbrecht and Andreas Asplund at Au- todesk for more project related advice and encouragement. We must of course also thank Jim Sagevid for all practical assistance with programming and interesting philosophical discussions. We would also like to thank Jonathan Schmidt and Sebastien Phaneuf from the Montreal team for their help with plug-in development. An extra thank you to Jonathan for his excellent plug-in tutorial - without which this project would have been much more difficult. ii Contents Abstract i Acknowledgements ii List of Figures v Abbreviations and Terminology vi 1 Introduction 1 1.1 Telemetry Tool for Autodesk Stingray .................... 1 1.2 Limitations ................................... 1 1.3 Research Questions ............................... 2 2 Related Work 3 2.1 Information Visualization for Archipelago Navigation (Visualisering av information vid navigering i sk¨argrd) .................... 3 2.2 Software Development of Visualization Tool for 3D Cameras . 3 2.3 Game Telemetry with DNA Tracking on Assassin’s Creed . 4 2.4 Game Development Telemetry (BioWare) .................. 5 2.5 Autodesk presents Warhammer: The End Times - Vermintide . 5 3 Background 7 3.1 Game Telemetry ................................ 7 3.2 Visualization .................................. 8 3.3 Stingray ..................................... 9 3.4 Editor ...................................... 10 3.4.1 Implementation in JavaScript ..................... 11 3.4.2 Mithril.js ................................ 11 3.4.3 View-Model Structure ......................... 12 3.4.4 User Interface Components ...................... 12 3.4.5 JavaScript to C Communication ................... 13 3.5 Engine ...................................... 13 3.5.1 Lua to C Communication ....................... 14 3.6 Plug-ins ..................................... 15 iii Contents iv 4 Implementation 17 4.1 Pipeline ..................................... 17 4.2 Editor ...................................... 18 4.2.1 Database Connection .......................... 18 4.2.2 Fetching Data .............................. 19 4.2.3 Visualization Options ......................... 21 4.3 Engine ...................................... 21 4.4 Data Visualization ............................... 22 5 Results 23 5.1 General Results ................................. 23 5.2 Fatshark-Specific Results ........................... 25 6 Discussion 28 6.1 The Work Process ............................... 28 6.2 Design Changes ................................. 30 6.2.1 MongoDB with Node.js Server or C API . 30 6.2.2 Data Driven Tool ............................ 32 6.3 Future Work .................................. 32 6.3.1 Finding Unique Keys in a Collection . 32 6.3.2 Filtering ................................. 33 6.3.3 Supporting Different Database Systems . 33 6.3.4 Database Optimization ........................ 33 6.3.5 UX and Visualization Methods .................... 34 7 Conclusion 35 7.1 How should the data pipeline be design for the tool? . 35 7.2 How generalized and data driven can a visualization tool be? What are the limitations? ................................. 36 Bibliography 37 List of Figures 3.1 Simplified illustration of Stingray’s structure. 10 3.2 Overview of how the engine interacts with plug-ins. 14 3.3 The Stingray program. Notice how all panels are separate plug-ins. 15 3.4 Overview of Stingrays plug-in communication for the editor. 16 4.1 The first pipeline design of the plugin. .................... 17 4.2 This list displays the available fields in the database for a certain collection. 20 5.1 The resulting design of the plugin. ...................... 23 5.2 A list of up to 1000 documents with all the values to the fields keys in the collection. .................................. 24 5.3 A sample of the test database with the keys id, position and scalar. 24 5.4 The Visualization GUI component with the different options. 25 5.5 Scatter plot visualization with the test database. 25 5.6 Scatter plot visualization with the test database and color scaling. 26 5.7 How the GUI looks when it is modified to work with the Fatshark database. 26 5.8 Scatter plot with Fatshark’s level Man the Ramparts and corresponding telemetry. .................................... 27 5.9 A scatter plot with color scaling enabled. 27 5.10 The default color of the boxes when the engine does not receive a valid scalar value. ................................... 27 6.1 The pipeline when using an external Node.js server. 30 6.2 The pipeline using native DLL:s instead of an external Node.js dependency. 31 6.3 The resulting data-driven pipeline. ...................... 32 v Abbreviations and Terminology IP Internet Protocol DLL Dynamic-Link Library API Application Programming Interface EULA End-User Licence Agreement Ad hoc A non-generalized solution designed for one specific application or purpose AAA Informal classification of video game productions with high budgets VR Virtual Reality DOM Document Object Model. HTML document interface MVC Model-View Controller. A design pattern UI User Interface UX User Experience JSON JavaScript Object Notation BSON Binary JSON OOP Object Oriented Programming DOD Data Oriented Design vi Chapter 1 Introduction 1.1 Telemetry Tool for Autodesk Stingray When developing a video game it is crucial to optimize both technology and design. It is critical to properly allocate resources performance-wise. A too detailed object might weight the performance down unnecessarily. It is also vital to design-wise understand player behaviour and how users interact with the game. Are certain areas to