on classroom etiquette on classroom etiquette
play

On classroom etiquette On classroom etiquette Please, silence your - PDF document

Game Engine Architecture Game Engine Architecture Spring 2017 Spring 2017 0. Introduction and overview 0. Introduction and overview 0. Introduction and overview 0. Introduction and overview Juha Vihavainen Juha Vihavainen University of


  1. Game Engine Architecture Game Engine Architecture Spring 2017 Spring 2017 0. Introduction and overview 0. Introduction and overview 0. Introduction and overview 0. Introduction and overview Juha Vihavainen Juha Vihavainen University of Helsinki University of Helsinki [Gregory, Chapter 1. [Gregory, Chapter 1. Introduction, pp. 3 Introduction, pp. 3 - 62 62 ] ] [McShaffry, Chapter 2. [McShaffry, Chapter 2. What's in a Game What's in a Game ] On classroom etiquette On classroom etiquette Please, silence your cell phone while in class. Please, silence your cell phone while in class. � � Please, do not take or make phone calls in class. Please, do not take or make phone calls in class. � � Please, do not keep up discussions among each Please, do not keep up discussions among each � � other during lectures other during lectures really, the lectures are voluntary and ongoing really, the lectures are voluntary and ongoing really, the lectures are voluntary and ongoing really, the lectures are voluntary and ongoing � � � � discussions disturb others wishing to listen discussions disturb others wishing to listen but, of course, do ask me questions . . but, of course, do ask me questions . . � � 25.1.2017 25.1.2017 Juha Vihavainen / University of Helsinki Juha Vihavainen / University of Helsinki 2

  2. Preliminary course outline Preliminary course outline � Game engine subsystems and its general architecture Game engine subsystems and its general architecture � � Large Large-scale C++ techniques in a games context scale C++ techniques in a games context � � C++11/14 features (for "modern" C++ programming) C++11/14 features (for "modern" C++ programming) � � essential C++ programming techniques essential C++ programming techniques � � logical modularity (concepts) vs. physical modularity (files) logical modularity (concepts) vs. physical modularity (files) � � on programming standards and C++ style rules on programming standards and C++ style rules � � Simplified engine and component cases � Simplified engine and component cases Simplified engine and component cases Simplified engine and component cases � � � Miscellanous game technology, tools, and techniques Miscellanous game technology, tools, and techniques � � Game engine subsystems: rendering, physics, audio, scripting.. Game engine subsystems: rendering, physics, audio, scripting.. � . . . . . . � � 25.1.2017 25.1.2017 Juha Vihavainen / University of Helsinki Juha Vihavainen / University of Helsinki 3 Course prerequisites Course prerequisites � General maturity in programming General maturity in programming � � object object-oriented concepts, data structures, etc. oriented concepts, data structures, etc. � � use of programming environments, and programming use of programming environments, and programming � experience.. experience.. � Some knowledge of C++ is required Some knowledge of C++ is required � � Software Design Software Design C++ (2014), or similar skills.. C++ (2014), or similar skills.. � � user user-defined types, and basic OO idioms and patterns defined types, and basic OO idioms and patterns � � how to use pointers and manage memory in C/C++ � how to use pointers and manage memory in C/C++ how to use pointers and manage memory in C/C++ how to use pointers and manage memory in C/C++ � � � some material on C++ will be given in the lecture notes some material on C++ will be given in the lecture notes � � Some knowledge on graphics programming is beneficial as Some knowledge on graphics programming is beneficial as � background and motivation, and for optional future projects background and motivation, and for optional future projects 25.1.2017 25.1.2017 Juha Vihavainen / University of Helsinki Juha Vihavainen / University of Helsinki 4

  3. The course The course textbook textbook textbook textbook 25.1.2017 25.1.2017 5 Topics of GEA book include Topics of GEA book include � large large-scale C++ software architecture in a games context scale C++ software architecture in a games context � � mathematics for game programming mathematics for game programming mathematics for game programming mathematics for game programming � � game development tools for debugging, source control and game development tools for debugging, source control and � profiling profiling � engine subsystems including engine foundation systems, engine subsystems including engine foundation systems, � rendering, sound, collision, physics, character animation rendering, sound, collision, physics, character animation and game world object models and game world object models � multiplatform game engines multiplatform game engines multiplatform game engines multiplatform game engines � � game programming in multiprocessor environments game programming in multiprocessor environments � � tools pipelines for game asset management tools pipelines for game asset management � 25.1.2017 25.1.2017 Juha Vihavainen / University of Helsinki Juha Vihavainen / University of Helsinki 6

  4. Jason Gregory: Jason Gregory: Game Engine Architecture Game Engine Architecture (2. ed., 2014) (2. ed., 2014) Ch. 1 Ch. 1 Introduction Introduction Ch. 9 Tools for debugging and developm Ch. 9 Tools for debugging and developm. . what is a game/game engine/cases.. what is a game/game engine/cases.. logging, tracing, debugging, cheats.. logging, tracing, debugging, cheats.. � � � � Ch. 2 Ch. 2 Tools of the trade Ch. 2 Tools of the trade Ch. 2 Tools of the trade Tools of the trade Ch. 10 Rendering engine Ch. 10 Ch. 10 Ch. 10 Rendering engine Rendering engine Rendering engine prog. envs, Visual Studio., version prog. envs, Visual Studio., version the rendering pipeline, visual effects the rendering pipeline, visual effects � � � � control, profiling, leak detection, etc. control, profiling, leak detection, etc. Ch. 11 Animation systems Ch. 11 Animation systems Ch. 3 Fundamentals of SE for games Ch. 3 Fundamentals of SE for games skeletons, poses, skinning.. skeletons, poses, skinning.. � � C++ techniques and practices C++ techniques and practices � � Ch. 12 Ch. 12 Collision and rigid body dynamics Collision and rigid body dynamics Ch. 4 3D math for games Ch. 4 3D math for games physics, collision detection, etc. physics, collision detection, etc. � � points, vectors, matrices, quaternions.. points, vectors, matrices, quaternions.. � � Ch. 13 Audio Ch. 13 Audio (new in 2nd. edition) (new in 2nd. edition) Ch. 5 Engine support systems Ch. 5 Engine support systems Ch. 14 Ch. 14 Introduction to gameplay systems Introduction to gameplay systems memory, strings, start- memory, strings, start memory, strings, start- memory, strings, start -up, configs.. -up, configs.. up, configs.. up, configs.. � � � � implementing game objects/worlds implementing game objects/worlds � � Ch. 6 Ch. 6 Resources and the file system Resources and the file system Ch. 15 Ch. 15 Run Run- -time gameplay foundations time gameplay foundations Ch. 7 Game loop and simulation Ch. 7 Game loop and simulation object model architectures object model architectures � � main loop, and dealing with time.. main loop, and dealing with time.. � � events and message passing events and message passing � � Ch. 8 Human interface devices Ch. 8 Human interface devices (HID) (HID) scripting, loading worlds.. scripting, loading worlds.. � � Ch. 16 Ch. 16 There's more There's more? ? 25.1.2017 25.1.2017 Juha Vihavainen / University of Helsinki Juha Vihavainen / University of Helsinki 7 Related teaching Related teaching in our department in our department Introduction to Game Programming Introduction to Game Programming (Autumn 2016, 2017, 2nd period) (Autumn 2016, 2017, 2nd period) � � Game Engine Architecture (this course, now: 2017, 3rd period) Game Engine Architecture (this course, now: 2017, 3rd period) � � serves as " Game programming Game programming II" serves as " II" � � requires/teaches programming skills in C/C++ requires/teaches programming skills in C/C++ � � Tietokonegrafiikka Tietokonegrafiikka (Spring 2017, 4th period, Otto Nurmi) (Spring 2017, 4th period, Otto Nurmi) � � � computer graphics: rasterisation, shading, texturing.. computer graphics: rasterisation, shading, texturing.. � based on OpenGL OpenGL graphics library � based on graphics library � Game Project Game Project course course (Spring 2017, 4th period) (Spring 2017, 4th period) � � an optional project for IGP and GEA courses an optional project for IGP and GEA courses an optional project for IGP and GEA courses an optional project for IGP and GEA courses � � Compiler design Compiler design & & Code generation Code generation courses (Spring 2018) courses (Spring 2018) � � for understanding script languages and their implementation; for understanding script languages and their implementation; � � include practical implementation projects (interpreter, compiler) include practical implementation projects (interpreter, compiler) 25.1.2017 25.1.2017 Juha Vihavainen / University of Helsinki Juha Vihavainen / University of Helsinki 8

Recommend


More recommend