WPUG - 3D Multiplayer from iOS and Android to WP8

1,515 views

Published on

Presented at Windows Phone User Group in London (22/04/2013).
Video: https://vimeo.com/64767100
More info: http://multiplay.io

Published in: Technology, Art & Photos
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,515
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

WPUG - 3D Multiplayer from iOS and Android to WP8

  1. 1. iOS vs Android vs Windows PhoneWindows Phone User Group Edition@multiplayio#wpdevPhone Wars
  2. 2. In a galaxy far far Away.…@multiplayio#wpdev
  3. 3. Hello@multiplayio• Architecture Overview• Gameplay Demo• Getting Started• C# and C++• Direct3D and OpenGL• Controls• File Access• Profiling• Publishing• Bonus Demo• Q&A#wpdev
  4. 4. @multiplayio3D Multiplayer Multi-Platform Games Engine#wpdev
  5. 5. Framework LayerEngineApp Layer Platform Layer@multiplayioSupporting Multiple PlatformsRenderer APIApp#wpdevControls APIFile APIScenesObjects
  6. 6. Java C++@multiplayioAndroid onTouch#wpdevonTouch onTouchFramework LayerControls API
  7. 7. Objective C C++@multiplayioiOS onTouch#wpdevonTouch onTouchFramework LayerControls API
  8. 8. Framework Layer Device Layer@multiplayioOpening a File on iOS#wpdevOpenFile OpenFileC++fopenAppObjective CGet iOS UserFolderfreadfclose
  9. 9. @multiplayio#MongoDBdaysCross-Platform Hybrid Multiplayer StackMongoDBSocketsNodeJSNetworkingLogicWebViewDOM/Canvas AppWebGLAppNative AppApp
  10. 10. Gameplay Demo@multiplayiohttp://multiplay.io/play/phonewars#wpdev
  11. 11. Getting Started@multiplayio#wpdev• Folder structure• Debug Configurations• .vcproj files• <IncludePath>• Bundling assets• packager.bat
  12. 12. Getting Started@multiplayio#wpdev
  13. 13. Getting Started@multiplayio#wpdev
  14. 14. Getting Started@multiplayio#wpdev
  15. 15. Just include all source files and you’re done@multiplayio#wpdev
  16. 16. Search Paths (Sorry)@multiplayio#wpdev
  17. 17. Bundle a folder@multiplayio#wpdev
  18. 18. Bundle a folder@multiplayio#wpdev
  19. 19. C# and C++@multiplayio#wpdev• XAML required for good OS integration• Use DispatchTimer to stay in the same thread• Messaging C++ and back• Scary ^ % symbols• Converting from WinRT types and back
  20. 20. Messaging C++@multiplayio#wpdev
  21. 21. Messaging C++@multiplayio#wpdev
  22. 22. Messaging C++@multiplayio#wpdev
  23. 23. Messaging C#@multiplayio#wpdev• You can’t officially• Workaround have C# poll C++
  24. 24. Framework LayerEngineApp Layer Platform Layer@multiplayioDirect3D for OpenGLRenderer APIApp#wpdevControls APIFile APIScenesObjects
  25. 25. RendererRendererD3DRendererOGLRenderer@multiplayioSupporting Direct3D#wpdevSetBlend GLEnable(GL_BLEND)Direct3DOpenGLOMSetBlendStateSetBlend GLEnable(GL_BLEND) glEnable(GL_BLEND)
  26. 26. @multiplayioSupporting Direct3D#wpdev
  27. 27. @multiplayioSupporting Direct3D#wpdev
  28. 28. Supporting Direct3D@multiplayio#wpdev• Beware of Draw Calls• Transpose matrices• No runtime shader compiler• Open source alternative - ProjectAngle• Minimal changes to support Windows 8• No out of the box JPG PNG support• Use libPNG and libJPEG• Cocus2D Open Source Example
  29. 29. Direct3DInterop Platform Layer@multiplayioControls#wpdevOnPointerPressed touchBeginFramework LayerControls API
  30. 30. Controls@multiplayio#wpdev
  31. 31. Controls@multiplayio#wpdev
  32. 32. Controls@multiplayio#wpdev
  33. 33. File Access@multiplayio#wpdev• Marble Maze• BasicReaderWriter.cpp
  34. 34. Framework Layer Device Layer@multiplayioOpening a File on iOS#wpdevOpenFile OpenFileC++fopenAppObjective CGet iOS UserFolderfreadfclose
  35. 35. File Path@multiplayio#wpdev
  36. 36. Read Data@multiplayio#wpdev
  37. 37. Read Data@multiplayio#wpdev
  38. 38. Platform::Array<byte>@multiplayio#wpdev
  39. 39. Profiling@multiplayio#wpdev• Memory not supported for D3D Apps• Do it manually• On device profiling tricky
  40. 40. Profiling@multiplayio#wpdev• Memory not supported for D3D Apps• Do it manually• On device profiling tricky
  41. 41. Publishing@multiplayio#wpdev• Change only on fail• ARM• Debug on Native for screenshots• PEGI - https://wp-rating.pegi.eu/Games/Submit• Markets• In-App Purchasing• WMAppManifest.xml
  42. 42. @multiplayioEditor Demo#wpdev
  43. 43. @multiplayioQUESTIONS?#wpdev
  44. 44. @multiplayioTHANKS!“Fast Delivery. Changed my life.Should present again. A+++++”- iBot5“I wanted to be a pop star before this, butnow I just want to program JavaScript!”- Zombie Justin B.#wpdev

×