Simulation Engines TDA571|DIT030 Course Introduction Tommaso Piazza 1
The Course in brief Develop an interactive simulation engine Focus on software engineering Not just game programming Use the paradigm that the engine acts as middleware IDC | Interaction Design Collegium 2
Learning Outcomes Understand the typical structure of simulation engines and the requirements of specific parts of such engines Understand which public libraries and programs can be combined with simulation engines to provide the required functionality of an interactive simulation Analyze existing simulation engines to determine functionality and extendibility Plan several parallel extensions of a simulation engine while minimizing dependencies Extend existing simulation engines to augment functionality while maintaining stability and having predictable consequences on resource use Present extensions of a simulation engine through demonstrators and public presentations IDC | Interaction Design Collegium 3
Course Rationale The games industry grows at a tremendous rate Bigger than Hollywood Large demand on software engineers with formal education in games programming Modern game development requires good software engineering skills and no longer allows for the old “hacking” styles Technical complement to the course “Game Design” IDC | Interaction Design Collegium 4
Teachers Involved Main teacher & Supervisor Tommaso Piazza piazza@chalmers.se Examinator Staffan Björk Programme Manager Olof Torgersson IDC | Interaction Design Collegium 5
Administrative Stuff Roll call Fill in the form handed out Student representatives 3 people All information about the course in available on the course webpage http://www.cs.chalmers.se/idc/ituniv/kurser/09/simul/ Check the webpage frequently! IDC | Interaction Design Collegium 6
Grading Information Examination in this course consists of a group project . The course has no written exam A passing grade requires the following: An approved written suggestion for an individual extension of the simulation engine A passing grade on your group's project report A passing grade on your group's project presentation A passing grade on your personal project report A verbal presentation of a course subject The course is divided in two parts. One part is 2 points and represents each student's individual effort and the other is 3 points and represents the project group's collaborative effort. Possible grades are failure, 3, 4 and 5 at Chalmers or U, G and VG at Göteborgs Universitet. Grading is individual and is based on the above mentioned subjects as well as the project supervisor's judgement. IDC | Interaction Design Collegium 7
Important Dates Mon, 2 Nov 24.00 Extension suggestions should be handed in to project supervisors Mon, 9 Nov Approval of extension suggestions Week 2-7 Individual presentations of themes from project members Mon, 11 Jan 24.00 Group reports and individual reports should be handed in Exam week Project presentations Failing to keep a deadline without a proper explanation in good time before the deadline will result in a failing grade! IDC | Interaction Design Collegium 8
Game Engines GameBryo IDC | Interaction Design Collegium 9
Example: Quake & Doom Engine Developed by ID software One of the first commercial engines Games act as advertisement for the engine Old engines are released as Open Source Price example for Jedi Knight II Q3A: $250000 IDC | Interaction Design Collegium 10
Example: Quake & Doom Engine IDC | Interaction Design Collegium 11
Example Unreal Engine Developed by Epic Games Multiplatform Xbox360 PS3 PC Popular engine UT07, GoW, Lineage 2, Splinter Cell, BioShock... Unreal 3 has been used in the development of more than 600 titles IDC | Interaction Design Collegium 12
Example Unreal Engine IDC | Interaction Design Collegium 13
Example Cry Engine Developed by CryTek Commercially available Far Cry 2004 Crysis 2007 Crysis Warhead 2008 Crysis 2 yet to come http://www.crytek.com/ IDC | Interaction Design Collegium 14
Example Cry Engine IDC | Interaction Design Collegium 15
Key features of most engines Rendering Animation Audio Physics Scripting Networking Cinematics Editors IDC | Interaction Design Collegium 16
What is a Game Engine? “ A game engine is the underlying software behind a game. It provides the functionality which is common to all games . A 3D game engine is a game engine that is designed specifically for 3D games (basically, any game that can benefit from a 3D card) ... [it will] provide such functionality as rendering models and worlds, network communications, and interfacing with the player. By using a pre-existing game engine, game developers can skip most of the work that goes into programming a game and instead focus on the content of their particular game .” http://www.gauge3d.org IDC | Interaction Design Collegium 17
Definition of Game Engine A game engine is a top- down framework of reusable components geared towards computer game development and implementing common concepts and functionality found in most (or all) games for a specific genre IDC | Interaction Design Collegium 18
Definition of Component A component is an independent unit of deployment with contractually specified interfaces and with explicit context dependencies to other external components only IDC | Interaction Design Collegium 19
Definition of Game Component A game component system is a bottom-up framework of reusable components geared towards computer game development and implementing common concepts and functionality found in most (or all) games for a specific genre IDC | Interaction Design Collegium 20
Example RenderWare Game component framework Open framework Multiplatform Interesting architecture Genre packs IDC | Interaction Design Collegium 21
Simulation Engines Advantages Simulation engines are a relatively new concept and allow for a few advantages: Shorter development time Focus on gameplay. Performance and stability IDC | Interaction Design Collegium 22
Simulation Engines Disadvantages Generalized structure: Monolithic design Inflexible design Technical limitations These can be avoided at least to some degree with well planned software engineering IDC | Interaction Design Collegium 23
Computer Game Components IDC | Interaction Design Collegium 24
Course Focus Game engines and simulation engines Not games and simulations Software engineering for games Technical knowledge for engine programming Using existing frameworks and engines Read, understand and edit external code Documentation of game engine code Group work in project form Present information both to your group and outside of it IDC | Interaction Design Collegium 25
Course Focus Not focus on: Game programming Game design Computer graphics The latest in 3D and games How to get a publisher for your game How to start a games company C++ programming Software engineering But it might contain bits and pieces of all of these things IDC | Interaction Design Collegium 26
Course Contents Introduction to simulation engines and practical information Software engineering , architecture and design Multimedia and scenegraphs 3D graphics AI and network Physics Input and collision detections , misc. Project demos: Project Deliveries Extension suggestion, group project repot, individual report Demonstrations Extension demonstration, project demonstration No written exam IDC | Interaction Design Collegium 27
Course Contents, cont. One theme each week Two lectures per week (mostly) Monday 10-12 Wednesday 10-12 One hour mandatory meeting for every group Mondays or Wednesdays 13.00-17.00 Mandatory presentation each week IDC | Interaction Design Collegium 28
Course Contents, cont. In the course, we want our developed simulation engines to be: Object oriented Component based General Extendable Effective IDC | Interaction Design Collegium 29
Simulation Engine or Game Engine? For the duration of this course, “Simulation engines” and “Game engines” are synonymous “Game engine” will refer to middleware that can be used both for simulations and games IDC | Interaction Design Collegium 30
Example America’s Army Financed by the US military Two purposes: Training platform for group-based units Advertisement to recruit new soldiers Uses the Unreal engine IDC | Interaction Design Collegium 31
Recommend
More recommend