Cs 480/680: Game Engine Programming Introduction

Total Page:16

File Type:pdf, Size:1020Kb

Cs 480/680: Game Engine Programming Introduction CS 480/680: GAME ENGINE PROGRAMMING INTRODUCTION 1/10/2013 Santiago Ontañón [email protected] https://www.cs.drexel.edu/~santi/teaching/2013/CS480-680/intro.html CS 480/680 • Focus: • basic and advanced techniques for game engine programming. • Topics: • What is a game engine? • The game loop • 2D/3D Graphics • Sound • Physics simulation • Collision detection • Networking • Game AI Outline • Course Structure • Project • Schedule • Papers • Introduction to Game Engine Programming • Group Formation / Paper Assignment Outline • Course Structure • Project • Schedule • Papers • Introduction to Game Engine Programming • Group Formation / Paper Assignment Course Structure: Evaluation • Undergraduate students: • Game Engine Project (85%) • Class attendance and participation (15%) • Graduate students: • Game Engine Project (70%) • One paper presentation in class (20%) • Class attendance and participation (10%) • Online students: • Participation will be measured by activity in the class discussion board • Presentations will be delivered electronically (via a powerpoint/ keynote presentation with audio, youtube video, etc.) Course Structure • Every week (3 hour class): 1 hour Lecture Student presentations 1 hour Project Progress Reports 1 hour Time to work on your projects Course Structure • Every week (3 hour class): Also: If you find a new game that uses an original concept in terms of game engine programming (or one that you’d 1 hour Lecture like to learn how it’s programmed), please bring it up in class, or send me a link to it before class, so we can show it and discuss it! Student presentations 1 hour Project Progress Reports 1 hour Time to work on your projects Text Book • Not mandatory to have it (but recommended) • Covers most of the content from the lectures • Great asset for working on your projects Outline • Course Structure • Project • Schedule • Papers • Introduction to Game Engine Programming • Group Formation / Paper Assignment Game Engine Project • Groups of 2 – 3 students: • 1 student groups are discouraged: part of the experience is working on game development teams. If you want to do a project on your own, you’ll have to do extra work to compensate and get the maximum grade. • Each student picks a topic (students in the same group can be working on different topics): • For example: collision detection, physics simulation, game AI, networking, lighting, etc. • Groups will build a game engine, making emphasis on the topics of the members of the group • Each group will build a game engine (not a whole game, just the engine!). This means, you don’t need to have dozens of levels, and many enemies, etc. Just one or two levels, or a small map is enough. Topics (not exhaustive list) • 2D / 3D Graphics Rendering • Lighting • Animation • Collision detection (2D / 3D) • Physics simulation (2D / 3D) • Artificial Intelligence • Sensing • Networking • Scripting • Dynamic asset loading Platforms and Development Language • Platforms: • Any platform, as long as it is possible to show it in class (ask instructor if your platform is not in this list): • Linux, Mac OS X, Windows, Android, iOS, Web (HTML5/Flash) • Languages: • Any language, as long as it allows the student to learn and implement the desired components • For example: • C, C++, Lisp, Java, Python, Javascript, Flash, C#, etc. Libraries • You are welcome to use ready-made libraries for your projects but… • Use them only for those parts that are not the focus topic of any student in the group. • For example: • If a student picks “physics simulation”, then using ODE will not be allowed. • If no student in the group has picked “physics simulation”, then you are welcome to use ODE in your project. Deliverables • Group formation (week 2) • Game Engine Architecture document (week 4) • Document detailing the architecture of your game engine, all the modules you will implement, libraries you will use, data structures you will use, communication between modules, libraries you will use, and assets required. • Deliverable 1: 2 – 6 page description document. Include a description of what demo you will show (levels, assets, etc.) • Game Loop (week 6) • Development started, game loop created. • Deliverable 2: demo to instructor, source code, 2 – 8 page description document (updated from last deliverable). • Demo (week 8) • First demo, major development effort completed, and only details left. • Deliverable 3: demo to whole class, source code, 2 – 6 page description document • Final Project (week 10) • Complete project. • Deliverable 4: demo to whole class, source code, 2 – 8 page description document (updated from last deliverable) Undergraduate vs Graduate projects • Graduate students are expected to pick topics that are state of the art (e.g. “Phong shading” is not acceptable, since it’s a very old, very well known technique). Those topics are fine for undergraduate students. • If you are unsure whether your topic is “state of the art”: ask the instructor. Examples (idea 1) • Standard 3D FPS • Topics: • Student 1: Dynamic lighting and shadow casting • Student 2: Network multiplayer • Platform: Linux • Development language: C++ • Libraries used: SDL, OpenGL, ODE, SDLMixer, SDLSound, SDLImage, SDLNet, SDLTTF • Demo: • Single map with closed and open areas (to show off lighting), just one type of enemies • 3D models downloaded from the internet from open source repositories, map authored in a simple text file • Networking support for LAN, allowing up to 4 players and allowing an unbounded number of observers (to show off networking) Examples (idea 2) • 2D RPG (Zelda-style) • Topics: • Student 1: Artificial Intelligence • Student 2: Network multiplayer • Platform: Linux/Mac/Windows • Development language: Java • Libraries used: none • Demo: • Single level (with enemies and NPCs with different behaviors to show off AI) • 2D models downloaded from the internet from open source repositories, map authored in a simple text file • Networking support for LAN, allowing up to 4 players and allowing an unbounded number of observers (to show off networking) Examples (idea 3) • MMO • Topics: • Student 1: Dynamic asset loading • Student 2: Networked Persistent world • Platform: HTML5 • Development language: Javascript • Libraries used: none • Demo: • Two large areas with different complex assets (to show off dynamic asset loading) • 2D/3D models downloaded from the internet from open source repositories, map authored in a simple text file • Networking support having a server that maintains the state, and clients connecting to play the game. Allow for having multiple coordinated servers (to show off the persistent world) Examples (idea 4) • Car Racing Game • Topics: • Student 1: Physics simulation • Student 2: Collision Detection • Platform: Android • Development language: C++ • Libraries used: SDL, OpenGL, SDLMixer, SDLSound, SDLImage, SDLNet, SDLTTF • Demo: • Single track with one type of opponents, but with track element of different types: curves, jumps, loops, walls, etc. (to show off physics and collision detection) • 2D/3D models downloaded from the internet from open source repositories, map authored in a simple text file Examples (other ideas) • 2D platformer (Mario-style) • Graphic Adventure (Monkey Island) • Shoot-em up (Raiden) • Fighting game (Street Fighter) • Physics-based game (Angry Birds) • RTS game (Starcraft) • 2D MMO (Fantasy Online) • Be original! • Check out indie games such as Limbo, Voxatron, Legend of Dungeon, Spelunky, Fez, etc. for ideas! (see the end of this slides for more ideas) Outline • Course Structure • Project • Schedule • Papers • Introduction to Game Engine Programming • Group Formation / Paper Assignment Class Schedule Week Topic Project W1 Introduction: Architecture Form groups / select topics W2 The Game Loop Declare groups / topics W3 Graphics: 2D / 3D Rendering W4 Collision Detection Deliverable 1: Architecture Document W5 Input Handling / Networking W6 Physics: 2D / 3D Simulation Deliverable 2: Game Loop W7 Animation W8 Scripting and AI Deliverable 3: Demo W9 Case Study W10 Project Presentation Deliverable 4: Final Presentation Outline • Course Structure • Project • Schedule • Papers • Introduction to Game Engine Programming • Group Formation / Paper Assignment Paper Presentations • Each graduate student needs to select a paper: • Read it carefully (follow references if needed for fully understanding the topics) • Prepare a presentation for class: • In-class students: 10 minutes • Online students: 5 – 7 minutes (since you can prepare it more carefully) • List of papers available on the BBLearn page for the course. • Select three papers, and send the titles to the instructor by order of preference. I will assign the papers trying to respect these preferences as much as possible. Paper Presentations • Example papers: • “Camera Control Techniques” • “Real-Time Strategy Network Protocol” • “Cartoon Rendering: Real-time Silhouette Edge Detection and Rendering” • “Real-Time Shadows on Complex Objects” • “A Brief Introduction to OpenAL” • Most papers are selected from the “Game Programming Gems” book collection. The papers on the website is a selection I did. But if you are interested in any other paper from that book collection, let me know, and I’ll get you the PDF. (table of contents can be easily found on Amazon) Presentation Advise • Do not assume we know what you are talking about: introduce the topic, and provide context • The presentation is not just for the instructor to see if you understood, is for the whole class to learn something • Be visual:
Recommended publications
  • Luminosity | a Re-Imagining of Twilight | by Alicorn
    Luminosity by Alicorn You don't have to make a hundred mistakes for everything to disintegrate around you. One will do. One wrong risk, one misplaced trust, one careless guess is enough to destroy the one thing you can least afford to lose. But I'd never had any reason to imagine that my disaster would befall me at the time when I was most unexpectedly safe. pg. 1 1. Forks 2. The Cullens 3. The Reveal 4. Matchmaking 5. Vampires 101 6. Edward 7. Souls 8. The Future 9. Witches and Werewolves 10. Coven 11. Volterra 12. Norway 13. Newborn 14. Self-Control 15. Honeymoon 16. Ambition 17. Rachel 18. Clearwater 19. Denali 20. Europe 21. Hybrid 22. Maggie 23. Sue 24. Delivery 25. Expectations 26. Little Witch 27. Scatter 28. Ashes 29. Things Left Behind pg. 2 Forks Here is how I decided to live with my father in Washington. My favorite three questions are, What do I want?, What do I have?, and How can I best use the latter to get the former? Actually, I'm also fond of What kind of person am I?, but that one isn't often directly relevant to decision making on a day-to-day basis. What did I want? I wanted my mother, Renée, to be happy. She was the most important person to me, bar none. I also wanted her around, but when I honestly evaluated my priorities, it was more important that she be happy. If, implausibly, I had to choose between Renée being happy on Mars, and Renée being miserable living with me as she always had - I wouldn't be thrilled about it.
    [Show full text]
  • Openbsd Gaming Resource
    OPENBSD GAMING RESOURCE A continually updated resource for playing video games on OpenBSD. Mr. Satterly Updated August 7, 2021 P11U17A3B8 III Title: OpenBSD Gaming Resource Author: Mr. Satterly Publisher: Mr. Satterly Date: Updated August 7, 2021 Copyright: Creative Commons Zero 1.0 Universal Email: [email protected] Website: https://MrSatterly.com/ Contents 1 Introduction1 2 Ways to play the games2 2.1 Base system........................ 2 2.2 Ports/Editors........................ 3 2.3 Ports/Emulators...................... 3 Arcade emulation..................... 4 Computer emulation................... 4 Game console emulation................. 4 Operating system emulation .............. 7 2.4 Ports/Games........................ 8 Game engines....................... 8 Interactive fiction..................... 9 2.5 Ports/Math......................... 10 2.6 Ports/Net.......................... 10 2.7 Ports/Shells ........................ 12 2.8 Ports/WWW ........................ 12 3 Notable games 14 3.1 Free games ........................ 14 A-I.............................. 14 J-R.............................. 22 S-Z.............................. 26 3.2 Non-free games...................... 31 4 Getting the games 33 4.1 Games............................ 33 5 Former ways to play games 37 6 What next? 38 Appendices 39 A Clones, models, and variants 39 Index 51 IV 1 Introduction I use this document to help organize my thoughts, files, and links on how to play games on OpenBSD. It helps me to remember what I have gone through while finding new games. The biggest reason to read or at least skim this document is because how can you search for something you do not know exists? I will show you ways to play games, what free and non-free games are available, and give links to help you get started on downloading them.
    [Show full text]
  • Lucasarts and the Design of Successful Adventure Games
    LucasArts and the Design of Successful Adventure Games: The True Secret of Monkey Island by Cameron Warren 5056794 for STS 145 Winter 2003 March 18, 2003 2 The history of computer adventure gaming is a long one, dating back to the first visits of Will Crowther to the Mammoth Caves back in the 1960s and 1970s (Jerz). How then did a wannabe pirate with a preposterous name manage to hijack the original computer game genre, starring in some of the most memorable adventures ever to grace the personal computer? Is it the yearning of game players to participate in swashbuckling adventures? The allure of life as a pirate? A craving to be on the high seas? Strangely enough, the Monkey Island series of games by LucasArts satisfies none of these desires; it manages to keep the attention of gamers through an admirable mix of humorous dialogue and inventive puzzles. The strength of this formula has allowed the Monkey Island series, along with the other varied adventure game offerings from LucasArts, to remain a viable alternative in a computer game marketplace increasingly filled with big- budget first-person shooters and real-time strategy games. Indeed, the LucasArts adventure games are the last stronghold of adventure gaming in America. What has allowed LucasArts to create games that continue to be successful in a genre that has floundered so much in recent years? The solution to this problem is found through examining the history of Monkey Island. LucasArts’ secret to success is the combination of tradition and evolution. With each successive title, Monkey Island has made significant strides in technology, while at the same time staying true to a basic gameplay formula.
    [Show full text]
  • An Embeddable, High-Performance Scripting Language and Its Applications
    Lua an embeddable, high-performance scripting language and its applications Hisham Muhammad [email protected] PUC-Rio, Rio de Janeiro, Brazil IntroductionsIntroductions ● Hisham Muhammad ● PUC-Rio – University in Rio de Janeiro, Brazil ● LabLua research laboratory – founded by Roberto Ierusalimschy, Lua's chief architect ● lead developer of LuaRocks – Lua's package manager ● other open source projects: – GoboLinux, htop process monitor WhatWhat wewe willwill covercover todaytoday ● The Lua programming language – what's cool about it – how to make good uses of it ● Real-world case study – an M2M gateway and energy analytics system – making a production system highly adaptable ● Other high-profile uses of Lua – from Adobe and Angry Birds to World of Warcraft and Wikipedia Lua?Lua? ● ...is what we tend to call a "scripting language" – dynamically-typed, bytecode-compiled, garbage-collected – like Perl, Python, PHP, Ruby, JavaScript... ● What sets Lua apart? – Extremely portable: pure ANSI C – Very small: embeddable, about 180 kiB – Great for both embedded systems and for embedding into applications LuaLua isis fullyfully featuredfeatured ● All you expect from the core of a modern language – First-class functions (proper closures with lexical scoping) – Coroutines for concurrency management (also called "fibers" elsewhere) – Meta-programming mechanisms ● object-oriented ● functional programming ● procedural, "quick scripts" ToTo getget licensinglicensing outout ofof thethe wayway ● MIT License ● You are free to use it anywhere ● Free software
    [Show full text]
  • MMPX Style-Preserving Pixel Art Magnification
    Journal of Computer Graphics Techniques Vol. 10, No. 2, 2021 https://jcgt.org MMPX Style-Preserving Pixel-Art Magnification Morgan McGuire Mara Gagiu University of Waterloo & NVIDIA University of Waterloo (a) Input Image (b) Magnified 2× with Nearest (c) Magnified 2× with MMPX Figure 1. (a) Pixel art combining sprites, text, and UI elements (b) magnified with nearest- neighbor filtering becomes blocky relative to the original pixel size; (c) MMPX filtering re- fines lines, curves, and patterns for the new resolution, while mostly preserving the palette, transparency, and shape aspects of the original artwork. Input derived from Oryx Design Lab licensed sprites https://www.oryxdesignlab.com/products/16-bit- fantasy-tileset Abstract We present MMPX, an efficient filter for magnifying pixel art, such as 8- and 16-bit era video-game sprites, fonts, and screen images, by a factor of two in each dimension. MMPX preserves art style, attempting to predict what the artist would have produced if working at a larger scale but within the same technical constraints. Pixel-art magnification enables the displaying of classic games and new retro-styled ones on modern screens at runtime, provides high-quality scaling and rotation of sprites and raster- font glyphs through precomputation at load time, and accelerates content-creation workflow. MMPX reconstructs curves, diagonal lines, and sharp corners while preserving the ex- act palette, transparency, and single-pixel features. For general pixel art, it can often pre- serve more aspects of the original art style than previous magnification filters such as nearest- neighbor, bilinear, HQX, XBR, and EPX. In specific cases and applications, other filters will be better.
    [Show full text]
  • Jak Videohry Vyprávějí Příběhy Analýza Aktuálních Klíčových Videoher Hlavního Proudu
    Masarykova univerzita Filozofická fakulta Ústav hudební vědy Teorie interaktivních médií Bc. Jaroslav Kolář Magisterská diplomová práce Jak videohry vyprávějí příběhy Analýza aktuálních klíčových videoher hlavního proudu Vedoucí práce: Mgr. Zuzana Husárová, Ph.D. 2013 1 2 Čestné prohlášení Prohlašuji, že jsem práci vypracoval samostatně. Všechny prameny a literaturu, které jsem při vypracování používal, v práci řádně uvádím. V Brně, 4. ledna 2013 3 Narativní potenciál videoher byl na konci 20. století podceňován nebo zcela přehlížen. Vzhledem k rychlému vývoji na poli videoher je nutné přezkoumat aktuální situaci. Objektem této práce jsou klíčové videohry hlavního proudu vydané mezi lety 2010-2012. Podrobným vnímáním ludické a narativní podstaty vybraných videoher hledá tato práce odpověď na otázku „Jakým způsobem videohry vyprávějí příběhy?“ a to z perspektivy nahlížení na příběhy jako na transmediální fenomény. 4 První kapitola – Úvod ............................................................................................................................. 7 Cíl této práce ....................................................................................................................................... 9 Jak budu postupovat ............................................................................................................................ 9 Druhá kapitola – Uvedení do problematiky .......................................................................................... 10 Sjednocení důležitých pojmů ...........................................................................................................
    [Show full text]
  • Scummvm Documentation
    ScummVM Documentation CadiH May 10, 2021 The basics 1 Understanding the interface4 1.1 The Launcher........................................4 1.2 The Global Main Menu..................................7 2 Handling game files 10 2.1 Multi-disc games...................................... 11 2.2 CD audio.......................................... 11 2.3 Macintosh games...................................... 11 3 Adding and playing a game 13 3.1 Where to get the games.................................. 13 3.2 Adding games to the Launcher.............................. 13 3.3 A note about copyright.................................. 21 4 Saving and loading a game 22 4.1 Saving a game....................................... 22 4.2 Location of saved game files............................... 27 4.3 Loading a game...................................... 27 5 Keyboard shortcuts 30 6 Changing settings 31 6.1 From the Launcher..................................... 31 6.2 In the configuration file.................................. 31 7 Connecting a cloud service 32 8 Using the local web server 37 9 AmigaOS 4 42 9.1 What you’ll need...................................... 42 9.2 Installing ScummVM.................................... 42 9.3 Transferring game files.................................. 42 9.4 Controls........................................... 44 9.5 Paths............................................ 44 9.6 Settings........................................... 44 9.7 Known issues........................................ 44 10 Android 45 i 10.1 What you’ll need.....................................
    [Show full text]
  • The Search for the "Manchurian Candidate" the Cia and Mind Control
    THE SEARCH FOR THE "MANCHURIAN CANDIDATE" THE CIA AND MIND CONTROL John Marks Allen Lane Allen Lane Penguin Books Ltd 17 Grosvenor Gardens London SW1 OBD First published in the U.S.A. by Times Books, a division of Quadrangle/The New York Times Book Co., Inc., and simultaneously in Canada by Fitzhenry & Whiteside Ltd, 1979 First published in Great Britain by Allen Lane 1979 Copyright <£> John Marks, 1979 All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, without the prior permission of the copyright owner ISBN 07139 12790 jj Printed in Great Britain by f Thomson Litho Ltd, East Kilbride, Scotland J For Barbara and Daniel AUTHOR'S NOTE This book has grown out of the 16,000 pages of documents that the CIA released to me under the Freedom of Information Act. Without these documents, the best investigative reporting in the world could not have produced a book, and the secrets of CIA mind-control work would have remained buried forever, as the men who knew them had always intended. From the documentary base, I was able to expand my knowledge through interviews and readings in the behavioral sciences. Neverthe- less, the final result is not the whole story of the CIA's attack on the mind. Only a few insiders could have written that, and they choose to remain silent. I have done the best I can to make the book as accurate as possible, but I have been hampered by the refusal of most of the principal characters to be interviewed and by the CIA's destruction in 1973 of many of the key docu- ments.
    [Show full text]
  • A Classification of Scripting Systems for Entertainment and Serious
    Published in Proceedings of VS-GAMES 2011: 3rd International Conference on Games and Virtual Worlds for Serious Applications, pages 47-54; definitive version available from http://dx.doi.org/10.1109/VS-GAMES.2011.13 A Classification of Scripting Systems for Entertainment and Serious Computer Games Eike Falk Anderson Interactive Worlds ARG Coventry University Coventry, UK [email protected] Abstract—The technology base for modern computer games is usually provided by a game engine. Many game engines have built-in dedicated scripting languages that allow the development of complete games that are built using those engines, as well as extensive modification of existing games through scripting alone. While some of these game engines implement propri- etary languages, others use existing scripting systems that have been modified according to the game engine’s requirements. Scripting languages generally provide a very high level of abstraction method for syntactically controlling the behaviour of their host applications and different types of scripting system allow different types of modification of their underlying host application. In this paper we propose a simple classification for scripting systems used in computer games for entertainment and serious purposes. Index Terms—Data-Driven Game Development, Scripting Language Classification. Fig. 1. A typical game engine. If the engine core includes a scripting system, then application specific scripts are loaded as external game assets and there I. INTRODUCTION may be no other application specific code. The computer games industry is still a young industry which continues to have a lot of potential for growth. This is especially so, since games have broken out of the domain Consequently it is no surprise that scripting systems are of pure entertainment and are now used in a wide variety of considered one of the most important developer tools that are different situations.
    [Show full text]
  • Localization Tools in General Purpose Game Engines: a Systematic Mapping Study
    Hindawi International Journal of Computer Games Technology Volume 2021, Article ID 9979657, 15 pages https://doi.org/10.1155/2021/9979657 Review Article Localization Tools in General Purpose Game Engines: A Systematic Mapping Study Marcus Toftedahl Division of Game Development, University of Skövde, Skövde, Sweden Correspondence should be addressed to Marcus Toftedahl; [email protected] Received 31 March 2021; Accepted 5 July 2021; Published 23 July 2021 Academic Editor: Cristian A. Rusu Copyright © 2021 Marcus Toftedahl. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. This paper addresses localization from a game development perspective by studying the state of tool support for a localization work in general purpose game engines. Using a systematic mapping study, the most commonly used game engines and their official tool libraries are studied. The results indicate that even though localization tools exists for the game engines included in the study, the visibility, availability, and functionality differ. Localization tools that are user facing, i.e., used to create localization, are scarce while many are tool facing, i.e., used to import localization kits made outside the production pipeline. 1. Introduction tions or specific corporate entities handling functions such as marketing or distribution. This is not always the case with “The world is full of different markets and cultures and, to indie game development, where Pereira and Bernardes [7] maximize profits™[sic], nowadays games are released in sev- note that the structure of indie development is more flexible, eral languages.
    [Show full text]
  • Index Images Download 2006 News Crack Serial Warez Full 12 Contact
    index images download 2006 news crack serial warez full 12 contact about search spacer privacy 11 logo blog new 10 cgi-bin faq rss home img default 2005 products sitemap archives 1 09 links 01 08 06 2 07 login articles support 05 keygen article 04 03 help events archive 02 register en forum software downloads 3 security 13 category 4 content 14 main 15 press media templates services icons resources info profile 16 2004 18 docs contactus files features html 20 21 5 22 page 6 misc 19 partners 24 terms 2007 23 17 i 27 top 26 9 legal 30 banners xml 29 28 7 tools projects 25 0 user feed themes linux forums jobs business 8 video email books banner reviews view graphics research feedback pdf print ads modules 2003 company blank pub games copyright common site comments people aboutus product sports logos buttons english story image uploads 31 subscribe blogs atom gallery newsletter stats careers music pages publications technology calendar stories photos papers community data history arrow submit www s web library wiki header education go internet b in advertise spam a nav mail users Images members topics disclaimer store clear feeds c awards 2002 Default general pics dir signup solutions map News public doc de weblog index2 shop contacts fr homepage travel button pixel list viewtopic documents overview tips adclick contact_us movies wp-content catalog us p staff hardware wireless global screenshots apps online version directory mobile other advertising tech welcome admin t policy faqs link 2001 training releases space member static join health
    [Show full text]
  • Mbk-Game Engine Lecture
    Game Tools MARY BETH KERY - ADVANCED USER INTERFACES SPRING 2017 2 person team 3 years ART 300 person team GAME DESIGN 10 years ENGINEERING Final Fantasy 15 PRODUCTION/BUSINESS TECHNICAL CHALLENGES OF VIDEO GAMES 1. Video games are real time complex simulations, and must be efficient. TECHNICAL CHALLENGES OF VIDEO GAMES 1. Video games are real time complex simulations, and must be efficient. 1999 Roller Coaster Tycoon written by one guy in x86 assembly language TECHNICAL CHALLENGES OF VIDEO GAMES 1. Video games are real time complex simulations, and must be efficient. Today, more flexibility in language Typically Object-Oriented Use development tools like Visual Studio or Eclipse TECHNICAL CHALLENGES OF VIDEO GAMES 2. People have high expectations for interactive worlds with lots of content TECHNICAL CHALLENGES OF VIDEO GAMES 2. People have high expectations for interactive worlds with lots of content Lots of content on tight deadlines. Glitches and crashes are BAD. TECHNICAL CHALLENGES OF VIDEO GAMES 3. Real time 3D graphics simulations Doom 1993 Levels, dungeons, and rooms were not only for game pacing, but to limit the number of objects to compute and render at a time. TECHNICAL CHALLENGES OF VIDEO GAMES 3. Real time 3D graphics simulations 2016 graphics Pixar - Piper Final Fantasy 15 Gregory, Jason. Game engine architecture. CRC Press, 2009. Game Engines Tools that fit the pieces together Game Engine GAME ENGINES: HISTORY 1990s First-person shooters: Doom by id Software GAME ENGINES: HISTORY Architecture separates core software from game- specific assets ASSETS “ENGINE” SOFTWARE Art assets 3D graphics rendering Game Collision detection map/environments Audio system Rules of play GAME ENGINES: HISTORY 1990’s Separation of game engine allowed “mods” by replacing assets ASSETS “ENGINE” SOFTWARE Art assets 3D graphics rendering Game Collision detection map/environments Audio system Rules of play Not okay mod.
    [Show full text]