2D Game Engine

Total Page:16

File Type:pdf, Size:1020Kb

2D Game Engine BeEngine: 2D Game Engine Final University Project Video Games Design and Development Degree, UPC Student: Sunyer Caldú, Guillem Student’s plan from 2019 Director: Díaz García, Jesús Sunyer Caldú, Guillem BeEngine: 2D Game Engine Summary This document contains the description of the development of a C++ game engine named BeEngine, as the final university project. The engine is focused on 2D game development and aims to provide all the necessary components and tools to create and deploy a video game from start to finish. The result is a standalone program that can be executed in any Windows machine, that has the ability to load and manage resources (such as images, scripts, audio, etc.), and allows the user to implement the logic and test the results before generating the final game. This project goes through some of the techniques and the logic behind the modules and tools of this engine, and the process of implementation followed to accomplish the final results. The source code for this project: BeEngine 2D Game Engine, it’s public and under the Creative Commons Attribution-ShareAlike 4.0 International License in the GitHub repository ( W.2 ) BeEngine-2D. The build of the engine and the sample project can be found as a GitHub release at ( W.21 ) BeEngine-2D 1.0 Keywords Game Engine, Video Games, C++, C#, Scripting, GLS L , Physics 1 Sunyer Caldú, Guillem BeEngine: 2D Game Engine License This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. 2 Sunyer Caldú, Guillem BeEngine: 2D Game Engine Index 1. Introduction 5 1.1 Motivation 6 1.2 Problem statement 7 1.3 General objectives 8 1.4 Specific objectives 8 1.5 Project scope 10 2. State of the art 11 2.1 Game Engines 11 2.2 Libraries and Technology 15 2.3 Conclusion 18 3. Project management 20 3.1 Procedure and tools 20 3.1.1 Gantt 20 3.1.2 Github and version control 21 3.2 Validation tools 21 3.3 Swot analysis 23 3.4 Risks and contingency plans 24 3.4.1 Risks during development 24 3.4.2 Risk of the tasks 25 4. Methodology 30 4.1 SCRUM 30 4.2 Tools used for the tracking of the project 31 5. Engine development 33 5.1 Skeleton 33 5.1.1 External libraries 35 5.1.2 Expansion 36 5.2 Editor 37 5.2.1 Editor windows 38 5.3 Resources 42 5.3.1 Meta files 42 5.3.2 Asset / Library 43 5.3.3 File watcher and Asset / Library integrity 43 3 Sunyer Caldú, Guillem BeEngine: 2D Game Engine 5.4 Entity Component System 45 5.4.1 GameObjects and Components 45 5.4.2 Prefabs 45 5.4.3 Scenes 46 5.5 Rendering 47 5.5.1 Debug lines and Gizmos 47 5.5.2 Scene renderers 48 5.5.3 Camera rendering 48 5.6 Scripting 50 5.6.1 Visual Studio Project 51 5.6.2 Mono 52 5.6.3 Script compiling 54 5.6.4. Game Loop 54 5.6.5. Editor references 57 5.7 Physics 58 5.8 Build 60 6. Sample Project 62 6.1 Project development 62 6.2 Learnings 64 7. Conclusions 65 8. Acknowledgments 69 9. Webgraphy 70 4 Sunyer Caldú, Guillem BeEngine: 2D Game Engine 1. Introduction Every good worker that wants to create, build or repair something always has their tools close: a plumber has a wrench; a painter, his brush; a woodcutter, an ax, and an architect, the pencil. Those tools define the work that they do, the process, its limitations, and its strengths. This is true for every discipline, even for game development. If you are mildly interested in the video game world or industry, you have probably heard the word “game engine” somewhere; maybe in a new game release, a game studio’s conference, or a console advertisement. A lot of people have heard of it, but not everybody knows exactly what it is, or which role they play inside the video game industry. A game engine is a software that provides game creators with the necessary set of features to build games quickly and efficiently (we can see an example of a game engine editor on F.1.1). It is a framework for game development that supports and brings together several core areas. You can import art and assets (2D and 3D) from other software, such as Maya or 3s Max or Photoshop; assemble those assets into scenes and environments; add lighting, audio, special effects, physics and animation, interactivity, and gameplay logic; and edit, debug and optimize the content for your target platforms. F.1.1 - The game engine editor for, Godot Engine (W.13). 5 Sunyer Caldú, Guillem BeEngine: 2D Game Engine 1.1 Motivation Since a very young age, I have been very interested in computers, software, and coding, and I also loved to play videogames. The combination of these two interests made me ask the question of how video games were made, and how was it possible to create such things only with a computer. Therefore, I started researching and digging for answers, and rapidly a whole bunch of game engines was now available for me to start playing with. I did not know exactly what I was doing, but it was fun, and it was the closest thing I had ever been to making video games. Still, the way in which game engines were created and worked was unknown to me, it was just like magic that worked under the hood. Through my degree in University, I was very happy to start learning how to code, and how game engines worked on the inside. While learning and creating some basic ones, I always felt that I wanted to experiment more and create something that I could use to build video games, without missing any of the tools or utilities that other widely used pre-existing engines include, having control over all the features, knowing exactly how they work. In addition to that, I have had increasing frustration using standard engines like Unity or Unreal. As they want to please everybody (every platform, and every genre) they end up lacking in some important aspects (such as the barely usable input system from Unity, or the overkill rendering of Unreal for low-end devices). Finally, while working on the last big project of University (W .1 )1, we used the base code of a student's game engine that had a lot of code structure problems, so we had to improve it and add a lot of tools and optimizations to be able to finish the game in time. With all that new experience, I learned a lot about the things that worked and the things that did not, and how to better structure a big program. With all of this in mind, the idea of creating my own game engine from scratch, with proper bases and with all the features I wanted, became a reality with this project. 1 W1. h ttps://project-3-upc-ddv-bcn.github.io/Project3/ 6 Sunyer Caldú, Guillem BeEngine: 2D Game Engine 1.2 Problem statement The process of creating video games is not trivial and can vary widely depending on a lot of factors, like scope, time, budget, etc., and facing such uncertainty, a highly dynamic tool is necessary. Game engines allow all the different roles involved in game development to merge all their efforts into a final peace, and it must make that process as intuitive, fast, and robust as possible. When you start getting into game engines, there are are a lot of already created options that cover different ranges: Unreal Engine for 3D high-end visuals; Unity for 3D and 2D, especially mobile; Game Maker for fast 2D; Godot for 3D and 2D with an open source approach, and many more. These type of engines offer a lot of advantages since everything is already made for you to start working, but they also have some disadvantages. One of the biggest problems is that as they generally try to please every aspect of game development, they end up falling short in a lot of important aspects, which can cause major time loss and frustration. Another drawback is that on some commercial engines the source code is not accessible since it’s completely private, where it is not allowed or possible to inspect or modify, difficulting the development process. Facing these lacks, the only other option available is to create a custom game engine from scratch, built specifically for a project, genre, or view. This project wants to solve the frustrations and problems that come from using generic and bloated engines. It aims to create, a small but complete product, focused on 2D development, with all the tools necessary to build videogames. Instead of trying to please every aspect, it intends to contain a small but fully functional and useful toolset that works as expected. Also, there are a lot of engines that try to be drag-and-drop type (for example, Game Maker), with premade modules that are easy to use, but that at the same time limit the creativity and the options of the developer. This is also something that this project avoids. As a summary, the solution is to create a balanced engine, that has all the necessary working tools to make 2D games, without limiting the creator .
Recommended publications
  • Empirical Investigation on Measurement of Game Immersion Using Real World Dissociation Factor
    Thesis no: MSCS-2016-13 Empirical Investigation on Measurement of Game Immersion using Real World Dissociation Factor Gadila Swarajya Haritha Reddy Faculty of Computing Blekinge Institute of Technology SE–371 79 Karlskrona, Sweden This thesis is submitted to the Faculty of Computing at Blekinge Institute of Technology in partial fulfillment of the requirements for the degree of Master of Science in Computer Science. The thesis is equivalent to 20 weeks of full time studies. Contact Information: Author(s): Gadila Swarajya Haritha Reddy E-mail: [email protected] University advisor: Prof. Sara Eriksén Department of Creative Technologies Faculty of Computing Internet : www.bth.se Blekinge Institute of Technology Phone : +46 455 38 50 00 SE–371 79 Karlskrona, Sweden Fax : +46 455 38 50 57 Abstract Context. Games involve people to a large extent where they relate them- selves with the game characters; this is commonly known as game immer- sion. Generally, some players play games for enjoyment, some for stress relaxation and so on.Game immersion is usually used to describe the degree of involvement with a game. When people play games, they don’t necessar- ily realize that they have been dissociated with the surrounding world. Real world dissociation (RWD) can be defined as the situation where a player is less aware of the surroundings outside the game than about what is happen- ing in the game itself. The RWD factor has been expected to measure the losing track of time, lack of awareness of surroundings and mental trans- portation. Objectives. In this thesis, we measure and compare the difference in game immersion between experienced and inexperienced players using RWD fac- tor.
    [Show full text]
  • 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]
  • First Person Shooting (FPS) Game
    International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056 Volume: 05 Issue: 04 | Apr-2018 www.irjet.net p-ISSN: 2395-0072 Thunder Force - First Person Shooting (FPS) Game Swati Nadkarni1, Panjab Mane2, Prathamesh Raikar3, Saurabh Sawant4, Prasad Sawant5, Nitesh Kuwalekar6 1 Head of Department, Department of Information Technology, Shah & Anchor Kutchhi Engineering College 2 Assistant Professor, Department of Information Technology, Shah & Anchor Kutchhi Engineering College 3,4,5,6 B.E. student, Department of Information Technology, Shah & Anchor Kutchhi Engineering College ----------------------------------------------------------------***----------------------------------------------------------------- Abstract— It has been found in researches that there is an have challenged hardware development, and multiplayer association between playing first-person shooter video games gaming has been integral. First-person shooters are a type of and having superior mental flexibility. It was found that three-dimensional shooter game featuring a first-person people playing such games require a significantly shorter point of view with which the player sees the action through reaction time for switching between complex tasks, mainly the eyes of the player character. They are unlike third- because when playing fps games they require to rapidly react person shooters in which the player can see (usually from to fast moving visuals by developing a more responsive mind behind) the character they are controlling. The primary set and to shift back and forth between different sub-duties. design element is combat, mainly involving firearms. First person-shooter games are also of ten categorized as being The successful design of the FPS game with correct distinct from light gun shooters, a similar genre with a first- direction, attractive graphics and models will give the best person perspective which uses light gun peripherals, in experience to play the game.
    [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]
  • Achieve Your Vision
    ACHIEVE YOUR VISION NE XT GEN ready CryENGINE® 3 The Maximum Game Development Solution CryENGINE® 3 is the first Xbox 360™, PlayStation® 3, MMO, DX9 and DX10 all-in-one game development solution that is next-gen ready – with scalable computation and graphics technologies. With CryENGINE® 3 you can start the development of your next generation games today. CryENGINE® 3 is the only solution that provides multi-award winning graphics, physics and AI out of the box. The complete game engine suite includes the famous CryENGINE® 3 Sandbox™ editor, a production-proven, 3rd generation tool suite designed and built by AAA developers. CryENGINE® 3 delivers everything you need to create your AAA games. NEXT GEN ready INTEGRATED CryENGINE® 3 SANDBOX™ EDITOR CryENGINE® 3 Sandbox™ Simultaneous WYSIWYP on all Platforms CryENGINE® 3 SandboxTM now enables real-time editing of multi-platform game environments; simul- The Ultimate Game Creation Toolset taneously making changes across platforms from CryENGINE® 3 SandboxTM running on PC, without loading or baking delays. The ability to edit anything within the integrated CryENGINE® 3 SandboxTM CryENGINE® 3 Sandbox™ gives developers full control over their multi-platform and simultaneously play on multiple platforms vastly reduces the time to build compelling content creations in real-time. It features many improved efficiency tools to enable the for cross-platform products. fastest development of game environments and game-play available on PC, ® ® PlayStation 3 and Xbox 360™. All features of CryENGINE 3 games (without CryENGINE® 3 Sandbox™ exception) can be produced and played immediately with Crytek’s “What You See Is What You Play” (WYSIWYP) system! CryENGINE® 3 Sandbox™ was introduced in 2001 as the world’s first editor featuring WYSIWYP technology.
    [Show full text]
  • Moving from Unity to Godot an In-Depth Handbook to Godot for Unity Users
    Moving from Unity to Godot An In-Depth Handbook to Godot for Unity Users Alan Thorn Moving from Unity to Godot: An In-Depth Handbook to Godot for Unity Users Alan Thorn High Wycombe, UK ISBN-13 (pbk): 978-1-4842-5907-8 ISBN-13 (electronic): 978-1-4842-5908-5 https://doi.org/10.1007/978-1-4842-5908-5 Copyright © 2020 by Alan Thorn This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made.
    [Show full text]
  • Valve Corporation Tournament License
    VALVE CORPORATION DOTA 2 TOURNAMENT LICENSE AND PAID SPECTATOR SERVICE AGREEMENT By pressing “Submit” you and/or the party you represent in submitting this web form (“Licensee”) agree to be bound be the terms of this Dota 2 Tournament License and Paid Spectator Service Agreement (the “Agreement”). It is entered into and effective by and between Valve Corporation, a Washington, U.S.A. corporation (“Valve”), and the Licensee as of the day that Valve accepts and confirms the submission by making it accessible through the Paid Spectator Service. 1. Definitions 1.1 “Adjusted Gross Revenue” mean the gross revenue actually received by Valve from Valve’s sale of the Tournaments via the Paid Spectator Service, less (a) actual costs resulting directly from returns, discounts, refunds, fraud or chargebacks; (b) taxes that are imposed on a customer of the Paid Spectator Service on the distribution, sale or license of the Tournaments (such as sales, use, excise, value-added and other similar taxes) that are received from such customer by Valve for payment to governmental authorities. 1.2 “Confidential Information” means (i) any trade secrets relating to Valve’s product plans, designs, costs, prices and names, finances, marketing plans, business opportunities, personnel, research development or know-how; (ii) any unreleased Valve products; and (iii) any other information that Valve designates to Licensee as being confidential or which, based on the nature of such information and the circumstances surrounding its disclosure, ought in good faith to be treated as confidential. 1.3 “Game” means the game Dota 2. 1.4 “Game-Related Intellectual Property,” means the Dota™ trademark and Dota 2 logo.
    [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]
  • Games: Gdevelop, End of the Sun, Untrusted, Ravenfield and More
    Published on Tux Machines (http://www.tuxmachines.org) Home > content > Games: GDevelop, End of the Sun, Untrusted, Ravenfield and More Games: GDevelop, End of the Sun, Untrusted, Ravenfield and More By Roy Schestowitz Created 08/06/2020 - 2:10pm Submitted by Roy Schestowitz on Monday 8th of June 2020 02:10:48 PM Filed under Gaming [1] FOSS game engine GDevelop gets a sweet new dark theme [2] GDevelop is a wonderful free and open source game engine, one that's cross-platform and it continues to get more powerful. It also has theme support with a new dark theme landing that looks great. The new dark theme "Nord" is based on the the palette from nordtheme.com, and it fits in very nicely with the GDevelop editor UI. In fact, it actually looks a little like the Godot Engine theme. Dark themes can at times be a little too dark, light themes blinding and this new Nord theme seems to have a nice contrast to it, makes tinkering with it feel better along with the recent UI adjustments the GDevelop team did to reduce useless padding everywhere. First-person slavic fantasy adventure The End of the Sun is fully funded[3] The End of the Sun, a slavic first-person fantasy adventure has managed to run a successful Kickstarter campaign. Against their initial $12,000 goal, 741 backers pledged $18,001 to help make it. What is it? A strange sounding tale that's what, interesting though. Set in the world of Slavic rites, beliefs, legends, and their everyday life.
    [Show full text]
  • Game Engines in Game Education
    Game Engines in Game Education: Thinking Inside the Tool Box? sebastian deterding, university of york casey o’donnell, michigan state university [1] rise of the machines why care about game engines? unity at gdc 2009 unity at gdc 2015 what engines do your students use? Unity 3D 100% Unreal 73% GameMaker 38% Construct2 19% HaxeFlixel 15% Undergraduate Programs with Students Using a Particular Engine (n=30) what engines do programs provide instruction for? Unity 3D 92% Unreal 54% GameMaker 15% Construct2 19% HaxeFlixel, CryEngine 8% undergraduate Programs with Explicit Instruction for an Engine (n=30) make our stats better! http://bit.ly/ hevga_engine_survey [02] machines of loving grace just what is it that makes today’s game engines so different, so appealing? how sought-after is experience with game engines by game companies hiring your graduates? Always 33% Frequently 33% Regularly 26.67% Rarely 6.67% Not at all 0% universities offering an Undergraduate Program (n=30) how will industry demand evolve in the next 5 years? increase strongly 33% increase somewhat 43% stay as it is 20% decrease somewhat 3% decrease strongly 0% universities offering an Undergraduate Program (n=30) advantages of game engines • “Employability!” They fit industry needs, especially for indies • They free up time spent on low-level programming for learning and doing game and level design, polish • Students build a portfolio of more and more polished games • They let everyone prototype quickly • They allow buildup and transfer of a defined skill, learning how disciplines work together along pipelines • One tool for all classes is easier to teach, run, and service “Our Unification of Thoughts is more powerful a weapon than any fleet or army on earth.” [03] the machine stops issues – and solutions 1.
    [Show full text]
  • Michał Domański Curriculum Vitae / Portfolio
    Michał Domański Curriculum Vitae / Portfolio date of birth: 09-03-1986 e-mail: [email protected] address: ul. Kabacki Dukt 8/141 tel. +48 608 629 046 02-798 Warsaw Skype: rein4ce Poland I am fascinated by the world of science, programming, I love experimenting with the latest technologies, I have a great interest in virtual reality, robotics and military. Most of all I value the pursuit of professionalism, continuous education and expanding one's skill set. Education 2009 - till now Polish Japanese Institute of Information Technology Computer Science - undergraduate studies, currently 4th semester 2004 - 2009 Cracow University of Technology Master of Science in Architecture and Urbanism - graduated 2000 - 2004 Romuald Traugutt High School in Częstochowa mathematics, physics, computer-science profile Skills Advanced level Average level Software C++ (10 years), MFC Java, J2ME Windows 98, XP, Windows 7 C# .NET 3.5 (3 years) DirectX, MDX SketchUP OpenGL BASCOM AutoCAD Actionscript/Flex MS SQL, Oracle Visual Studio 2008, MSVC 6.0 WPF Eclipse HTML/CSS Flex Builder Photoshop CS2 Addtional skills: Good understanding of design patterns and ability to work with complex projects Strong problem solving skills Excellent work organisation and teamwork coordination Eagerness to learn any new technology Languages: Polish, English (proficiency), German (basic) Ever since I can remember my interests lied in computers. Through many years of self-education and studying many projects I have gained insight and experience in designing and programming professional level software. I did an extensive research in the game programming domain, analyzing game engines such as Quake, Half-Life and Source Engine, through which I have learned how to structure and develop efficient systems while implementing best industry-standard practices.
    [Show full text]
  • Game Engine Architecture
    Game Engine Architecture Chapter 1 Introduction prepared by Roger Mailler, Ph.D., Associate Professor of Computer Science, University of Tulsa 1 Structure of a game team • Lots of members, many jobs o Engineers o Artists o Game Designers o Producers o Publisher o Other Staff prepared by Roger Mailler, Ph.D., Associate Professor of Computer Science, University of Tulsa 2 Engineers • Build software that makes the game and tools works • Lead by a senior engineer • Runtime programmers • Tools programmers prepared by Roger Mailler, Ph.D., Associate Professor of Computer Science, University of Tulsa 3 Artists • Content is king • Lead by the art director • Come in many Flavors o Concept Artists o 3D modelers o Texture artists o Lighting artists o Animators o Motion Capture o Sound Design o Voice Actors prepared by Roger Mailler, Ph.D., Associate Professor of Computer Science, University of Tulsa 4 Game designers • Responsible for game play o Story line o Puzzles o Levels o Weapons • Employ writers and sometimes ex-engineers prepared by Roger Mailler, Ph.D., Associate Professor of Computer Science, University of Tulsa 5 Producers • Manage the schedule • Sometimes act as the senior game designer • Do HR related tasks prepared by Roger Mailler, Ph.D., Associate Professor of Computer Science, University of Tulsa 6 Publisher • Often not part of the same company • Handles manufacturing, distribution and marketing • You could be the publisher in an Indie company prepared by Roger Mailler, Ph.D., Associate Professor of Computer Science, University of
    [Show full text]