CS 352: Computer Graphics Game Development Game Development Interactive Computer Graphics Computer Games Value of games? Designed experience Science of engagement Popular cultural medium Big business Game Development Interactive Computer Graphics Game Development Many aspects: Experience design—UI, gameplay, narrative Cinematics Artwork—3D modeling, surfacing, lighting, environment, animations, sound Programming—graphics, UI, physics, AI, networking, game tools Level design Sound engineering Testing Maintenance (bug fixing, adding levels and features) Game Development Interactive Computer Graphics Game Development Budget typically $20 million, as high as $40 million Most games don’t make a profit Small indie companies spring up and die out frequently High expectations 1980s: a single programmer might do a game Now, dozens or hundreds of people might be involved Still, it’s possible for individuals or small teams to do small games (World of Goo – 2 people) Mobile games are changing the industry Game Development Interactive Computer Graphics Casual Games Unity Technologies says: Casual games: a growth segment 1-3 developers, 3-9 months A casual game can make $100,000 or more Game Development Interactive Computer Graphics Software for Game Development Game engine, physics engine Level design 3D Modeling Animation Image, audio, video processing Asset management Now there is a secondary market for game engines, physics engines, tools, models, animations, etc. making development easier Game Development Interactive Computer Graphics Working in the Game Industry Horror stories Gaming Industry – Do not want 7 reasons you don’t want to . . . E.A. Spouse Game Development Interactive Computer Graphics Unity3D Popular commercial game engine Initial release in 2006 Cross platform Freeware license with 80% of functionality in 2009 disrupts game engine market Game Development Interactive Computer Graphics Unity3D demo Scene: all objects, graphical Hierarchy: all objects, list Project: file structure Inspector: detailed view of current object Game view Layouts Navigation (F-frame) Inspector Parenting Game Development Interactive Computer Graphics Workshop: Open Source and Freeware Software for Game Development Game Development Interactive Computer Graphics Game Development Interactive Computer Graphics Proposed Game to Assembly • Your hero is in the entry of a maze and must find the key and the exit to open the main gate • The maze have different pitfalls, monsters and you run against the time 5 Wednesday, March 9, 2011 5 Game Development Interactive Computer Graphics 3D Game Development Pipeline 2D Textures GIMP Create/Edit Audacity Terrain Generation Audio Effects Start 3D Modeling SketchUp 3D Models Integrate Export Formats Create Blender Evolver Animate Animeeple Loaded Objects Heads Up Display Camera Control Character Control Sound Effects Collision Detection Enemies Control Scene Lights Lights Control Programming Scripts JavaScript 3D Game Engine Unity Used Software Open Source Characters Freeware End Low cost 4 Wednesday, March 9, 2011 4 Game Development Interactive Computer Graphics Trail Map 2D Textures GIMP Create/Edit Audacity Terrain Generation Audio Effects Start 3D Modeling SketchUp 3D Models Integrate Export Formats Create Blender Evolver Animate Animeeple Loaded Objects Heads Up Display Camera Control Character Control Sound Effects Collision Detection Enemies Control Scene Lights Lights Control Programming Scripts JavaScript 3D Game Engine Unity Used Software Open Source Characters Freeware End Low cost 14 Wednesday, March 9, 2011 14 Game Development Interactive Computer Graphics About SkecthUp • Initial release in 2000 by a startup @Last Software under concept: “3D for everyone” • In 2006 Google acquires the company • • Current release is Sketchup 8 • Freeware license could be extended to the professional version for $495 USD • http://sketchup.google.com Supports Windows and Apple Mac OSX 8 Wednesday, March 9, 2011 8 Game Development Interactive Computer Graphics Game Development Interactive Computer Graphics Game Development Interactive Computer Graphics Game Development Interactive Computer Graphics Trail Map 2D Textures GIMP Create/Edit Audacity Terrain Generation Audio Effects Start 3D Modeling SketchUp 3D Models Integrate Export Formats Create Blender Evolver Animate Animeeple Loaded Objects Heads Up Display Camera Control Character Control Sound Effects Collision Detection Enemies Control Scene Lights Lights Control Programming Scripts JavaScript 3D Game Engine Unity Used Software Open Source Characters Freeware End Low cost 21 Wednesday, March 9, 2011 21 Game Development Interactive Computer Graphics Game Development Interactive Computer Graphics About Animeeple • Founded in 2008 by Okan Arikan and and Leslie Ikemoto • Concept “easy to use character animation tool” • • • Current release 0.4.15 • • Good tutorials & documentation • http://www.animeeple.com Supports Windows and Apple Mac OSX Freeware License could be extended to export FBX for $49 USD Useful library / store of animations and characters 16 Wednesday, March 9, 2011 16 Game Development Interactive Computer Graphics Game Development Interactive Computer Graphics Game Development Interactive Computer Graphics Game Development Interactive Computer Graphics Trail Map 2D Textures GIMP Create/Edit Audacity Terrain Generation Audio Effects Start 3D Modeling SketchUp 3D Models Integrate Export Formats Create Blender Evolver Animate Animeeple Loaded Objects Scene Lights Heads Up Display Camera Control Character Control Sound Effects Collision Detection Enemies Control Lights Control Programming Scripts JavaScript 3D Game Engine Unity Used Software Open Source Characters Freeware End Low cost 37 Wednesday, March 9, 2011 37 Game Development Interactive Computer Graphics Game Development Interactive Computer Graphics Unity • • Initial release in 2006 • • Current release is 3.3 • Freeware License with 80% of functionalities / $1500 USD for Unity Pro. In 2009 democratizes it use with a freeware licensee and disrupts the market Windows, Mac OSX, iOS4, Android, XBOX, PSP3, Nintendo 23 Wednesday, March 9, 2011 23 Game Development Interactive Computer Graphics Unity Advantages • Full game development engine targeting multiple platforms • Asset centered rather than code centric • Programs in JavaScript or C# • Many tutorials and documentation support 24 Wednesday, March 9, 2011 24 Game Development Interactive Computer Graphics Game Development Interactive Computer Graphics Game Development Interactive Computer Graphics Unity Conceptual Framework Components S c r ip t Assets Game Object Assets Assets Scene Game Object Unity Project 27 Wednesday, March 9, 2011 27 Game Development Interactive Computer Graphics Game Development Interactive Computer Graphics Game Development Interactive Computer Graphics Components • Are the building blocks of Game Objects • They can represent • • • Component Components have variables Visible entities Meshes Materials Cameras Terrain Data Particle Systems Lights Abstract entities Multiple components can be attached to Game Objects Visible Entities Abstract Entities 31 Wednesday, March 9, 2011 31 Game Development Interactive Computer Graphics Game Development Interactive Computer Graphics Game Development Interactive Computer Graphics Game Development Interactive Computer Graphics Game Development Interactive Computer Graphics Game Development Interactive Computer Graphics About Scripts • They can be in JavaScript or C# • It is possible to have different scripts to support parallel processing • U n it y S c r ip t s http://unity3d.com/ support/documentation/ ScriptReference/ index.html Scripts are attached to Game Objects U p d a t e ( ) F ix e d U p d a t e ( ) B y d e fa u lt e x e c u te d e a c h fr a m e E x e c u te d e a c h tim e o fa P h y s ic s S ta te Is th e b o d y o f th e th r e a d Is o th e rp o s s ib le th r e a d A G a m e O b je c tc a n b e k ille d c a llin g its fu n c tio n D e s t r o y ( ) 39 Wednesday, March 9, 2011 39 Game Development Interactive Computer Graphics Scripts Life Cycle Game Begin During Game Destroy is called Awake() Update() OnDestroy() +Is like the constructor of a GameObject +Initialize variables +Executed only one time Called every frame LateUpdate() +When other GameObject script calls to destroy an object you can finalize variables Called every frame Start() Game End Inter object initialization 40 Wednesday, March 9, 2011 40