Download presentation
Presentation is loading. Please wait.
1
Chapter 1 Introduction
2
What is a Game Engine? What are some examples of game engines?
Unity3D, Unreal, Panda3D … What make these game engines? From the user (Game Designer) perspective From the developer (you) perspective What is behind the GUI? What if there is no GUI? Remember: we are limited to 2D only
3
What are required of a game engine?
Ask: why do we need a game engine? Simple: Make building games easier! Then: what is/are required to make building games easier? Two perspectives (for us, CS people): As a tool: use to build games Do the mundane Hide the complex As a software system: Maintain, Refine (improve what’s there), Expand (support additional functionality) Care about: software architecture and organization
4
What are the mundane? System interface for
Resource loading (image, audio, scene files, any files) Input from mouse/keyboard Audio output Some kind of real-time looping mechanism Drawing of objects: simple image, text/fonts Dealing with pixels
5
What are the complex? Camera Manipulation Illumination: Physics:
Lighting effects, shadows Physics: Collision detection: per-pixel accurate? Collision responses Special effects Fire, Explosion, Water
6
What about as a software system?
Commonly used utility objects: Random, Interpolate, Shake Functions to relieve from math details: Chase, Follow Abstraction to relieve from details: Transforms, Materials, Cameras Object hierarchy to facility reuse Architectural framework to present all of the above coherently and facilitate changing and update
7
So we will learn Implement and hide the mundane
Support the complex and present simple programming API All with a software architecture that supports Maintain, refine, and expand
8
The technology: tools for learning …
What we need? Programming language Graphics Support System Support Loading/Input/Output What are viable? C++ / OpenGL / GLUT (or whatever) C++ / D3D / WPF C# / MonoGame / WindForm Java / JOGL / Swing JavaScript / WebGL / HTML5 Our choice: Web-play anywhere!
9
Goals and Non-goals Goals: Non-Goals:
Learn concepts, see how implemented Should: transport your knowledge to another platform Non-Goals: Learn JavaScript, HTML5, or WebGL I know WebGL (barely), do not know JavaScript or HTML5
10
Development Environment
IDE + Deployment platform (Chrome) What is an IDE? Need to make the connection between Chrome and the IDE GLSL Syntax Checker JSLint or JSHint Eventually: needs a math library You do need a math library
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.