Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Creating a Browser-ready FPS MMO in Unity
Who we are? <ul><li>Aquiris Game Studio </li></ul><ul><li>Based in Brazil </li></ul><ul><li>5 years experience </li></ul><...
What is this game about? <ul><li>FPS </li></ul><ul><ul><li>War for energy set in a near future </li></ul></ul><ul><li>Free...
<ul><li>Founded in 2001.  </li></ul><ul><li>Leading provider of software for realtime massively-multiplayer applications. ...
<ul><li>Real-time connectivity across platforms and devices. </li></ul><ul><li>Speed and massive scale in any environment....
<ul><li>Built on Electroserver 5.  </li></ul><ul><li>Highly extensible architecture for building sophisticated data intens...
Networking Options <ul><li>Built in </li></ul><ul><li>Smart Fox </li></ul><ul><li>Photon </li></ul><ul><li>Electroserver 5...
Built in Solution <ul><li>Pros </li></ul><ul><ul><li>Easy control over the network </li></ul></ul><ul><ul><li>Network view...
Built in networking is not an option
What we chose? <ul><li>ElectroServer 5 </li></ul><ul><ul><li>Tech Support </li></ul></ul><ul><ul><li>Proven with previous ...
Artwork Challenges <ul><li>Complex Structure </li></ul><ul><li>Lightweight Graphics </li></ul><ul><li>Small Packages </li>...
Large Spaces vs Unique Artwork 09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
Basemesh <ul><li>Max 50k triangles </li></ul><ul><li>Max 30 objects </li></ul><ul><li>Max 3k triangles </li></ul><ul><li>p...
Tileable ~ 50% Coverage 09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
Trims ~ 25% Coverage 09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
Unique ~ 25% Coverage 09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
Graphics Tweaking <ul><li>From Geforce 6 series, to all cards. </li></ul><ul><li>Saving Presets </li></ul><ul><li>Auto Ben...
Technical Overview <ul><li>Asset pipeline </li></ul><ul><li>Game design flow </li></ul><ul><li>User data </li></ul><ul><li...
Asset Pipeline <ul><li>Automatic import tools </li></ul><ul><li>Build tools </li></ul><ul><li>Memory control </li></ul><ul...
Automatic import tools <ul><ul><li>Tons of items/weapons </li></ul></ul><ul><ul><ul><li>Textures </li></ul></ul></ul><ul><...
09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi Manually placed Generated by System
Build Tools <ul><ul><li>Asset bundles </li></ul></ul><ul><ul><li>Build time </li></ul></ul><ul><ul><li>Editor tools </li><...
09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
Memory Control <ul><ul><li>Loading assets </li></ul></ul><ul><ul><li>Know what you’re not using </li></ul></ul><ul><ul><li...
09/29/11 GAME LOGIC ITEM CONTROLLER REQUEST ASSET START LOADING WWW CACHE COMPLETE/ERROR ASSET REQUEST UNLOAD AssetBundle....
Game Design Flow <ul><li>Weapons and Items configuration </li></ul><ul><li>Gameplay configuration </li></ul><ul><li>Level ...
09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
User Data <ul><li>Accounts </li></ul><ul><li>Avatars </li></ul><ul><li>Loadouts </li></ul><ul><ul><li>Loadout Items </li><...
09/29/11 Account Avatar Loadouts Loadout Items Game Items Classes Aquiris Game Studio | Amilton Diesel, Maurício Longoni, ...
Networking Overview <ul><li>Architecture </li></ul><ul><li>Topology </li></ul><ul><li>Lobby and match system </li></ul><ul...
Networking Architecture <ul><ul><li>Client - server </li></ul></ul><ul><ul><li>Semi authoritative server </li></ul></ul><u...
Networking Topology 09/29/11 Acount Server Game Node Game Node Game Node Client Client Client Aquiris Game Studio | Amilto...
Lobby and match system <ul><ul><li>Channels (zones) </li></ul></ul><ul><ul><li>Rooms </li></ul></ul><ul><ul><li>User distr...
Client Development <ul><ul><li>Event driven </li></ul></ul><ul><ul><li>Transparent network layer </li></ul></ul><ul><ul><l...
Publisher integration <ul><li>Aeria’s systems </li></ul><ul><ul><li>Accounts </li></ul></ul><ul><ul><li>Webmall </li></ul>...
Distributed Simulation 09/29/11 EUP ES5 Node ES5 Node ES5 Node Client Client Client Electrotank | Jonathan Wagner
Distributed Simulation II <ul><li>Distribute load across multiple servers </li></ul><ul><li>Burstable capacity in cloud de...
09/29/11 ES5 Node EUP Start() Stop() NodeService Matchmaking Match Loadout Player Profile Score Electrotank | Jonathan Wag...
Avoiding Tedious Paperwork 09/29/11 Electrotank | Jonathan Wagner
Avoiding Tedious Paperwork II <ul><li>Continuous integration. </li></ul><ul><li>Automated Deployment. </li></ul><ul><li>El...
Continuous Integration <ul><li>Find code problems more quickly. </li></ul><ul><li>Reduce “works on my machine” problems. <...
Automated Deployment <ul><li>CI can drive automated deployment. </li></ul><ul><li>Forces you to have reliable build/deploy...
Code Is The Enemy <ul><li>Please don’t hurt me. </li></ul>09/29/11 Electrotank | Jonathan Wagner
Protogen 09/29/11 Message Definition Magic Client Message/Parser/Formatter Server Message/Parser/Formatter Electrotank | J...
Protocol Generation II <ul><li>Protocol efficiency improvements can be made globally with low cost. </li></ul><ul><li>Deve...
Data Is The Enemy <ul><li>I lied earlier about code being the enemy. </li></ul>09/29/11 Electrotank | Jonathan Wagner
Dealing with Data: Tools <ul><li>Tool dev can easily absorb 30% of dev time. </li></ul><ul><li>“ Tools will make or break ...
Not so democratized 09/29/11 Electrotank | Jonathan Wagner
Better! 09/29/11 Electrotank | Jonathan Wagner
Let tools do their own thinking <ul><li>Give your entities metadata. </li></ul><ul><li>Give the metadata to the tools. </l...
<ul><li>How to:   Select slide layout </li></ul><ul><li>Right click on slide </li></ul><ul><li>Click ”Layout” </li></ul><u...
Upcoming SlideShare
Loading in …5
×

