Design your 3d game engine

6,525 views

Published on

Talk about how to develop a cross-platform game engine

Design your 3d game engine

  1. 1. Senior software engineer穆道聖2012.1.4 1
  2. 2.  About Me History of 3D Game Engine Game Platforms 3D Engine Architecture Cross-platform Solution Discussion Q&A 2
  3. 3.  Development experience in 3D cross- platform engine  PC  PSP  Web 3
  4. 4.  Why we need game engine?  Reusability  Accumulate existing know-how  High production 4
  5. 5.  RAGE 5
  6. 6.  id Software  John Romero  John Carmack 6
  7. 7.  id Software  John Romero  John Carmack 7
  8. 8.  id Software  SoftDisk ▪ Port games from Apple to PC ▪ PC ver. Mario  Founded id Software in 1991. 2 .1  Apogee ▪ Commander Keen ▪ Wolfenstein 3D: texture mapping, perspective projection, raycasting 8
  9. 9.  Mid-1990s: Id tech engine series  id Tech 1 – Doom, Doom II ▪ BSP ▪ PVS ▪ LAN, Deathmatch  id Tech 2 – Quake, Quake II, Half-Life ▪ 3Dfx Voodoo, OpenGL ▪ Colored lighting ▪ Lightmap ▪ WAN  id Tech 3 – Quake III, COD ▪ Fixed-function shader script ▪ Dynamic shadow ▪ Bot 9
  10. 10.  id Tech 4 – Doom III, Quake IV ▪ C++ based ▪ Physics ▪ Shader model ▪ Per-pixel lighting ▪ Bump mapping ▪ Skeletal animation id Tech 5 ▪ Mega texture ▪ Parallax mapping ▪ Motion blur, bloom id Tech 6… 10
  11. 11. 11
  12. 12. 12
  13. 13.  Unreal Engine: 1998  Unreal Engine 1 ▪ Object-oriented ▪ Real-time, visual toolset ▪ Script language ▪ Last major software  Unreal Engine 2 ▪ PS2, Xbox, PC, DirectX7 ▪ Single thread 13
  14. 14.  Unreal Engine: 1998  Unreal Engine 3 ▪ HDRR, per-pixel lighting and dynamic shadows ▪ Windows, Xbox 360, PlayStation 3, Linux, Mac OS X, iOS, Android, and Adobe Flash Player 11 ▪ DirectX9 ▪ Multithreading ▪ Advance physics ▪ Virtual tools 14
  15. 15. 15
  16. 16. • PS3Console • XBOX 360 • Wii • Windows Desktop • Linux • Mac OSX • NDS, N3DS Handheld • PSP, Vita Device • iPhone/iPad • Android devices • IE: ActiveX WebBrowser • Chrome, Firefox, Safari…: NPAPI 16
  17. 17. 17
  18. 18. Target platform?Tools pipeline?Programming language?Game design?Reach or Rich? 18
  19. 19. Decide Scene Render Materialmodel Draw surface management module systemformat 19
  20. 20. 20
  21. 21.  As possible as minimize draw surface  View frustum culling 21
  22. 22.  As possible as minimize draw surface  Tree hierarchy ▪ BSP ▪ Quad-Tree ▪ Oct-Tree ▪ KD-Tree 22
  23. 23. 23
  24. 24.  As possible as minimize draw surface  Preprocess visibility determination 24
  25. 25. 25
  26. 26.  As possible as minimize draw surface  Preprocess visibility determination 26
  27. 27. Vertex Index buffer bufferMaterial• Texture Execute• Render state draw call• Shader 27
  28. 28.  Different platform provides different render API  DirectX  OpenGL  OpenGL ES  Customized API 28
  29. 29.  Call of Duty: Modern Warfare 3 29
  30. 30.  Core technology of Graphics  Lighting  Shadow  Texturing  Skin animation  etc… 30
  31. 31.  Algorithm 31
  32. 32.  Artifact Resolution 32
  33. 33.  Parallel-Split Shadow Maps 33
  34. 34.  Parallel-Split Shadow Maps 34
  35. 35. 35
  36. 36. 36
  37. 37. 37
  38. 38.  Deferred Rendering 38
  39. 39. 39
  40. 40. 40
  41. 41. 41
  42. 42. 42
  43. 43. Platform Non-platform-dependency codes dependency codes Abstract layer Software SceneRender Layer Game Logic development Manager kit 43
  44. 44.  Unity  Microsoft Windows , Mac OS X, Xbox 360, PlayStation 3, Wii, iPad, iPhone, Android, Web browser  Future: Flash, Google Native Client, Linux, Roku2  5000 USD 44
  45. 45. 45
  46. 46.  Tools pipeline Engine development cost What is your product 46
  47. 47. Thank you for attending 47

×