Running Quake II on a Grid

Total Page:16

File Type:pdf, Size:1020Kb

Running Quake II on a Grid Running Quake II on a grid & As a genre of computer games, the massively multiplayer online game (MMOG) has the promise of enabling up to tens—or even hundreds—of thousands of simultaneous players. This paper describes how we began with an existing single-server online game engine and enhanced it to become a multiserver MMOG engine running on a grid. Other approaches require that a game be specifically designed to scale to MMOG G. Deen player levels. Our approach, using IBM OptimalGrid middleware (which provides an M. Hammer abstracted underlying grid infrastructure to an application) allowed us to reuse an J. Bethencourt existing game engine without the need to make any significant changes to it. In this I. Eiron paper we examine the design elements needed by an MMOG and provide a practical J. Thomas implementation example—the extension of the id Software Quake IIt game engine J. H. Kaufman using OptimalGrid middleware. A key feature of this work is the ability to programmatically partition a game world onto a dynamically chosen and sized set of servers, each serving one or more regions of the map, followed by the reintegration of the distributed game world into a seamless presentation for game clients. We explore novel features developed in this work and present results of our initial performance validation experiments with the resulting system. INTRODUCTION ness plan and renamed itself Emergent Game The computer game industry is deploying a new Technologies. At the time of the writing of this genre known as the massively multiplayer online paper, details about this new entity’s game archi- game (MMOG), characterized by large numbers of tecture were not available. The issues surrounding clients—ranging from several hundred to hundreds the building of MMOGs and large-scale virtual 2 of thousands—playing simultaneously. Until now, environments have become an area of interest and the creation of such a scalable game has been done study, with academia publishing studies on general 3 primarily by custom-designing game engines unique architecture, intelligent on demand provisioning, 4 to the specific MMOG. Efforts to create reusable server selection, distributed communications mod- MMOG game development and game engines have 1 been underway, Butterfly.net being an example of a ÓCopyright 2005 by International Business Machines Corporation. Copying in commercial game development environment for printed form for private use is permitted without payment of royalty provided that (1) each reproduction is done without alteration and (2) the Journal MMOGs. In its work, Butterfly.net obtained patents reference and IBM copyright notice are included on the first page. The title and abstract, but no other portions, of this paper may be copied or distributed related to the development of games and games royalty free without further permission by computer-based and other information-service systems. Permission to republish any other portion of the using grids. Subsequently, it has updated its busi- paper must be obtained from the Editor. 0018-8670/05/$5.00 Ó 2005 IBM IBM SYSTEMS JOURNAL, VOL 45, NO 1, 2006 DEEN ET AL. 21 5 6 els, distributed server location schemes, game specifically enhancing any one particular engine, artificial intelligence, and agent-based testing helping to broaden the applicability of the tech- frameworks for game developers. Additionally, the niques. application of MMOG technology to building large- 7 scale agent-based simulations for research on non- In this paper we report the results and lessons game-related commercial customer relationship learned in enhancing an existing single-server management systems is also underway. The com- multiplayer game engine to scale to the MMOG 8 plexities of large-scale group interactions within level. We chose the popular open-source Quake 12 online games, that is, exploring the communities II** game engine from id Software for this work, that come about within the virtual worlds of the but have attempted to develop reusable generalized games, has also become a topic of research. techniques in performing the enhancement. This enhancement was accomplished by using the 13 Many techniques have been developed to distribute OptimalGrid autonomic grid middleware from IBM both massively parallel applications and connected Research. This middleware was originally designed parallel applications, such as cellular automata and with scientific and engineering applications in mind; 9 finite element modeling. MMOGs—like other ap- however, the OptimalGrid object model and dy- plications that stress the resource limitations of a namic load-balancing features were easily adapted single system—are excellent candidates to which the to asynchronous online games. scalable computing power of grids can be applied, such as the approach taken by Emergent Technol- In this paper, we examine the key issues in 1 ogies and that presented in this paper. extending a game engine to running in a multiserver environment; we introduce the Quake II game MMOGs are especially demanding in their low engine and OptimalGrid middleware. We then communication-latency requirements. In comput- provide an overview of the resulting system, out- ing, as in other systems, increasing the number of lining its major components, followed by an parts, in this case the number of computers, exploration of the details of the design. We increases the likelihood of failure of a part. To introduce the runtime environment developed to provide a stable and long-lasting game for players, manage the execution of the MMOG game engine MMOGs running on a grid require fault tolerance and discuss the additional debugging challenges and dynamic load balancing, just like scientific grid inherent in a large distributed system, along with the applications. However, unlike scientific applications solutions we used. We then present the results of the that tolerate interruption for checkpoint and logging, performance experiments we performed on the online games do not permit interruption or latency system, and lastly, our conclusions and a brief degradation during load balancing or system main- outline of future work. tenance. MASSIVELY MULTIPLAYER ONLINE GAMES Because considerable performance optimization and Many types of parallel computational problems have game-play balancing have been done to single- been considered in research and implemented in server multiplayer engines such as id Software mature systems. They range from problems with 10,11 Quake** and Valve Half-Life**, it would be moderate connectivity, such as the simulation of desirable if the effort put into such engines could be finite element models, to massively parallel tasks, 14,15 reused to run MMOGs. Instead of designing new such as the search for optimal Golomb rulers. engines specifically for MMOGs, the reuse of MMOGs however, present a set of unique con- existing optimized engines would allow many of straints. Like many scientific simulations, the game today’s games to be scaled up to MMOG level and worlds found in MMOGs are often well-suited to allow game developers to continue using game division into spatial regions that may be run in engines with which they are familiar. Many popular parallel, albeit connected regions. engines apply similar architectures, offering the hope that techniques for scaling up of game engines Game-world partitioning to MMOG levels for one engine can be reapplied to Game worlds typically are continuous like the real other engines. Ideally, such scaling techniques world. This means that each spatial division has would be done in a generalized manner, rather than strong connectivity to the regions that neighbor 22 DEEN ET AL. IBM SYSTEMS JOURNAL, VOL 45, NO 1, 2006 (touch) it; actions and events in one region affect a single whiteboard as an intermediary, however, objects in neighboring regions. For example, a gun reduces the total connections to O(n), or one per fired in one region of the world may cause damage server. Of course, this improvement comes at the to a player in another region that lies along a line-of- cost of increasing latency in sending messages and sight path from the first. Long-range interactions limiting the collective bandwidth of all communi- between regions can exist, meaning in the example cation channels in the system to that of the that there may be multiple regions along the line-of- whiteboard. A more scalable approach is to use a sight path, with each region possibly being hosted number of whiteboards, each responsible for for- on a different server. Thus connectivity between warding messages between a set of servers that are regions is not limited to those that are ‘‘physically’’ nearby (in the sense of game-world regions). Each adjacent, but instead, connectivity exists between server then needs to connect only to several white- any region and all the regions that are visible to it. boards. For example, in long hallways and large open areas, a player’s local actions must be observable to Partition granularity players in any other visible region, regardless of A key problem involved in the partitioning of the which server is controlling that region. Any imple- game world is choosing the degree to which the mentation of spatial partitioning of the game world world is subdivided. For a one-time or static into discrete regions assigned to different servers partitioning of the game world, a significant trade- must provide a mechanism to propagate events to off must be made. If too few regions are used, then servers holding adjacent regions, and it must also fewer servers may be used, but regions can become have a mechanism to propagate such events along overloaded with players and other active entities. If the full path of connected regions, and events must too many regions are chosen, the area of the game be propagated in a timely manner so that no cause- world covered by a region becomes quite small. and-effect delay is introduced that exceeds that While this allows for more servers to be used, it can intended by the game designer or would be result in excessive data exchange among servers due experienced if the game regions were all hosted on a to the number of regions connected to each region; single server.
Recommended publications
  • Haxe Game Development Essentials
    F re e S a m p le Community Experience Distilled Haxe Game Development Essentials Create games on multiple platforms from a single codebase using Haxe and the HaxeFlixel engine Jeremy McCurdy In this package, you will find: The author biography A preview chapter from the book, Chapter 1 'Getting Started' A synopsis of the book’s content More information on Haxe Game Development Essentials About the Author Jeremy McCurdy is a game developer who has been making games using ActionScript, C#, and Haxe for over four years. He has developed games targeted at iOS, Android, Windows, OS X, Flash, and HTML5. He has worked on games that have had millions of gameplay sessions, and has built games for many major North American television networks. He is the games technical lead at REDspace, an award-winning interactive studio that has worked for some of the world's largest brands. They are located in Nova Scotia, Canada, and have been building awesome experiences for 15 years. Preface Developing games that can reach a wide audience can often be a serious challenge. A big part of the problem is fi guring out how to make a game that will work on a wide range of hardware and operating systems. This is where Haxe comes in. Over the course of this book, we'll look at getting started with Haxe and the HaxeFlixel game engine, build a side-scrolling shooter game that covers the core features you need to know, and prepare the game for deployment to multiple platforms. After completing this book, you will have the skills you need to start producing your own cross-platform Haxe-driven games! What this book covers Chapter 1, Getting Started, explains setting up the Haxe and HaxeFlixel development environment and doing a quick Hello World example to ensure that everything is working.
    [Show full text]
  • Master Thesis
    Faculty of Computer Science and Management Field of study: COMPUTER SCIENCE Specialty: Information Systems Design Master Thesis Multithreaded game engine architecture Adrian Szczerbiński keywords: game engine multithreading DirectX 12 short summary: Project, implementation and research of a multithreaded 3D game engine architecture using DirectX 12. The goal is to create a layered architecture, parallelize it and compare the results in order to state the usefulness of multithreading in game engines. Supervisor ...................................................... ............................ ……………………. Title/ degree/ name and surname grade signature The final evaluation of the thesis Przewodniczący Komisji egzaminu ...................................................... ............................ ……………………. dyplomowego Title/ degree/ name and surname grade signature For the purposes of archival thesis qualified to: * a) Category A (perpetual files) b) Category BE 50 (subject to expertise after 50 years) * Delete as appropriate stamp of the faculty Wrocław 2019 1 Streszczenie W dzisiejszych czasach, gdy społeczność graczy staje się coraz większa i stawia coraz większe wymagania, jak lepsza grafika, czy ogólnie wydajność gry, pojawia się potrzeba szybszych i lepszych silników gier, ponieważ większość z obecnych jest albo stara, albo korzysta ze starych rozwiązań. Wielowątkowość jest postrzegana jako trudne zadanie do wdrożenia i nie jest w pełni rozwinięta. Programiści często unikają jej, ponieważ do prawidłowego wdrożenia wymaga wiele pracy. Według mnie wynikający z tego wzrost wydajności jest warty tych kosztów. Ponieważ nie ma wielu silników gier, które w pełni wykorzystują wielowątkowość, celem tej pracy jest zaprojektowanie i zaproponowanie wielowątkowej architektury silnika gry 3D, a także przedstawienie głównych systemów używanych do stworzenia takiego silnika gry 3D. Praca skupia się na technologii i architekturze silnika gry i jego podsystemach wraz ze strukturami danych i algorytmami wykorzystywanymi do ich stworzenia.
    [Show full text]
  • Building a Java First-Person Shooter
    3D Java Game Programming – Episode 0 Building a Java First-Person Shooter Episode 0 [Last update: 5/03/2017] These notes are intended to accompany the video sessions being presented on the youtube channel “3D Java Game Programming” by youtube member “The Cherno” at https://www.youtube.com/playlist?list=PL656DADE0DA25ADBB. I created them as a way to review the material and explore in more depth the topics presented. I am sharing with the world since the original work is based on material freely and openly available. Note: These notes DO NOT stand on their own, that is, I rely on the fact that you viewed and followed along the video and may want more information, clarification and or the material reviewed from a different perspective. The purpose of the videos is to create a first-person shooter (FPS) without using any Java frameworks such as Lightweight Java Game Library (LWJGL), LibGDX, or jMonkey Game Engine. The advantages to creating a 3D FPS game without the support of specialized game libraries that is to limit yourself to the commonly available Java classes (not even use the Java 2D or 3D APIs) is that you get to learn 3D fundamentals. For a different presentation style that is not geared to following video episodes checkout my notes/book on “Creating Games with Java.” Those notes are more in a book format and covers creating 2D and 3D games using Java in detail. In fact, I borrow or steal from these video episode notes quite liberally and incorporate into my own notes. Prerequisites You should be comfortable with basic Java programming knowledge that would be covered in the one- semester college course.
    [Show full text]
  • GWT + HTML5 Can Do What? (Google I/O 2010)
    GWT + HTML5 Can Do What!? Ray Cromwell, Stefan Haustein, Joel Webber May 2010 View live notes and ask questions about this session on Google Wave http://bit.ly/io2010-gwt6 Overview • HTML5 and GWT • Demos 1. Eyes 2. Ears 3. Guns What is HTML5 • Formal definition o Best practices for HTML interpretation o Audio and Video elements o Other additional elements • Colloquial meaning o Canvas o WebGL o WebSockets o CSS 3 o LocalStorage o et al GWT support for HTML5 • Very easy to build Java wrappers • Many already exist in open-source projects • Will be moving many of these into GWT proper (~2.2) • Not part of GWT core yet • GWT has always strived to be cross-browser • Most new features are not available on all browsers WebGL • OpenGL ES 2.0, made Javascript-friendly • Started by Canvas3D work at Mozilla • Spread to Safari and Chrome via WebKit • Canvas.getContext("webgl"); WebGL Differences to OpenGL 1.x • No fixed function pipeline (no matrix operations, no predefined surface models) • Supports the GL Shader Language (GLSL) o Extremely flexible o Can be used for fast general computation, too • Distinct concepts of native arrays and buffers o Buffers may be stored in graphics card memory o Arrays provide element-wise access from JS o Data from WebGL Arrays needs to be copied to WebGL buffers before it can be be used in graphics operations Eyes: Image Processing Image Processing Photoshop Filters in the Browser • Work on megapixel images • At interactive frame rates • Provide general purpose operations o scale, convolve, transform, colorspace
    [Show full text]
  • Introducing 2D Game Engine Development with Javascript
    CHAPTER 1 Introducing 2D Game Engine Development with JavaScript Video games are complex, interactive, multimedia software systems. These systems must, in real time, process player input, simulate the interactions of semi-autonomous objects, and generate high-fidelity graphics and audio outputs, all while trying to engage the players. Attempts at building video games can quickly be overwhelmed by the need to be well versed in software development as well as in how to create appealing player experiences. The first challenge can be alleviated with a software library, or game engine, that contains a coherent collection of utilities and objects designed specifically for developing video games. The player engagement goal is typically achieved through careful gameplay design and fine-tuning throughout the video game development process. This book is about the design and development of a game engine; it will focus on implementing and hiding the mundane operations and supporting complex simulations. Through the projects in this book, you will build a practical game engine for developing video games that are accessible across the Internet. A game engine relieves the game developers from simple routine tasks such as decoding specific key presses on the keyboard, designing complex algorithms for common operations such as mimicking shadows in a 2D world, and understanding nuances in implementations such as enforcing accuracy tolerance of a physics simulation. Commercial and well-established game engines such as Unity, Unreal Engine, and Panda3D present their systems through a graphical user interface (GUI). Not only does the friendly GUI simplify some of the tedious processes of game design such as creating and placing objects in a level, but more importantly, it ensures that these game engines are accessible to creative designers with diverse backgrounds who may find software development specifics distracting.
    [Show full text]
  • Collaborative Design: Integrating Game Engine to Online Interactive Presentation Tool
    COLLABORATIVE DESIGN: INTEGRATING GAME ENGINE TO ONLINE INTERACTIVE PRESENTATION TOOL RAKTUM SALLKACHAT, ARAYA CHOUTGRAJANK Master of Science Program in Computer-Aided Architectural Design Rangsit University, Thailand. [email protected]; [email protected] Abstract. In this research, we aim at the development of a computer- aided collaborative design tool, which supports the online architectural presentation independently from computer platforms and locations. Users are enabled to access the system and collaborate among working team via the Internet. Various online 3D Game engines are explored and evaluated. One 3D Game engine is selected and used as a base engine for the collaborative tool development. The application development will specifically concentrate on real-time presentation, shared representation and understanding among design teams and project owner. Traditional architectural design presentation in collaboration process will be imitated and transformed into digital age online presentation. 1. Introduction Traditionally, design collaboration between designers and clients used to be simply managed by using sketch, two-dimensional drawing, architectural model, and perspective drawing. These traditional tools are essential in architectural design process since they represents some forms of prototypes, which help architects in understanding clients’ needs as well as designing and developing projects that match clients’ expectation. In this information age, computer technology has been playing an important role and gradually replacing the traditional tools. Outcomes from this new digital tool are so real that customers could convincingly experience the design prior to actual construction. The development of architectural-specific application, especially 3-D presentation application, are complex and would need high-end system in both development and implementation phases.
    [Show full text]
  • Re-Purposing Commercial Entertainment Software for Military Use
    Calhoun: The NPS Institutional Archive Theses and Dissertations Thesis Collection 2000-09 Re-purposing commercial entertainment software for military use DeBrine, Jeffrey D. Monterey, California. Naval Postgraduate School http://hdl.handle.net/10945/26726 HOOL NAV CA 9394o- .01 NAVAL POSTGRADUATE SCHOOL Monterey, California THESIS RE-PURPOSING COMMERCIAL ENTERTAINMENT SOFTWARE FOR MILITARY USE By Jeffrey D. DeBrine Donald E. Morrow September 2000 Thesis Advisor: Michael Capps Co-Advisor: Michael Zyda Approved for public release; distribution is unlimited REPORT DOCUMENTATION PAGE Form Approved OMB No. 0704-0188 Public reporting burden for this collection of information is estimated to average 1 hour per response, including the time for reviewing instruction, searching existing data sources, gathering and maintaining the data needed, and completing and reviewing the collection of information. Send comments regarding this burden estimate or any other aspect of this collection of information, including suggestions for reducing this burden, to Washington headquarters Services, Directorate for Information Operations and Reports, 1215 Jefferson Davis Highway, Suite 1204, Arlington, VA 22202-4302, and to the Office of Management and Budget, Paperwork Reduction Project (0704-0188) Washington DC 20503. 1 . AGENCY USE ONLY (Leave blank) 2. REPORT DATE REPORT TYPE AND DATES COVERED September 2000 Master's Thesis 4. TITLE AND SUBTITLE 5. FUNDING NUMBERS Re-Purposing Commercial Entertainment Software for Military Use 6. AUTHOR(S) MIPROEMANPGS00 DeBrine, Jeffrey D. and Morrow, Donald E. 8. PERFORMING 7. PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES) ORGANIZATION REPORT Naval Postgraduate School NUMBER Monterey, CA 93943-5000 9. SPONSORING / MONITORING AGENCY NAME(S) AND ADDRESS(ES) 10. SPONSORING/ Office of Economic & Manpower Analysis MONITORING AGENCY REPORT 607 Cullum Rd, Floor IB, Rm B109, West Point, NY 10996-1798 NUMBER 11.
    [Show full text]
  • Quake Manual
    The Story QUAKE Background: You get the phone call at 4 a.m. By 5:30 you're in the secret installation. The commander explains tersely, "It's about the Slipgate device. Once we perfect these, we'll be able to use them to transport people and cargo from one place to another instantly. "An enemy codenamed Quake, is using his own slipgates to insert death squads inside our bases to kill, steal, and kidnap. "The hell of it is we have no idea where he's from. Our top scientists think Quake's not from Earth, but another dimension. They say Quake's preparing to unleash his real army, whatever that is. "You're our best man. This is Operation Counterstrike and you're in charge. Find Quake, and stop him ... or it ... You have full authority to requisition anything you need. If the eggheads are right, all our lives are expendable." Prelude to Destruction: While scouting the neighborhood, you hear shots back at the base. Damn, that Quake bastard works fast! He heard about Operation Counterstrike, and hit first. Racing back, you see the place is overrun. You are almost certainly the only survivor. Operation Counterstrike is over. Except for you. You know that the heart of the installation holds a slipgate. Since Quake's killers came through, it is still set to his dimension. You can use it to get loose in his hometown. Maybe you can get to the asshole personally. You pump a round into your shotgun, and get moving. System Requirements General Quake System Requirements IBM PC and Compatible Computers Pentium 75 MHz processor or better (absolutely must have a Math Co-Processor!) VGA Compatible Display or better Windows 95 Operation: 16MB RAM minimum, 24MB+ recommended CD-ROM drive required Hard Drive Space Needed: 80 MB Specialized Requirements For WinQuake (WINQUAKE.EXE): Windows 95/98/ME/NT/2000 For GLQuake (GLQUAKE.EXE): Windows 95/98/ME/NT/2000 Open GL Compatible Video Card GLQUAKE supports most 100% fully OpenGL compliant 3D accelerator cards.
    [Show full text]
  • Quake Three Download
    Quake three download Download ioquake3. The Quake 3 engine is open source. The Quake III: Arena game itself is not free. You must purchase the game to use the data and play. While the first Quake and its sequel were equally divided between singleplayer and multiplayer portions, id's Quake III: Arena scrapped the. I fucking love you.. My car has a Quake 3 logo vinyl I got a Quake 3 logo tatoo on my back I just ordered a. Download Demo Includes 2 items: Quake III Arena, QUAKE III: Team Arena Includes 8 items: QUAKE, QUAKE II, QUAKE II Mission Pack: Ground Zero. Quake 3 Gold Free Download PC Game setup in single direct link for windows. Quark III Gold is an impressive first person shooter game. Quake III Arena GPL Source Release. Contribute to Quake-III-Arena development by creating an account on GitHub. Rust Assembly Shell. Clone or download. Quake III Arena, free download. Famous early 3D game. 4 screenshots along with a virus/malware test and a free download link. Quake III Description. Never before have the forces aligned. United by name and by cause, The Fallen, Pagans, Crusaders, Intruders, and Stroggs must channel. Quake III: Team Arena takes the awesome gameplay of Quake III: Arena one step further, with team-based play. Run, dodge, jump, and fire your way through. This is the first and original port of ioquake3 to Android available on Google Play, while commercial forks are NOT, don't pay for a free GPL product ***. Topic Starter, Topic: Quake III Arena Downloads OSP a - Download Aerowalk by the Preacher, recreated by the Hubster - Download.
    [Show full text]
  • Level Design Histories and Futures”
    Level Design in a Day: “Level Design Histories and Futures” Robert Yang @radiatoryang About this talk ● Concepts and language to help you be critical about “level design” ● Not about “how to do level design” ● Heavy bias toward 3D character-based games (like everyone else) (The PERFECT level designer?) (one can dream...) Four (4) possible dimensions of contemporary level design ● as a material, as data ● as industrial process ● as architectural space ● as community politics 1:1: LevelLevel designdesign asas MATERIALS,MATERIALS, CONSTRUCTION,CONSTRUCTION, andand DATADATA “LEVEL” = a bunch of data (asset) that references a bunch of other data (other assets) “LEVEL EDITOR” = software that enables human visualization and modification of this data LEVEL EDITOR HISTORY: text editor as level editor LEVEL EDITOR HISTORY: studying tool interfaces / workflow LEVEL EDITOR HISTORY: one 2D floorplan pane AutoCAD (1982) DoomEd (~1992?) LEVEL EDITOR HISTORY: the asset browser Hammer (2004) Hammer (2006?) LEVEL EDITOR HISTORY: 3 pane, 3D preview + floorplan + elevation QuakeEd (1996) (great ancestor of “Radiant” level editors) LEVEL EDITOR HISTORY: mouse-look / WASD more emphasis on 3D camera view, more emphasis on “wandering” as workflow LEVEL EDITOR HISTORY: 4 pane, 3D preview + 2D ortho views 3D Studio (1990) Worldcraft (Hammer) (1996-2012?) Unreal Dev Kit (UE3, 2009) LEVEL EDITOR HISTORY: (from left to right:) - Unity one big interactive 3D view - Unreal 4 - SketchUp to rule them all and in the darkness bind them - Trenchbroom (Quake 1) - CryEngine3
    [Show full text]
  • Mining Software Repositories to Assist Developers and Support Managers
    Mining Software Repositories to Assist Developers and Support Managers by Ahmed E. Hassan A thesis presented to the University of Waterloo in fulfilment of the thesis requirement for the degree of Doctor of Philosophy in Computer Science Waterloo, Ontario, Canada, 2004 c Ahmed E. Hassan 2004 I hereby declare that I am the sole author of this thesis. This is a true copy of the thesis, including any required final revisions, as accepted by my examiners. I understand that my thesis may be made electronically available to the public. ii Abstract This thesis explores mining the evolutionary history of a software system to support software developers and managers in their endeavors to build and maintain complex software systems. We introduce the idea of evolutionary extractors which are special- ized extractors that can recover the history of software projects from soft- ware repositories, such as source control systems. The challenges faced in building C-REX, an evolutionary extractor for the C programming lan- guage, are discussed. We examine the use of source control systems in industry and the quality of the recovered C-REX data through a survey of several software practitioners. Using the data recovered by C-REX, we develop several approaches and techniques to assist developers and managers in their activities. We propose Source Sticky Notes to assist developers in understanding legacy software systems by attaching historical information to the depen- dency graph. We present the Development Replay approach to estimate the benefits of adopting new software maintenance tools by reenacting the development history. We propose the Top Ten List which assists managers in allocating test- ing resources to the subsystems that are most susceptible to have faults.
    [Show full text]
  • Are Game Engines Software Frameworks?
    ? Are Game Engines Software Frameworks? A Three-perspective Study a < b c c Cristiano Politowski , , Fabio Petrillo , João Eduardo Montandon , Marco Tulio Valente and a Yann-Gaël Guéhéneuc aConcordia University, Montreal, Quebec, Canada bUniversité du Québec à Chicoutimi, Chicoutimi, Quebec, Canada cUniversidade Federal de Minas Gerais, Belo Horizonte, Brazil ARTICLEINFO Abstract Keywords: Game engines help developers create video games and avoid duplication of code and effort, like frame- Game-engine works for traditional software systems. In this paper, we explore open-source game engines along three Framework perspectives: literature, code, and human. First, we explore and summarise the academic literature Video-game on game engines. Second, we compare the characteristics of the 282 most popular engines and the Mining 282 most popular frameworks in GitHub. Finally, we survey 124 engine developers about their expe- Open-source rience with the development of their engines. We report that: (1) Game engines are not well-studied in software-engineering research with few studies having engines as object of research. (2) Open- source game engines are slightly larger in terms of size and complexity and less popular and engaging than traditional frameworks. Their programming languages differ greatly from frameworks. Engine projects have shorter histories with less releases. (3) Developers perceive game engines as different from traditional frameworks. Generally, they build game engines to (a) better control the environ- ment and source code, (b) learn about game engines, and (c) develop specific games. We conclude that open-source game engines have differences compared to traditional open-source frameworks al- though this differences do not demand special treatments.
    [Show full text]