A Haxe Implementation of Essential Opengl Examples Using Duell Tool

Total Page:16

File Type:pdf, Size:1020Kb

A Haxe Implementation of Essential Opengl Examples Using Duell Tool A Haxe Implementation of Essential OpenGL Examples Using Duell Tool Bachelor Arbeit Alexis Iakovenko-Marinitch Fachbereich Mathematik und Informatik Institut f¨urInformatik Freie Universit¨atBerlin, Deutschland July 29, 2016 Gutachter: Prof. Dr. Tim Landgraf und Dipl. Inf. Till Zoppke Betreuer: Dipl. Inf. Till Zoppke Externer Betreuer: Sven Otto, GameDuell GmbH Selbstst¨andigkeitserkl¨arung Hiermit best¨atigeich, dass ich die vorliegende Ausarbeitung mit dem Titel A Haxe Implementation of Essential OpenGL Examples Using Duell Tool selbstst¨andigund ohne unerlaubte Hilfe angefertigt habe. Ich versichere, dass ich ausschließlich die angegebenen Quellen in Anspruch genom- men habe. Statement of Authorship I declare that this thesis entitled A Haxe Implementation of Essential OpenGL Ex- amples Using Duell Tool is the result of my own research except as cited in the references. The thesis has not been accepted for any degree and is not concurrently submitted in candidature of any other degree. Except where acknowledged in the customary manner, the material presented in this thesis is, to the best of my knowl- edge, original and has not been submitted in whole or part for a degree in any university. Alexis Iakovenko-Marinitch Berlin, July 29, 2016 Abstract With the augmenting variety of platforms on the market, supporting as many of them became an inevitable obstacle to confront in order to reach as many users as possible. Platforms support different native languages, such as Java for Android or Objective-C for iOS. The most straight-forward way to support both of these platforms is to produce native codes for each of them, which is greatly cost and time consuming. There are several tools to avoid programming in the native languages of targeted platforms and to achieve cross-platform programming, but using them generally results in a performance loss. For video games, such a loss can be critical, which is why native programming is favored in order to get the best performance possible from the targeted platforms. In this paper we investigate the productivity and efficiency of cross-platform pro- gramming with Haxe by reimplementing essential OpenGL features while targeting two platforms at the same time, Android and Windows. The result of our research showed that, while the consumed time in programming cost trivially less effort than native coding on each of the different platforms, Haxe did not engender any significant performance loss. To deepen this investigation, expanding the scenes' complexity or making an ac- tual game would put the devices to test in more extreme conditions. Contents 1 Introduction 1 1.1 Motivation . .1 1.2 Problem . .2 1.3 Plan . .3 2 Haxe and Duell Tool 5 2.1 Haxe . .5 2.2 Duell Tool . .6 2.2.1 Running a project with Duell . .6 3 OpenGL 7 3.1 Introduction . .7 3.2 OpenGL ES . .7 3.3 The flow of an OpenGL program . .8 3.3.1 Initialization . .8 3.3.2 Updating and rendering cycle . .9 3.3.3 Destroying . .9 3.4 Shading . .9 3.4.1 Vertex Shader . .9 3.4.2 Fragment Shader . 10 3.5 OpenGL in Haxe with DuellKit . 10 4 The Examples 13 4.1 Hello World! . 13 4.1.1 The triangle . 14 4.1.2 The colors . 14 4.2 3D scene . 15 4.2.1 The 3D Objects . 15 4.2.2 The Lighting . 16 4.2.3 The Texturing . 16 4.3 Text . 16 4.3.1 Bitmap Font Rendering . 18 5 Implementation 19 5.1 Global structure . 19 5.2 Triangle . 19 5.2.1 Vertex and Index buffers . 19 7 5.2.2 Rendering . 20 5.3 3D model and lighting . 22 5.3.1 .Obj Format . 22 5.3.2 Model, view and projection matrices . 26 5.3.3 Texturing . 29 5.3.4 Lighting . 30 5.3.5 Final output . 34 5.4 Text . 34 5.4.1 Texture map . 35 5.4.2 Texture coordinates . 35 5.4.3 Background . 37 5.4.4 Final output . 38 6 Testing and evaluation 39 6.1 Triangle . 39 6.1.1 Features . 39 6.1.2 Performances . 40 6.1.3 Conclusion . 40 6.2 3D model and lighting . 40 6.2.1 Features . 41 6.2.2 Performances . 41 6.2.3 Conclusion . 41 6.3 Text . 41 6.3.1 Features . 41 6.3.2 Performances . 42 6.3.3 Conclusion . 42 7 Summing up and perspectives 43 Bibliography 45 List of Figures 3.1 In green the Index Buffer’s content. In blue the vertices coordinates.9 4.1 The first PowerVR example . 13 4.2 The second PowerVR example . 15 4.3 The third PowerVR example . 16 4.4 Parameters of a single character . 17 4.5 Texture map for a geometry of quads . 18 5.1 Result of the first example . 22 5.2 The UV mapping of a cube in Blender . 24 5.3 The UV map for a human . 24 5.4 The looks of the texture and the final model . 25 5.5 Three teapots set in World Space . 26 5.6 On the Left two teapots and a camera in World Space; On the right ev- erything is transformed into View Space (World Space is represented only to help visualize the transformation) . 27 5.7 Perspective Projection . 28 5.8 A lit and an unlit sphere . 30 5.9 .obj 3D object textured and lit . 34 5.10 Texture atlas . 35 5.11 Tile, Tile width, letter width . 36 5.12 Texture for the background . 37 5.13 Bitmap Text output . 38 6.1 Comparison between example 1 and its implementation . 39 6.2 Comparison between example 2 and its implementation . 40 6.3 Comparison between example 3 and its implementation . 42 Chapter 1 Introduction A graphic engine is a part of a program responsible for the rendering of 2D or 3D computer graphics of an application[1]. It can achieve several goals. Most of the time, a graphic engine facilitates the work of a developer, so that he can focus on the actual application's functionalities. For example, a game developer should not burden himself with the rendering technology behind his game, but concentrate on the game mechanics, logics and implementation instead[2]. But rendering something on the screen is not enough. A graphic engine must fulfill specific requirements, depending on the application a developer wants to make. To cover the majority of their users' needs and allow them to be used for different projects and contexts, graphic engines should be easy to use and offer a large variety of functionalities and tools. Some noteworthy technologies are: texturing, loading 3D models, shaders, lighting, shadows, transparency, particle system, fog, reflection, text/UI rendering. [3, 4, 5] However offering these tools is not the only challenge a graphic engine must overcome. In addition to producing pretty images on the screen, the rendering process must happen efficiently. For our use case, games, the rendering happens in real-time and must be achieved in fractions of seconds so that the animations and game mechanics appear fluid to the player, giving him the best experience possible. To that effect, constructing a graphic engine requires an enormous amount of work and versatile expertises in the computer science sector. 1.1 Motivation Because of the never ending improvements of graphics processing units, 3D is not only a standard for PCs but also for mobiles[6, 7]. There are several different popular platforms[8, 9] on the market which make it profitable to create multi-platform code and develop softwares which will work on as many devices as possible. More and more 2D and 3D cross-platform games and graphic engines are being created and are arousing important interest around them[10]. However adding support for an additional platform can require a lot more programming hours and severe additional costs. There are many reasons for this. Different platforms require programming in different languages: Java for Android, Objective-C/Swift for iOS and so on[11, 12]. This means programming the same features multiple times and the mastering of different programming languages is necessary. To resolve this problem, there exist lots of tools which help the developer with one code to create software working 1 Chapter 1 Introduction on multiple devices[13, 14]. Generally those tools reduce the programming time drastically, but show significant drops in performance. The main goal of this thesis is to show that using multi-platform tools is a viable option for developing a cross- platform graphic engine. 1.2 Problem In order to investigate the viability of programming a cross-platform graphic engine with multi-platform tools, we decided to approach a company that is using such tools everyday. GameDuell GmbH is a company developing video games accross multiple plat- forms, such as iOS, Android, Facebook and web [15]. With the aim of solving the problem of cross-platform developing, GameDuell is using a cross-platform pro- gramming language called Haxe [16]. The company published succesful 2D cross- platform games [15, 17] coded with Haxe, using a tool they made to facilitate the cross-platform development, the Duell Tool, which provides build plugins for iOS, Android, Flash and HTML5. They are very confident with the resulting productiv- ity when using Haxe and the Duell Tool for 2D games, yet for the third dimension, they are still in the research phase. With the purpose of contributing to their research, we will use the Haxe multi- platform programming language combined with the Duell Tool and show that the gain in required development time of a graphic engine's fundamental 3D features significantly outweighs the loss of performance resulting from the multi-platform programming.
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]
  • 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]
  • Shiva's Waterfront Temples
    Shiva’s Waterfront Temples: Reimagining the Sacred Architecture of India’s Deccan Region Subhashini Kaligotla Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in the Graduate School of Arts and Sciences COLUMBIA UNIVERSITY 2015 © 2015 Subhashini Kaligotla All rights reserved ABSTRACT Shiva’s Waterfront Temples: Reimagining the Sacred Architecture of India’s Deccan Region Subhashini Kaligotla This dissertation examines Deccan India’s earliest surviving stone constructions, which were founded during the 6th through the 8th centuries and are known for their unparalleled formal eclecticism. Whereas past scholarship explains their heterogeneous formal character as an organic outcome of the Deccan’s “borderland” location between north India and south India, my study challenges the very conceptualization of the Deccan temple within a binary taxonomy that recognizes only northern and southern temple types. Rejecting the passivity implied by the borderland metaphor, I emphasize the role of human agents—particularly architects and makers—in establishing a dialectic between the north Indian and the south Indian architectural systems in the Deccan’s built worlds and built spaces. Secondly, by adopting the Deccan temple cluster as an analytical category in its own right, the present work contributes to the still developing field of landscape studies of the premodern Deccan. I read traditional art-historical evidence—the built environment, sculpture, and stone and copperplate inscriptions—alongside discursive treatments of landscape cultures and phenomenological and experiential perspectives. As a result, I am able to present hitherto unexamined aspects of the cluster’s spatial arrangement: the interrelationships between structures and the ways those relationships influence ritual and processional movements, as well as the symbolic, locative, and organizing role played by water bodies.
    [Show full text]
  • K-12 Workforce Development in Transportation Engineering at FIU (2012- Task Order # 005)
    K-12 Workforce Development in Transportation Engineering at FIU (2012- Task Order # 005) 2016 Final Report K-12 Workforce Development in Transportation Engineering at FIU (2012- Task Order # 005) Berrin Tansel, Ph.D., P.E., Florida International University August 2016 1 K-12 Workforce Development in Transportation Engineering at FIU (2012- Task Order # 005) This page is intentionally left blank. i K-12 Workforce Development in Transportation Engineering at FIU (2012- Task Order # 005) U.S. DOT DISCLAIMER The contents of this report reflect the views of the authors, who are responsible for the facts, and the accuracy of the information presented herein. This document is disseminated under the sponsorship of the U.S. Department of Transportation’s University Transportation Centers Program, in the interest of information exchange. The U.S. Government assumes no liability for the contents or use thereof. ACKNOWLEDGEMENT OF SPONSORSHIP This work was sponsored by a grant from the Southeastern Transportation Research, Innovation, Development and Education Center (STRIDE) at the University of Florida. The STRIDE Center is funded through the U.S. Department of Transportation’s University Transportation Centers Program. ii K-12 Workforce Development in Transportation Engineering at FIU (2012- Task Order # 005) TABLE OF CONTENTS ABSTRACT ...................................................................................................................................................... v CHAPTER 1: INTRODUCTION ........................................................................................................................
    [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]
  • Full Stack Developer, Javascript Hacker
    Full Stack Developer, Javascript Hacker Our vision We believe in ad supported content. But digital advertising has gone too far and users are reacting to legitimate threats around privacy, data usage, and at times, the unreasonably high exposure to ads. Secret Media provides publishers and advertisers with a sustainable solution to monetize and reach ad-blocked traffic, in respect with users privacy and browsing experience. By helping premium publishers manage the rise of adblocking, we help 3 billion internet users to access free information and we help journalists maintain their independence. We have been funded by the best French serial entrepreneurs and our headquarters are in ​ NYC, with an office for the tech team in Paris. We are open to remote (in French or English), our tools and development process are ready for this as we already have one developer working remotely and coming to Paris offices twice a month. We’re looking for a well-rounded and passionate full stack developer with a capacity to hack the ad tech industry. If you’re interested in working on all layers of a complex system from developing systems to intercept and encrypt calls on the client side to creating flexible and scalable proxy architectures transforming the JS scripts on the fly then Secret Media is for you! You will contribute to an environment that enables you to do your best engineering work, and you’ll do it with new web standards and frameworks like Haxe, Javascript (all flavors), Node.js, ​ ​ ElasticSearch and many CI tools. We encourage automation of tests, builds, deploys and analytics for feedback to continuously improve the product.
    [Show full text]
  • BATIK DIGITAL” (The “Initiative”)
    1. Title. This initiative is known as “Digital Content Technology Infrastructure Support Programme “BATIK DIGITAL” (the “Initiative”). 2. Objectives. Key objectives of the Initiative are as follows: a) To ensure Digital Creative Content companies business continuity by leveraging latest technology in operating business and seize economic opportunities; b) To encourage Digital Creative Content companies investing additional resources in maintaining effectiveness and credibility in securing jobs and maintaining the current workforces; c) To support Digital Creative Content companies in maintaining content production quality, data security and consistency of deliverables despite working away from their studio; and d) To establish sustainability of creative technology ecosystem and might minimise the gap among industry player for them to move forward in the economy value chain. 3. Scope of Incentive The Incentive is to reimburse the cost incurred by the approved Applicant (“Recipient”) for purchasing one or more of the software or technology solution listed in Paragraph 7.0 below for the following purposes: a) Financial support for active digital creative content studios based on company size; and/or b) New / additional / renewal design / development / communication software subscription related to digital creative content activities. 4. Incentive Amount. Incentive amount based on number of employee category limit: a) Category A: 5 – 30 employees; Up to RM 10,000 b) Category B: 31 – 100 employees; Up to RM 20,000 c) Category C: 101 and above employees; Up to RM 40,000 5. Closing Date. The closing date of the Program for ALL categories are as follows: Batch 1 Batch 2 Batch 3 15 April 202 @ 6.00pm 30 April 2021 @ 6.00pm 25 May 2021 @ 6.00pm 6.
    [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]
  • 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]
  • Domain Adaptation of Unreal Images for Image Classification
    Master of Science Thesis in Electrical Engineering Department of Electrical Engineering, Linköping University, 2019 Domain Adaptation of Unreal Images for Image Classification Johan Thornström Master of Science Thesis in Electrical Engineering Domain Adaptation of Unreal Images for Image Classification: Johan Thornström LiTH-ISY-EX–20/5282–SE Supervisor: Gustav Häger isy, Linköping University David Gustafsson FOI Erik Valldor FOI Examiner: Per-Erik Forssén isy, Linköping University Computer Vision Laboratory Department of Electrical Engineering Linköping University SE-581 83 Linköping, Sweden Copyright © 2019 Johan Thornström Abstract Deep learning has been intensively researched in computer vision tasks like im- age classification. Collecting and labeling images that these neural networks are trained on is labor-intensive, which is why alternative methods of collecting im- ages are of interest. Virtual environments allow rendering images and automatic labeling, which could speed up the process of generating training data and re- duce costs. This thesis studies the problem of transfer learning in image classification when the classifier has been trained on rendered images using a game engine and tested on real images. The goal is to render images using a game engine to create a classifier that can separate images depicting people wearing civilian clothing or camouflage. The thesis also studies how domain adaptation techniques using generative adversarial networks could be used to improve the performance of the classifier. Experiments show that it is possible to generate images that can be used for training a classifier capable of separating the two classes. However, the experiments with domain adaptation were unsuccessful. It is instead recom- mended to improve the quality of the rendered images in terms of features used in the target domain to achieve better results.
    [Show full text]
  • GAME CAREER GUIDE July 2016 Breaking in the Easy(Ish) Way!
    TOP FREE GAME TOOLS JULY 2016 GAME FROM GAME EXPO TO GAME JOB Indie intro to VR Brought to you by GRADUATE #2 PROGRAM JULY 2016 CONTENTS DEPARTMENTS 4 EDITOR’S NOTE IT'S ALL ABOUT TASTE! 96 FREE TOOLS FREE DEVELOPMENT TOOLS 2016 53 GAME SCHOOL DIRECTORY 104 ARRESTED DEVELOPMENT There are tons of options out there in terms INDIE DREAMIN' of viable game schools, and this list is just the starting point to get you acquainted with the schools near you (or far from you, if that’s what STUDENT POSTMORTEM you prefer!). 32 BEGLITCHED 72 VIRTUALLY DESIGNED NYU Game Center students Alec Thomson and Jennu Jiao Hsia discuss their IGF Award- VR has quickly moved from buzzword, to proto- winning match three game about insecurity type, to viable business. This guide will help you within computers, and within ourselves. get started in VR development, avoiding some common pitfalls. FEATURES 78 SOUNDS GOOD TO ME! 8 BREAKING IN THE EASY(ISH) WAY! Advice for making audio (with or without) How attending expos can land you a job. an audio specialist. 18 ZERO TO HERO Hey! You want to learn low poly modeling but 84 A SELLER’S MARKET don’t know where to start? Look no further! Marketing fundamentals for your first game. With this guide, we hope to provide a good introduction to not only the software, but 90 INTRO TO GAME ENGINES also the concepts and theory at play. A brief discussion of some of the newest and most popular DO YOU NEED A PUBLISHER? 34 game engines.
    [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]