Introduction to Game Development 1 Introduction to game






























- Slides: 30
Introduction to Game Development 1
Introduction to game development Game Platform n Game Types n Game Team n Game Development Pipeline n Game Software System n Tools n 2
Game platform n PC – Single player – Massive multi-player online game ( MMOG ) – Web-based Games n Console ( Video game console ) – Sony PS 2 – Microsoft Xbox – Nintedo Game. Cube n n Arcade ( Coin-operated entertainment machine ) Mobile – – – Game Boy Advance ( GBA ) Handheld video game console i. Phone 3
Game development on PC n n n n 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 4
Game development on console n n n 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 n Limited resources – Memory n One console runs, the others do! 5
Game types n RPG (Role playing games) AVG (Adventure games) RTS (Real-time strategy games) FPS (First-person shooting games) n MMORPG ( Massively multiplayer online role n n n playing game ) n n n Strategy game Simulation game Sports Puzzle games Table games 6
Game team members n n Development Team – Producers – Executive producers – Game designers – Programmers – Artists – Level designers – Sound engineers Sales and marketing ( 行銷業務團隊 ) Testers (測試團隊 ) Game review committee ( 遊戲審議委員會 ) 7
Game producer 遊戲製作人 n n n Team leader (always) Resource management ( 資源管理 ) Administration ( 行政管理 ) Upward management ( 向上管理) Project management ( 專案管理 ) 8
Game executive producer 遊戲執行製作人 n n Project management ( 專案管理執行 ) Daily operation House keeping Not full-time job position 9
Game design 遊戲企劃 n n n n n Story telling ( 故事設計 ) Scripting ( 腳本設計 ) Game play design ( 玩法設計 ) Level design ( 關卡設計 ) Game tuning ( 遊戲調適 ) Numerical setup ( 數值設定 ) Game AI ( AI 設計 ) Sound FX setup ( 音效設定 ) Scene setup ( 場景設定 ) 10
Game art 遊戲美術 n n n n Terrain ( 場景 ) Character ( 人物 ) Models ( 建模 ) Textures ( 材質 ) Motion / Animation ( 動作 ) FX ( 特效 ) User Interface 11
Game program 遊戲程式 n n n Game program (遊戲程式) Game tools (遊戲開發 具) – Level editor – Scene editor – FX editor – Script editor Game data exporters from 3 D software – 3 ds. Max / Maya / Softimage Game engine development Online game server development 12
Flowchart of game development Basic Procedures for Game Development Idea Proposal Production Concept Prototype Approval n n n Integration Idea (發想) Proposal (提案) Production (製作) Integration (整合) Testing (測試) – Debug (除錯) – Tuning (調適) Pre-alpha Testing Debug Tuning Alpha Beta > Concept Approval > 雛形 (Prototype) > Pre-alpha > Alpha > Beta 13 Final
Concept design ( 遊戲發想 ) n n n n Game types ( 遊戲類型 ) Game world ( 遊戲世界觀 ) Story ( 故事 ) Features ( 遊戲特色 ) Game play ( 遊戲玩法 ) Game product positioning ( 遊戲定位 ) – Target player – Marketing segmentation / positioning Risk ( 風險評估 ) – SWOT (Strength/Weakness/Opportunity/Threat) 14
Proposal 遊戲提案 n n n n 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 ( 團隊建立 ) 15
Production 遊戲開發 n n n High quality artworks – Modeling – Textures – Animation – Motion – FX (Special Effects) Coding ( 程式開發 ) Marketing Quality > Quantity 16
Integration 遊戲整合 n n n Level integration ( 關卡串聯 ) Number tuning ( 數值調整 ) Audio ( 音效置入 ) Artworks ( 完成所有美術 ) Integration of game programs and artworks ( 程式 與美術結合 ) Focus group (User study) – Release some playable levels for focus group 17
Testing 遊戲測試 n n n Alpha ( 測試 ) – Debug ( 除錯 ) Beta ( 測試 ) – Number tuning ( 值微調 ) – Game play tuning ( 微調 ) – MMOG ( 對線上遊戲而言 ) » Closed beta ( 封閉測試 ) » Open beta ( 開放測試 ) Critical testing ( 極限測試 ) 18
Bugs n Bug Classification ( Bug 分級 ) http: //www. cse. iitd. ernet. in/ n Bug ~jalote/papers/Common. Bugs. pdf Bug Classification – Memory leaks Bug Dispatch – Free already freed resources – NULL dereferencing Debug – Show in different formats – Synchronization errors N Verify – Value outside domain Y – In terms of game play experience FAQ Principles – Strict guidelines for bug classification – Tester vs Debugger ? 19
Game software system Game NPC System Fighting System Terrain Collision 3 D Scene Mngmt 3 D Graphics API Virtual Agent Trading System FX System Game AI Story Script System Character Dynamics Sound FX 2 D Sprite Gamepad Audio Network Input Device OS API 2 D API Game Play Layer UI Engine Layer System Layer Hardware 20
System Layer – APIs (1/2) n Graphics API – Direct. X Graphics – Open. GL 3. 0 n Input Device – Direct. X SDK – Direct. Input n Audio – Direct. X SDK – Direct. Sound / Direct 3 DSound / Direct. Media – Open. AL – Network 21
System Layer – APIs (2/2) n OS API – Win 32 SDK – MFC n Network – Direct. X SDK – Direct. Play – Socket library n Rak. Net “Rak. Net 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) 22
Engine Layer (1/2) n 3 D scene management system – Scene graph n n n n n Shaders 2 D sprite system Audio system Gamepad Hotkey Mouse Timers Network Driver development kit ( DDK ) interface 23
Engine Layer (2/2) n n Terrain Advanced scene management – space partition – BSP Tree – Octree n n n Character system Motion blending techniques Dynamics Collision detection Sound. FX User interface 24
Game Play Modula n n NPC (Non-playable characters) Game AI – Path finding – Finite state machine n n n Avatar Combat system FX system Script system Trading system Number system 25
Game development tools n Visual C++ –. NET – Visual C/C++ 6. 0+ SP 5 n n Direct. X or Open. GL Nu. Mega Bounds. Checker http: //en. wikipedia. org/wiki/Bounds. Checker A memory checking tool n Intel v. Tune (效能分析器) http: //software. intel. com/en-us/articles/intel-vtune-amplifier-xe/ n 3 D tools – 3 ds. Max/Maya/Softimage/Blender/ n In-house tools 26
Course Homepage http: //www. cs. nctu. edu. tw/~cswingo/teaching/3 DGame. Pro/
Doxygen -Use doxygen to document ALL programs: http: //www. stack. nl/~dimitri/doxygen/download. html
The File Structure of Game Skeleton 3 DGame. Course_Ogre_vc_9_v 1 -7 -1 – – – boost_1_42 lib Ogre. Main. dll, Ogre. Terrain. dll, etc. Include OIS, OGRE media programs » game. Skeleton n n n demo_hello. sln media release debug source binrelease docs \ stores fonts, textures, scripts, etc \ cpp files and. h files and other \ binary, DLLs \ documents
OGRE 3 D http: //www. ogre 3 d. org/download/sdk n OGRE 1. 7. 1 or up Visual C++. Net 2010 (32 -bit) n n Course: http: //sourceforge. net/projects/ogre/files/ogre/1. 7/ Ogre. SDK_vc 9_v 1 -7 -1. exe 2010 -04 -25 52. 3 MB