Game Engine Architecture

Slides:



Advertisements
Similar presentations
 Currently there is no software solution that combines video and animation in to one platform.  Every single change drag changes in all of the environments.
Advertisements

TORQUE 3D Daniel Casadevall-Pino
Game Project Tuesday Sept 18,  Game Idea  Team  Understanding available engine options  Understanding the Pipeline  Start the process Cycle.
Survey of Graphics and Games. Outline Overview of computer graphics – Coursework – Research Programming using game engines Computer game and animation.
Game Design and Programming. Objectives Classify the games How games are design How games are implemented What are the main components of a game engine.
Writing GUI Applications An introduction with Java.
Object-Oriented Software Engineering Java with added Swing.
Game Development Essentials An Introduction. Chapter 10 Roles & Responsibilities developing the team.
AraFell Project By: Joey Peters. System Selection A video game – Video games implement many OS principles Already working on the project Challenging Fun.
1 Threads Chapter 4 Reading: 4.1,4.4, Process Characteristics l Unit of resource ownership - process is allocated: n a virtual address space to.
Indie Video Game Design and Development by Elmar Juzar Computer Engineering First Year.
By Steven Taylor.  Basically a video game engine is a software system designed for the creation and development of video games.  There are many game.
AGD: 5. Game Arch.1 Objective o to discuss some of the main game architecture elements, rendering, and the game loop Animation and Games Development.
CHAPTER 17 Creating an Interactive 3D Environment © 2008 Cengage Learning EMEA.
Gearbox Software PRODUCTION PIPELINE – JOBS TITLES – JOB DESCRIPTIONS.
Java Swing Joon Ho Cho. What is Java Swing? Part of the Java Foundation Classes (JFC) Provides a rich set of GUI components Used to create a Java program.
Things you need to know George Georgiev Telerik Corporation
CIS3023: Programming Fundamentals for CIS Majors II Summer 2010 Ganesh Viswanathan Graphical User Interface (GUI) Design using Swing Course Lecture Slides.
Using C++ and OpenGL George Georgiev Telerik Corporation
Ch 1. Introduction Dr. Bernard Chen Ph.D. University of Central Arkansas Spring 2012.
CSE 381 – Advanced Game Programming 3D Game Architecture.
Introduction to Java GUI Creating Graphical User Interfaces © copyright Bobby Hoggard / material may not be redistributed without permission.
CSE 380 – Computer Game Programming Render Threading Portal, by Valve,
CS 638, Fall 2001 CS 638: Computer Games Technology Fall 2001.
Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.
CS426 Game Programming II Dan Fleck. Why games?  While the ideas in this course are demonstrated programming games, they are useful in all parts of computer.
Intro to Java 2 By Geb Thomas Based on the Java TutorialJava Tutorial.
Funativity presents: CS 426 Fall Team Members David Smits – Lead Chintan Patel – Programmer Jim Gagliano – Programmer Ashleigh Wiatrowski - Artist.
Game Engine Programming. Game Engine Game Engine Rendering Engine (OGRE) Rendering Engine (OGRE) Physics Engine (Bullet) Physics Engine (Bullet) Input/Output.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
CSC 343/642 Interactive 3D Game Development George J. Grevera, Ph.D. George J. Grevera, Ph.D.
AN OVERVIEW OF GAME DEVELOPMENT
Ahmed Saker Indie Game Developer
GAM 200 Club. How to Game Engine GAM 200 Club Zachary Nawar.
“The perfect project plan is possible if one first documents a list of all the unknowns.” Bill Langley.
 GUI – Graphic User Interface  Up to now in the programs we have written all output has been sent to the standard output device i.e.: the DOS console.
