Realtime User-Generated Cross-Platform Multiplayer Gaming
-
Upload
mongodb -
Category
Technology
-
view
998 -
download
0
description
Transcript of Realtime User-Generated Cross-Platform Multiplayer Gaming
Realtime User GeneratedMulti-Platform Multiplayer 3D Gaming
@multiplayio
[Warning: May contain LIVE DEMO]
#MongoDBdays
Hello
@multiplayio#MongoDBdays
• Going Multiplayer• Going Multi-Platform• Why use MongoDB?• How we use MongoDB?
@multiplayio#MongoDBdays
MongoDB
SocketIO
NodeJS
Web App
Common Multiplayer Web Stack
@multiplayio#MongoDBdays
• Server
• Client
@multiplayio#MongoDBdays
Maintaining State
MongoDBWeb App
Shot Fired
ServerApp
Game Events Collection
Save Event
• Saving game events for analytics
@multiplayio#MongoDBdays
Gameplay Demo
@multiplayio#MongoDBdays
http://multiplay.io/play/phonewars
HTML5
@multiplayio#MongoDBdays
Tizen
iOS
Android
Linux
MacWindows
Windows Phone
Blackberry
Firefox OS
Ubuntu
..but slow?
C++/GPU APIs
@multiplayio#MongoDBdays
Tizen
iOS
Android
Linux
MacWindows
Windows Phone
Blackberry
Firefox OS
Ubuntu
@multiplayio#MongoDBdays
SocketIO
NodeJSProxy Server
Web App
Cross-Platform Proxy Multiplayer Stack
MongoDB
Sockets
Java Server
Native App
JavaScript Networking
Logic
C++ Networking
Logic
@multiplayio#MongoDBdays
Cross-Platform Hybrid Multiplayer Stack
MongoDB
Sockets
NodeJS
Networking Logic
Web View
DOM/Canvas App
WebGLApp
Native AppApp
@multiplayio#MongoDBdays
Hackathon Challenge
• Mongoose • Jansson • Async
@multiplayio#MongoDBdays
• JavaScriptNetworking Logic to C++
• C++
Framework Layer Application LayerDevice Layer
@multiplayio#MongoDBdays
Supporting Native Platforms
Renderer
QtRenderer
iOSRenderer
Engine App
@multiplayio#MongoDBdays
Supporting Direct3D
@multiplayio#MongoDBdays
Editor Demo
@multiplayio#MongoDBdays
Editing Objects
Framework JavaScript AppDevice
@multiplayio#MongoDBdays
Supporting Hybrid Platforms
Renderer
QtRenderer
iOSRenderer
Engine
App
JavaScript Proxy
WebView
Proxy Renderer
..JIT?
@multiplayio#MongoDBdays
Renderer Proxy
• JavaScript
• C++
@multiplayio#MongoDBdays
Performance Issues
@multiplayio#MongoDBdays
Why MongoDB?
• Community• Get’s out of your way• Fun & Easy• 10gen Education• JSON/JavaScript• Sharding• Don’t fight it
@multiplayio#MongoDBdays
QUESTIONS?
@multiplayio#MongoDBdays
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.