1.16k likes | 5k Views
Introduction to Game Development. Introduction to game development. Game Platform Game Types Game Team Game Development Pipeline Game Software System Tools. Game platform. PC Single player Massive multi-player online game ( MMOG ) Web-based Games Console ( Video game console )
E N D
Introduction to Game Development
Introduction to game development Game Platform Game Types Game Team Game Development Pipeline Game Software System Tools
Game platform • PC • Single player • Massive multi-player online game ( MMOG ) • Web-based Games • Console ( Video game console ) • Sony PS2 • Microsoft Xbox • Nintedo GameCube • Arcade ( Coin-operated entertainment machine ) • Mobile • Game Boy Advance ( GBA ) • Handheld video game console • iPhone
Game development on PC • Designed for office application • Not for entertainment • A virtual memory system • Unlimited memory using • But video memory is limited • PCI/AGP might be a challenge • Open architecture • Compatibility test is important • Development is easy to setup
Game development on console • Specific hardware designed for games • Single user / single process OS • In general no hard disk drive (??) • Closed system • Very native coding way • Proprietary SDK • Hardware related features • Limited resources • Memory • One console runs, the others do!
Game types RPG (Role playing games) AVG (Adventure games) RTS (Real-time strategy games) FPS (First-person shooting games) MMORPG ( Massively multiplayer online role playing game ) Strategy game Simulation game Sports Puzzle games Table games
Game team members • Development Team • Producers • Executive producers • Game designers • Programmers • Artists • Level designers • Sound engineers • Sales and marketing ( 行銷業務團隊 ) • Testers (測試團隊 ) • Game review committee ( 遊戲審議委員會 )
Game producer 遊戲製作人 Team leader (always) Resource management ( 資源管理 ) Administration ( 行政管理 ) Upward management ( 向上管理) Project management ( 專案管理 )
Game executive producer 遊戲執行製作人 Project management ( 專案管理執行 ) Daily operation House keeping Not full-time job position
Game design 遊戲企劃 Story telling ( 故事設計 ) Scripting ( 腳本設計 ) Game play design ( 玩法設計 ) Level design ( 關卡設計 ) Game tuning ( 遊戲調適 ) Numerical setup ( 數值設定 ) Game AI (AI 設計 ) Sound FX setup ( 音效設定 ) Scene setup( 場景設定 )
Game art 遊戲美術 Terrain( 場景 ) Character( 人物 ) Models( 建模 ) Textures( 材質 ) Motion / Animation( 動作 ) FX( 特效 ) User Interface
Game program 遊戲程式 • Game program (遊戲程式) • Game tools (遊戲開發工具) • Level editor • Scene editor • FX editor • Script editor • Game data exporters from 3D software • 3dsMax / Maya / Softimage • Game engine development • Online game server development
Flowchart of game development Basic Procedures for Game Development Idea Proposal Production Integration Testing Debug Tuning Pre-alpha Concept Approval Prototype Alpha Beta Final > Concept Approval > 雛形 (Prototype) > Pre-alpha > Alpha > Beta • Idea (發想) • Proposal (提案) • Production (製作) • Integration (整合) • Testing (測試) • Debug (除錯) • Tuning (調適)
Concept design ( 遊戲發想 ) • Game types ( 遊戲類型 ) • Game world ( 遊戲世界觀 ) • Story ( 故事 ) • Features ( 遊戲特色 ) • Game play ( 遊戲玩法 ) • Game product positioning ( 遊戲定位 ) • Target player • Marketing segmentation / positioning • Risk ( 風險評估 ) • SWOT (Strength/Weakness/Opportunity/Threat)
Proposal 遊戲提案 • System analysis ( 系統分析 ) • Game design document ( GDD 撰寫 ) • Media design document ( MDD 撰寫 ) • Technical design document ( TDD 撰寫 ) • Game project ( 遊戲專案建立 ) • Schedule • Milestones / check points • Risk management • Proposal for testing ( 測試計畫書 ) • Team building ( 團隊建立 )
Production 遊戲開發 Quality > Quantity • High quality artworks • Modeling • Textures • Animation • Motion • FX (Special Effects) • Coding ( 程式開發 ) • Marketing
Integration 遊戲整合 • Level integration ( 關卡串聯 ) • Number tuning ( 數值調整 ) • Audio ( 音效置入 ) • Artworks ( 完成所有美術 ) • Integration of game programs and artworks ( 程式與美術結合 ) • Focus group (User study) • Release some playable levels for focus group
Testing 遊戲測試 • Alpha ( 測試 ) • Debug ( 除錯 ) • Beta ( 測試 ) • Number tuning ( 值微調 ) • Game play tuning ( 微調 ) • MMOG ( 對線上遊戲而言 ) • Closed beta ( 封閉測試 ) • Open beta ( 開放測試 ) • Critical testing ( 極限測試 )
Bugs Bug Bug Classification Bug Dispatch ? Debug N Verify Y FAQ • Bug Classification ( Bug 分級 ) http://www.cse.iitd.ernet.in/ ~jalote/papers/CommonBugs.pdf • Memory leaks • Free already freed resources • NULL dereferencing • Show in different formats • Synchronization errors • Value outside domain • In terms of game play experience • Principles • Strict guidelines for bug classification • Tester vs Debugger
Game software system NPC System Virtual Agent Trading System Story Fighting System FX System Game AI Script System Terrain Collision Character Dynamics Sound FX UI 3D Scene Mngmt 2D Sprite Gamepad Audio Network 3D Graphics API 2D API Input Device OS API Game Game Play Layer Engine Layer System Layer Hardware
System Layer – APIs (1/2) • Graphics API • DirectX Graphics • OpenGL 3.0 • Input Device • DirectX SDK – DirectInput • Audio • DirectX SDK – DirectSound / Direct3DSound / DirectMedia • OpenAL • Network
System Layer – APIs (2/2) • OS API • Win32 SDK • MFC • Network • DirectX SDK – DirectPlay • Socket library • RakNet “RakNet is a cross platform, open source, C++ networking engine for game programmers. A lower level framework powers higher-level features such as game object replication.” Source: http://www.jenkinssoftware.com/ (last visited: 19 Feb. 2011) • Development environment .NET 2003
Engine Layer (1/2) • 3D scene management system • Scene graph • Shaders • 2D sprite system • Audio system • Gamepad • Hotkey • Mouse • Timers • Network • Driver development kit ( DDK ) interface
Engine Layer (2/2) • Terrain • Advanced scene management – space partition • BSP Tree • Octree • Character system • Motion blending techniques • Dynamics • Collision detection • SoundFX • User interface
Game Play Modula • NPC (Non-playable characters) • Game AI • Path finding • Finite state machine • Avatar • Combat system • FX system • Script system • Trading system • Number system
Game development tools • Visual C++ • .NET • Visual C/C++ 6.0+ SP5 • DirectX or OpenGL • NuMega BoundsChecker http://en.wikipedia.org/wiki/BoundsChecker A memory checking tool • Intel vTune (效能分析器) http://software.intel.com/en-us/articles/intel-vtune-amplifier-xe/ • 3D tools • 3dsMax/Maya/Softimage/Blender/ • In-house tools
Course Homepage http://www.cs.nctu.edu.tw/~cswingo/teaching/3DGamePro/
Doxygen • Use doxygen to document ALL programs: • http://www.stack.nl/~dimitri/doxygen/download.html
The File Structure of Game Skeleton \3DGameCourse_Ogre_vc_9_v1-7-1 • \boost_1_42 • \lib OgreMain.dll, OgreTerrain.dll, etc. • Include \OIS, \OGRE • media • \programs • gameSkeleton • demo_hello.sln • \media \\ stores fonts, textures, scripts, etc • \release • \debug • \source \\ cpp files and .h files and other • \bin\release \\ binary, DLLs • docs \\ documents
OGRE3D http://www.ogre3d.org/download/sdk OGRE 1.7.1 or up Visual C++ .Net 2010 (32-bit) Course: http://sourceforge.net/projects/ogre/files/ogre/1.7/ OgreSDK_vc9_v1-7-1.exe 2010-04-25 52.3 MB