11 General Game Programming Approach. The program is event-driven The program is event-driven –Messages = events –So as all windows system (for example.
Concurrent Computing CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
Introduction to Game Programming Pertemuan 11 Matakuliah: T0944-Game Design and Programming Tahun: 2010.
The multiple facets of creating games.. scientist musician game designer lecturer? artist.
Delta3D: To Date Progress of the Delta3D Open Source Game Engine Erik Johnson, Technical Director.
Computer Science A 1. Course plan Introduction to programming Basic concepts of typical programming languages. Tools: compiler, editor, integrated editor,
Java Threads 1 1 Threading and Concurrent Programming in Java Threads and Swing D.W. Denbo.
Game Engines Game: – Engine – Assets (models, animations, sounds, AI, and physics) – Code (Rules, AI, Scripting, etc.)
GUI 1: JFC and Swing Basics OOP tirgul No
Using NetBeans IDE for Desktop Development Geertjan Wielenga
Behavior trees & The C# programming language for Java programmers
Game programming 1.
Unit 20 – Computer Game Platforms & Technology – Software Technology
Rapid Prototyping using UDK
Game Engine Architecture
Week 2 - Monday CS361.
Ch 1. A Python Q&A Session Bernard Chen 2007.
DMS Game Art By Trent Cobb.
TerraForm3D Plasma Works 3D Engine & USGS Terrain Modeler
Programming HCI Yingcai Xiao Yingcai Xiao.
Starter activity – 10mins
Games Engines and Intro to Programming
Unit 20 Software Part 2.
Unit 20 Software Part 2.
Steps to Creating a GUI Interface
Game Engines Non-game specific technology Game: Engine
9. Threads SE2811 Software Component Design
9. Threads SE2811 Software Component Design
Unity Game Development
Unity Game Development
CMSC 202 Threads.
Teach Parallelism Using Video Games
9. Threads SE2811 Software Component Design
Presentation transcript:

Game Engine Architecture CS 134 What is a Game Engine? Game Engine Architecture Sections 1.1 – 1.6

Today in Video Games

CS 185C Roll Call

How are game engines different? Wanna make a game? Who makes video games? What is a game engine? How are game engines different?

Who makes video games?

Who makes video games? Programming Art Design Production QA Publishing Community

Who makes video games? Programming, Design, Art, and Production make up the ”Core Team” Common ratios are 1 Prog : 2 Design : 4 Art 1 Prod per 5 – 10 people Classic Doom's team: Programming: John Carmack Design: John Romero, Sandy Peterson Art: Adrian Carmack, Kevin Cloud, Don Ivan Punchatz, Gregor Punchatz

Who makes video games? Programming Engine programmer Networking programmer Graphics programmer Gameplay programmer Tools programmer Server programmer AI programmer and more… Art Concept artist Environment artist Character artist User Interface Artist Animator Art Director

Who makes video games? Questions?

What is a Game Engine? Most studios nowadays are using an existing engine like Unity or Unreal. Understanding what it takes to make a game engine is helpful for using existing engines.

What is a Game Engine? Unity3D

What is a Game Engine? CryEngine

What is a Game Engine? Unreal Engine

What is a Game Engine? Infinity Engine

What is a Game Engine? Wikipedia says: A game engine is a software framework designed for the creation and development of video games. The core functionality typically provided by a game engine includes a rendering engine (“renderer”) for 2D or 3D graphics, a physics engine or collision detection (and collision response), sound, scripting, animation, artificial intelligence, networking, streaming, memory management, threading, localization support, and a scene graph.

What is a Game Engine? Graphics Drawing, LODs, FX, Culling, ... Physics Collision Detection, Collision Resolution, Raycasts Sound 3D Positioning, Reverb Network Synchronization, Prediction Integrated Editors Edit live games, Behavior (AI) editing Multiple platforms Xbox, PlayStation, Mobile, PC, ... Game-type specific Logic

What is a Game Engine? Graphics Drawing, LODs, FX, Culling, ... Physics Collision Detection, Collision Resolution, Raycasts Sound 3D Positioning, Reverb Network Synchronization, Prediction Integrated Editors Edit live games, Behavior (AI) editing Multiple platforms Xbox, PlayStation, Mobile, PC, ... Game-type specific Logic

What is a Game Engine? In this class, we will cover how to write the following things: Graphics Physics Input Sound AI Data files

What is a Game Engine? Questions?

How are Game Engines Different? /* * HelloWorldSwing.java requires no other files. */ import javax.swing.*; public class HelloWorldSwing { public static void main(String[] args) { //Schedule a job for the event-dispatching thread: //creating and showing this application's GUI. javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } });

How are Game Engines Different? private static void createAndShowGUI() { //Create and set up the window. JFrame frame = new JFrame("HelloWorldSwing"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Add the ubiquitous "Hello World" label. JLabel label = new JLabel("Hello World"); frame.getContentPane().add(label); //Display the window. frame.pack(); frame.setVisible(true); }

How are Game Engines Different? Most of the time, no code is running! Small init section / event based logic Why is this done? Saves energy Nicer if you are running multiple programs Easy to detect if a program has locked up

How are Game Engines Different? These goals don't carry over to games. Instead, games want: High framerate Fun and flavorful UI Maximum use of hardware Run in fullscreen Games have a very different program structure!

How are Game Engines Different? bool shouldExit = false; int main( void ) { SDL_Init( SDL_INIT_VIDEO ); SDL_GL_SetAttribute( SDL_GL_BUFFER_SIZE, 32 ); SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 ); SDL_Window* window = SDL_CreateWindow( "TestSDL", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_OPENGL ); SDL_GL_CreateContext( window ); glewInit(); // Setup OpenGL state glViewport( 0, 0, 640, 480 ); glMatrixMode( GL_PROJECTION ); glOrtho( 0, 640, 480, 0, 0, 100 ); glEnable( GL_TEXTURE_2D );

How are Game Engines Different? // The game loop while( !shouldExit ) { // Handle OS message pump SDL_Event event; while( SDL_PollEvent( &event )) {} GameLogic(); SDL_GL_SwapWindow( window ); } SDL_Quit(); return 0;

How are Game Engines Different? The while() loop here is the ”Game Loop” of a game. Each iteration is a single graphics frame Why graphics? Every function you write just need to handle enough to get the game to its next frame, NOT to the final result.

How are Game Engines Different? Note that not every system needs to run at the same speed as graphics Some often run faster: Physics Some often run slower: AI

How are Game Engines Different? We will cover the game loop in more depth next class. Questions?