Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 1 Introduction.

Similar presentations


Presentation on theme: "Chapter 1 Introduction."— Presentation transcript:

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 Eventually: needs a math library You do need a math library


Download ppt "Chapter 1 Introduction."

Similar presentations


Ads by Google