Creating a browser ready fps mmo in unity ppt-mew_final

2,566 views

Published on

Creating a browser-ready first-person shooter MMO in Unity presents massive gaming opportunity but also a set of unique client-server challenges. Join the developers from Aquiris Game Experience and Electrotank as they discuss the hands-on lessons they learned in creating an upcoming free-to-play FPS MMO for PC/Mac and the browser.

  • Be the first to comment

Creating a browser ready fps mmo in unity ppt-mew_final

  1. 1. Creating a Browser-ready FPS MMO in Unity
  2. 2. Who we are? <ul><li>Aquiris Game Studio </li></ul><ul><li>Based in Brazil </li></ul><ul><li>5 years experience </li></ul><ul><li>Over 30 published projects </li></ul><ul><li>Developers of Unity Bootcamp demo </li></ul>09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  3. 3. What is this game about? <ul><li>FPS </li></ul><ul><ul><li>War for energy set in a near future </li></ul></ul><ul><li>Free 2 Play </li></ul><ul><ul><li>Item selling monetization </li></ul></ul><ul><li>PC/Mac and Browser(soon after release) </li></ul>09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  4. 4. <ul><li>Founded in 2001. </li></ul><ul><li>Leading provider of software for realtime massively-multiplayer applications. </li></ul><ul><li>Over 1,000 technology licensees. </li></ul><ul><li>300+ online games, more than a dozen MMOs/Virtual worlds. </li></ul>09/29/11 Electrotank | Mike Grundvig
  5. 5. <ul><li>Real-time connectivity across platforms and devices. </li></ul><ul><li>Speed and massive scale in any environment. </li></ul><ul><li>300,000+ messages per second. Cloud or dedicated. Unix, Linux, Windows, Mac. </li></ul><ul><li>Supports communities of millions of users. </li></ul>09/29/11 Electrotank | Mike Grundvig
  6. 6. <ul><li>Built on Electroserver 5. </li></ul><ul><li>Highly extensible architecture for building sophisticated data intensive applications. </li></ul><ul><li>Pre-built game services that can be customized for any project. </li></ul><ul><li>Extensive content and operations tools. </li></ul>09/29/11 Electrotank | Mike Grundvig
  7. 7. Networking Options <ul><li>Built in </li></ul><ul><li>Smart Fox </li></ul><ul><li>Photon </li></ul><ul><li>Electroserver 5 </li></ul>09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  8. 8. Built in Solution <ul><li>Pros </li></ul><ul><ul><li>Easy control over the network </li></ul></ul><ul><ul><li>Network views watching objects </li></ul></ul><ul><ul><li>Simple RPC implementation </li></ul></ul><ul><ul><li>Is already in Unity </li></ul></ul><ul><ul><li>We had previous experience with the system </li></ul></ul><ul><li>Cons </li></ul><ul><ul><li>Unity only server </li></ul></ul><ul><ul><li>Runs only on Windows and Mac </li></ul></ul><ul><ul><li>Not made for thousands of players per instance </li></ul></ul><ul><ul><li>Good for local hosted games, not for 2k+ players in a single server </li></ul></ul>09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  9. 9. Built in networking is not an option
  10. 10. What we chose? <ul><li>ElectroServer 5 </li></ul><ul><ul><li>Tech Support </li></ul></ul><ul><ul><li>Proven with previous Flash games </li></ul></ul><ul><ul><li>Great admin tools </li></ul></ul><ul><ul><li>Runs under linux </li></ul></ul>09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  11. 11. Artwork Challenges <ul><li>Complex Structure </li></ul><ul><li>Lightweight Graphics </li></ul><ul><li>Small Packages </li></ul>09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  12. 12. Large Spaces vs Unique Artwork 09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  13. 13. Basemesh <ul><li>Max 50k triangles </li></ul><ul><li>Max 30 objects </li></ul><ul><li>Max 3k triangles </li></ul><ul><li>per object </li></ul>09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  14. 14. Tileable ~ 50% Coverage 09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  15. 15. Trims ~ 25% Coverage 09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  16. 16. Unique ~ 25% Coverage 09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  17. 17. Graphics Tweaking <ul><li>From Geforce 6 series, to all cards. </li></ul><ul><li>Saving Presets </li></ul><ul><li>Auto Benchmark </li></ul>09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  18. 18. Technical Overview <ul><li>Asset pipeline </li></ul><ul><li>Game design flow </li></ul><ul><li>User data </li></ul><ul><li>Networking </li></ul><ul><li>Publisher integration </li></ul>09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  19. 19. Asset Pipeline <ul><li>Automatic import tools </li></ul><ul><li>Build tools </li></ul><ul><li>Memory control </li></ul><ul><ul><li>Loading and unloading assets on the fly </li></ul></ul>09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  20. 20. Automatic import tools <ul><ul><li>Tons of items/weapons </li></ul></ul><ul><ul><ul><li>Textures </li></ul></ul></ul><ul><ul><ul><li>Animations </li></ul></ul></ul><ul><ul><ul><li>Custom data </li></ul></ul></ul><ul><ul><li>Manual setup is bug prone </li></ul></ul><ul><ul><li>Asset pre and post processing </li></ul></ul>09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  21. 21. 09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi Manually placed Generated by System
  22. 22. Build Tools <ul><ul><li>Asset bundles </li></ul></ul><ul><ul><li>Build time </li></ul></ul><ul><ul><li>Editor tools </li></ul></ul>09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  23. 23. 09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  24. 24. Memory Control <ul><ul><li>Loading assets </li></ul></ul><ul><ul><li>Know what you’re not using </li></ul></ul><ul><ul><li>Unload unneeded stuff </li></ul></ul><ul><ul><ul><li>Asset bundles for maps may use up to 200 MB of Ram! </li></ul></ul></ul>09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  25. 25. 09/29/11 GAME LOGIC ITEM CONTROLLER REQUEST ASSET START LOADING WWW CACHE COMPLETE/ERROR ASSET REQUEST UNLOAD AssetBundle.Unload() Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  26. 26. Game Design Flow <ul><li>Weapons and Items configuration </li></ul><ul><li>Gameplay configuration </li></ul><ul><li>Level setup </li></ul><ul><ul><li>Exchanging data with the server </li></ul></ul>09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  27. 27. 09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  28. 28. 09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  29. 29. 09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  30. 30. User Data <ul><li>Accounts </li></ul><ul><li>Avatars </li></ul><ul><li>Loadouts </li></ul><ul><ul><li>Loadout Items </li></ul></ul><ul><li>Statistics </li></ul>09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  31. 31. 09/29/11 Account Avatar Loadouts Loadout Items Game Items Classes Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  32. 32. Networking Overview <ul><li>Architecture </li></ul><ul><li>Topology </li></ul><ul><li>Lobby and match system </li></ul><ul><li>Event driven development </li></ul><ul><ul><li>How to exchange data between client and server? </li></ul></ul>09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  33. 33. Networking Architecture <ul><ul><li>Client - server </li></ul></ul><ul><ul><li>Semi authoritative server </li></ul></ul><ul><ul><li>100+ matches per server instance </li></ul></ul><ul><ul><ul><li>From 8 to 16 players per match </li></ul></ul></ul><ul><ul><ul><li>Tons of messages </li></ul></ul></ul><ul><ul><ul><li>Lightweight server solution </li></ul></ul></ul>09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  34. 34. Networking Topology 09/29/11 Acount Server Game Node Game Node Game Node Client Client Client Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  35. 35. Lobby and match system <ul><ul><li>Channels (zones) </li></ul></ul><ul><ul><li>Rooms </li></ul></ul><ul><ul><li>User distribution </li></ul></ul><ul><ul><li>Data optimization </li></ul></ul>09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  36. 36. Client Development <ul><ul><li>Event driven </li></ul></ul><ul><ul><li>Transparent network layer </li></ul></ul><ul><ul><li>Data exchange </li></ul></ul><ul><ul><ul><li>ESObjects </li></ul></ul></ul>09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  37. 37. Publisher integration <ul><li>Aeria’s systems </li></ul><ul><ul><li>Accounts </li></ul></ul><ul><ul><li>Webmall </li></ul></ul>09/29/11 Aquiris Game Studio | Amilton Diesel, Maurício Longoni, Raphael Baldi
  38. 38. Distributed Simulation 09/29/11 EUP ES5 Node ES5 Node ES5 Node Client Client Client Electrotank | Jonathan Wagner
  39. 39. Distributed Simulation II <ul><li>Distribute load across multiple servers </li></ul><ul><li>Burstable capacity in cloud deployment. </li></ul>09/29/11 Electrotank | Jonathan Wagner
  40. 40. 09/29/11 ES5 Node EUP Start() Stop() NodeService Matchmaking Match Loadout Player Profile Score Electrotank | Jonathan Wagner
  41. 41. Avoiding Tedious Paperwork 09/29/11 Electrotank | Jonathan Wagner
  42. 42. Avoiding Tedious Paperwork II <ul><li>Continuous integration. </li></ul><ul><li>Automated Deployment. </li></ul><ul><li>Eliminate code when you can. </li></ul><ul><li>Democratize content creation. </li></ul>09/29/11 Electrotank | Jonathan Wagner
  43. 43. Continuous Integration <ul><li>Find code problems more quickly. </li></ul><ul><li>Reduce “works on my machine” problems. </li></ul>09/29/11 Electrotank | Jonathan Wagner
  44. 44. Automated Deployment <ul><li>CI can drive automated deployment. </li></ul><ul><li>Forces you to have reliable build/deploy methods. </li></ul><ul><li>Do it now. Once you have real players it just becomes more difficult. </li></ul>09/29/11 Electrotank | Jonathan Wagner
  45. 45. Code Is The Enemy <ul><li>Please don’t hurt me. </li></ul>09/29/11 Electrotank | Jonathan Wagner
  46. 46. Protogen 09/29/11 Message Definition Magic Client Message/Parser/Formatter Server Message/Parser/Formatter Electrotank | Jonathan Wagner
  47. 47. Protocol Generation II <ul><li>Protocol efficiency improvements can be made globally with low cost. </li></ul><ul><li>Developers get strongly typed messages. </li></ul><ul><li>Model complex data with little effort. </li></ul><ul><li>Support clients across many languages / platforms. </li></ul>09/29/11 Electrotank | Jonathan Wagner
  48. 48. Data Is The Enemy <ul><li>I lied earlier about code being the enemy. </li></ul>09/29/11 Electrotank | Jonathan Wagner
  49. 49. Dealing with Data: Tools <ul><li>Tool dev can easily absorb 30% of dev time. </li></ul><ul><li>“ Tools will make or break an MMO.” </li></ul>09/29/11 Electrotank | Jonathan Wagner
  50. 50. Not so democratized 09/29/11 Electrotank | Jonathan Wagner
  51. 51. Better! 09/29/11 Electrotank | Jonathan Wagner
  52. 52. Let tools do their own thinking <ul><li>Give your entities metadata. </li></ul><ul><li>Give the metadata to the tools. </li></ul><ul><li>General purpose data entry tools can write themselves. </li></ul><ul><li>Spend time on specialized operations tools. </li></ul><ul><li>Very low risk of SkyNet. </li></ul>09/29/11 Electrotank | Jonathan Wagner
  53. 53. <ul><li>How to: Select slide layout </li></ul><ul><li>Right click on slide </li></ul><ul><li>Click ”Layout” </li></ul><ul><li>Select slide in flyout </li></ul><ul><li>Insert picture </li></ul><ul><li>Template with no picture </li></ul><ul><li>Click on ikon, ”Insert picture” </li></ul><ul><li>Select picture </li></ul><ul><li>Click ”OK” </li></ul><ul><li>Template with picture </li></ul><ul><li>(Change picture) </li></ul><ul><li>Click on picture </li></ul><ul><li>Click ”delete” to delete picture </li></ul><ul><li>Click on ikon, ”Insert picture” </li></ul><ul><li>Select picture </li></ul><ul><li>Click ”OK” </li></ul>09/29/11 Aquiris Game Studio | Electrotank Questions?

×