Realtime User-Generated Cross-Platform Multiplayer Gaming


Published on is a realtime cross-platform gaming platform that allows you to edit the games as they are being played on mobile and web devices. We've been using MongoDB now since the inception of the project, where we quickly needed a data store to handle synchronization between our players entering and leaving a 3d chatroom with guns game. Since then we've gone on to add standard gaming features such as leader boards, real time game analytics, game replays and some not so standard features such as modifying the 3d assets and textures of the games as they're being played. In this talk, we'd like to share with you the tricks and techniques we've used to handle our ever changing datasets and assets store to scale across different versions of the game clients and platforms. Which will help you gain insight into building a cross-platform rapid prototyping environment of your own too.

  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Realtime User-Generated Cross-Platform Multiplayer Gaming

  1. 1. Realtime User Generated Multi-Platform Multiplayer 3D Gaming [Warning: May contain LIVE DEMO]#MongoDBdays @multiplayio
  2. 2. Hello • Going Multiplayer • Going Multi-Platform • Why use MongoDB? • How we use MongoDB?#MongoDBdays @multiplayio
  3. 3. Common Multiplayer Web Stack MongoDB NodeJS SocketIO Web App#MongoDBdays @multiplayio
  4. 4. • Server • Client#MongoDBdays @multiplayio
  5. 5. Maintaining State • Saving game events for analytics Web Server MongoDB App App Shot Fired Save Event Game Events Collection#MongoDBdays @multiplayio
  6. 6. #MongoDBdays @multiplayio
  7. 7. Gameplay Demo @multiplayio
  8. 8. HTML5 Firefox OS Blackberry iOS Tizen Ubuntu Linux Android Windows Mac Windows Phone ..but slow?#MongoDBdays @multiplayio
  9. 9. C++/GPU APIs Firefox OS Blackberry iOS Tizen Ubuntu Linux Android Windows Mac Windows Phone#MongoDBdays @multiplayio
  10. 10. Cross-Platform Proxy Multiplayer Stack MongoDB NodeJS Proxy Server Java Server SocketIO Sockets JavaScript C++ Networking Networking Logic Logic Web Native App App#MongoDBdays @multiplayio
  11. 11. Cross-Platform Hybrid Multiplayer Stack MongoDB NodeJS Sockets DOM/Canvas App Networking Logic Native App App WebGL Web App View#MongoDBdays @multiplayio
  12. 12. Hackathon Challenge • Mongoose • Jansson • Async#MongoDBdays @multiplayio
  13. 13. • JavaScript Networking Logic to C++ • C++#MongoDBdays @multiplayio
  14. 14. Supporting Native Platforms Device Layer Framework Layer Application Layer Qt Renderer Renderer iOS Renderer Engine App#MongoDBdays @multiplayio
  15. 15. Supporting Direct3D#MongoDBdays @multiplayio
  16. 16. Editor Demo#MongoDBdays @multiplayio
  17. 17. Editing Objects#MongoDBdays @multiplayio
  18. 18. Supporting Hybrid Platforms Device Framework JavaScript Proxy JavaScript App Qt Renderer Proxy Renderer App Renderer iOS Renderer Engine WebView ..JIT?#MongoDBdays @multiplayio
  19. 19. Renderer Proxy • JavaScript • C++#MongoDBdays @multiplayio
  20. 20. Performance Issues#MongoDBdays @multiplayio
  21. 21. Why MongoDB? • Community • Get’s out of your way • Fun & Easy • 10gen Education • JSON/JavaScript • Sharding • Don’t fight it#MongoDBdays @multiplayio
  22. 22. QUESTIONS?#MongoDBdays @multiplayio
  23. 23. THANKS! “Fast Delivery. Changed my life. Should present again. A+++++” - iBot5 “I wanted to be a pop star before this, but now I just want to program JavaScript!” - Zombie Justin B.#MongoDBdays @multiplayio