SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
The tech. behind
Presented by: Javier Abud & Ramiro Bazan
Flash Online Conference #13
Intro
Who am I?
Principal Programmer at MovieStarPlanet
Making games since 2004
Agenda
Project intro
Development Tools
Conditional Compilation restrictions
Target frame rate
Cross Platform Multiplayer via
SmartFox Server
Scout usage
Weekly content releases
Leaderboards and Reddis
Part 2
Project Intro
Make a game that runs on iPhone, Android &
Web
Minecraft like building style, for avatars and
levels
Real time multiplayer
Social Network, integration with
MovieStarPlanet
Development Tools
Flash Develop
Flare 3D
Starling (fork)
3DS Max
Adobe Creative Cloud
Git
Conditional compilation restrictions
Helps to keep code clean
Have as few compiler flags as possible (3)
Use of inheritance for device specific code (iOS, Android, Web)
Input works like this
Target Frame Rate
60 FPS from the start
“Premature Optimization is the root of all evil” -Donald Knuth
Starting at 60 FPS with no content means every change that drops the framerate gets noticed quickly and
considered more thoroughly before being merged into main branch
Network communication code abstraction,
lets us focus on the gameplay server side
TCP & UDP messages only (Web and
Mobile)
Keep packets as small as possible
Amazon Web Services (AWS) for Server
up & down scaling
Cross Platform Multiplayer via
SmartFox Server
Adobe Scout
Scout gets used very often
Sound Transform discovery
Adobe Scout
Closely monitor the memory usage of RBP
Weekly Content Releases
Release new content every week for player engagement
We’ve had 40 content releases so far (every Thursday!)
Leaderboards and Reddis
Wanted to have cross platform leaderboards
Database access for live data is slow
Real time updates (every time you reload the
leaderboard)
Reddis backend
Estimated 16 gameplay hours to get 1 million blast points!
Intro - Ramiro
Frontend/Backend developer at RoboblastPlanet
Turning coffee into games since 2006
Agenda
Hot reloading of assets (UI & Flare)
JSONSprite
Reuse Flare Materials
Debug Panel and cheats
GameObject/Behavior
Image C
AS3 optimizations
Signals only
Compressed Int
Context Lost
Sharing of render targets
Mesh batching
Hot Reloading: UI
Hot Reloading: Meshes
Debug Panel and Cheats
Debug Panel and Cheats
GameObjects/Behaviors
Rule one: Everything is a gameObject and has behaviors
Rule two: Respect rule number one.
ImageC file format
Preprocessed image
Pros:
No Loader instance needed (No extra allocations)
No decoding
Works in all devices
Cons:
Bigger size (20% larger than a PNG in the worst case)
AS3 Optimizations
Optimized Loops
No Array/Vector push calls
No splice if the Player version allow us (RemoveAt() or custom splice)
Object Pooling
Single EnterFrame
Custom Signals
Based on Robert Penner’s as3Signals we created a simplified version of that
concept.
Pros:
No Events
No allocations
Callbacks are faster
Cons:
Non typed
Compressed int
We needed to store a massive amount of values related to voxels data.
The smallest data type that we could use was int.
This data structure handles multiple values inside one int to reduce the amount of
memory usage.
Example: 1000 ints between 0 and 256
Vector.<int> = 4004 bytes
Compressed int = 1004 bytes;
Context Lost
By default Starling keeps a reference to the BitmapData that we are using to be
able to re-upload it when the context is gone.
Instead of doing this we went for the reload everything approach.
We don’t have any bitmapdata cached in ram.
Flare & Starling sharing textures
We needed to show a 3d mesh inside the UI without hacking the entire universe.
Create a FlareTexture that we use as a render target and share the native texture with a StarlingTexture
so we can display the same content in the UI without adding additional agents in the middle.
Mesh Batching
Basically we reuse the same surface/mesh data to render it in multiple places at the same time in one
draw call.
All the meshes can move, rotate, scale or change color.
This concept was included a few releases later directly in Flare3D.
Questions?
Contact info:
Javier Abud - jc@moviestarplanet.com
Ramiro Bazan - rb@moviestarplanet.com

Weitere ähnliche Inhalte

Was ist angesagt?

WebVR, not just Holograms in the web but powerful platform
WebVR, not just Holograms in the web but powerful platformWebVR, not just Holograms in the web but powerful platform
WebVR, not just Holograms in the web but powerful platformWindows Developer
 
Achieving Scale with HoloLens and BIM: Designing for interactions with large ...
Achieving Scale with HoloLens and BIM: Designing for interactions with large ...Achieving Scale with HoloLens and BIM: Designing for interactions with large ...
Achieving Scale with HoloLens and BIM: Designing for interactions with large ...Windows Developer
 
HTML5DevConf - Unleash the power of 3D with babylon.js
HTML5DevConf - Unleash the power of 3D with babylon.jsHTML5DevConf - Unleash the power of 3D with babylon.js
HTML5DevConf - Unleash the power of 3D with babylon.jsDavid Catuhe
 
Creating a third-person zombie horde shooter using DOTS – Unite Copenhagen
Creating a third-person zombie horde shooter using DOTS – Unite CopenhagenCreating a third-person zombie horde shooter using DOTS – Unite Copenhagen
Creating a third-person zombie horde shooter using DOTS – Unite CopenhagenUnity Technologies
 
【Unite 2017 Tokyo】大作RPGを効率的且つ高品質にリマスターするためのUnity活用
【Unite 2017 Tokyo】大作RPGを効率的且つ高品質にリマスターするためのUnity活用【Unite 2017 Tokyo】大作RPGを効率的且つ高品質にリマスターするためのUnity活用
【Unite 2017 Tokyo】大作RPGを効率的且つ高品質にリマスターするためのUnity活用Unity Technologies Japan K.K.
 
【Unite 2017 Tokyo】NVIDIA Gameworks アップデートおよびAnselとVRWorksの紹介
【Unite 2017 Tokyo】NVIDIA Gameworks アップデートおよびAnselとVRWorksの紹介【Unite 2017 Tokyo】NVIDIA Gameworks アップデートおよびAnselとVRWorksの紹介
【Unite 2017 Tokyo】NVIDIA Gameworks アップデートおよびAnselとVRWorksの紹介Unity Technologies Japan K.K.
 
Going Mobile with AIR+Starling
Going Mobile with AIR+StarlingGoing Mobile with AIR+Starling
Going Mobile with AIR+StarlingAmos Laber
 
Unleash 3D games with Babylon.js - JSConf 2014 talk
Unleash 3D games with Babylon.js - JSConf 2014 talkUnleash 3D games with Babylon.js - JSConf 2014 talk
Unleash 3D games with Babylon.js - JSConf 2014 talkDavid Catuhe
 
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法Unite2017Tokyo
 
Intro to Massively Multiplayer Online Game (MMOG) Design
Intro to Massively Multiplayer Online Game (MMOG) DesignIntro to Massively Multiplayer Online Game (MMOG) Design
Intro to Massively Multiplayer Online Game (MMOG) DesignChristopher Mohritz
 
Berbagai Pilihan Karir Developer
Berbagai Pilihan Karir DeveloperBerbagai Pilihan Karir Developer
Berbagai Pilihan Karir DeveloperRiza Fahmi
 
XHackers GameDev / Android LolliPop / Xamarin Forms
XHackers GameDev / Android LolliPop / Xamarin FormsXHackers GameDev / Android LolliPop / Xamarin Forms
XHackers GameDev / Android LolliPop / Xamarin FormsVidyasagar Machupalli
 
Azure AI Conference Report
Azure AI Conference ReportAzure AI Conference Report
Azure AI Conference ReportOsamu Masutani
 
Designing a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile gamesDesigning a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile gamesiFunFactory Inc.
 
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.esCreating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.esdavrous
 
Game Engine for Serious Games
Game Engine for Serious GamesGame Engine for Serious Games
Game Engine for Serious GamesKashif Shamaun
 

Was ist angesagt? (20)

WebVR, not just Holograms in the web but powerful platform
WebVR, not just Holograms in the web but powerful platformWebVR, not just Holograms in the web but powerful platform
WebVR, not just Holograms in the web but powerful platform
 
Achieving Scale with HoloLens and BIM: Designing for interactions with large ...
Achieving Scale with HoloLens and BIM: Designing for interactions with large ...Achieving Scale with HoloLens and BIM: Designing for interactions with large ...
Achieving Scale with HoloLens and BIM: Designing for interactions with large ...
 
HTML5DevConf - Unleash the power of 3D with babylon.js
HTML5DevConf - Unleash the power of 3D with babylon.jsHTML5DevConf - Unleash the power of 3D with babylon.js
HTML5DevConf - Unleash the power of 3D with babylon.js
 
【Unite 2017 Tokyo】基調講演
【Unite 2017 Tokyo】基調講演【Unite 2017 Tokyo】基調講演
【Unite 2017 Tokyo】基調講演
 
Creating a third-person zombie horde shooter using DOTS – Unite Copenhagen
Creating a third-person zombie horde shooter using DOTS – Unite CopenhagenCreating a third-person zombie horde shooter using DOTS – Unite Copenhagen
Creating a third-person zombie horde shooter using DOTS – Unite Copenhagen
 
【Unite 2017 Tokyo】大作RPGを効率的且つ高品質にリマスターするためのUnity活用
【Unite 2017 Tokyo】大作RPGを効率的且つ高品質にリマスターするためのUnity活用【Unite 2017 Tokyo】大作RPGを効率的且つ高品質にリマスターするためのUnity活用
【Unite 2017 Tokyo】大作RPGを効率的且つ高品質にリマスターするためのUnity活用
 
【Unite 2017 Tokyo】NVIDIA Gameworks アップデートおよびAnselとVRWorksの紹介
【Unite 2017 Tokyo】NVIDIA Gameworks アップデートおよびAnselとVRWorksの紹介【Unite 2017 Tokyo】NVIDIA Gameworks アップデートおよびAnselとVRWorksの紹介
【Unite 2017 Tokyo】NVIDIA Gameworks アップデートおよびAnselとVRWorksの紹介
 
Going Mobile with AIR+Starling
Going Mobile with AIR+StarlingGoing Mobile with AIR+Starling
Going Mobile with AIR+Starling
 
Unleash 3D games with Babylon.js - JSConf 2014 talk
Unleash 3D games with Babylon.js - JSConf 2014 talkUnleash 3D games with Babylon.js - JSConf 2014 talk
Unleash 3D games with Babylon.js - JSConf 2014 talk
 
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
 
Intro to Massively Multiplayer Online Game (MMOG) Design
Intro to Massively Multiplayer Online Game (MMOG) DesignIntro to Massively Multiplayer Online Game (MMOG) Design
Intro to Massively Multiplayer Online Game (MMOG) Design
 
box.doc
box.docbox.doc
box.doc
 
Berbagai Pilihan Karir Developer
Berbagai Pilihan Karir DeveloperBerbagai Pilihan Karir Developer
Berbagai Pilihan Karir Developer
 
XHackers GameDev / Android LolliPop / Xamarin Forms
XHackers GameDev / Android LolliPop / Xamarin FormsXHackers GameDev / Android LolliPop / Xamarin Forms
XHackers GameDev / Android LolliPop / Xamarin Forms
 
Azure AI Conference Report
Azure AI Conference ReportAzure AI Conference Report
Azure AI Conference Report
 
Designing a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile gamesDesigning a pragmatic back-end service for mobile games
Designing a pragmatic back-end service for mobile games
 
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.esCreating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.es
 
Game Engine for Serious Games
Game Engine for Serious GamesGame Engine for Serious Games
Game Engine for Serious Games
 
Sven Erik Knop, Perforce
Sven Erik Knop, Perforce Sven Erik Knop, Perforce
Sven Erik Knop, Perforce
 
Decode2018 report
Decode2018 reportDecode2018 report
Decode2018 report
 

Ähnlich wie The tech. behind RoboBlastPlanet

Casual Engines 2009
Casual Engines 2009Casual Engines 2009
Casual Engines 2009David Fox
 
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)David Salz
 
FGS 2011: Making A Game With Molehill: Zombie Tycoon
FGS 2011: Making A Game With Molehill: Zombie TycoonFGS 2011: Making A Game With Molehill: Zombie Tycoon
FGS 2011: Making A Game With Molehill: Zombie Tycoonmochimedia
 
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...DevClub_lv
 
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3DJS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3DJSFestUA
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Johan Andersson
 
BitSquid Tech: Benefits of a data-driven renderer
BitSquid Tech: Benefits of a data-driven rendererBitSquid Tech: Benefits of a data-driven renderer
BitSquid Tech: Benefits of a data-driven renderertobias_persson
 
Catan world and Churchill
Catan world and ChurchillCatan world and Churchill
Catan world and ChurchillGrant Goodale
 
Adobe gaming today tomorrow Trento
Adobe gaming today tomorrow TrentoAdobe gaming today tomorrow Trento
Adobe gaming today tomorrow TrentoInSide Training
 
Byte Conf React Native 2018
Byte Conf React Native 2018Byte Conf React Native 2018
Byte Conf React Native 2018Pulkit Kakkar
 
Develop store apps with kinect for windows v2
Develop store apps with kinect for windows v2Develop store apps with kinect for windows v2
Develop store apps with kinect for windows v2Matteo Valoriani
 
Develop Store Apps with Kinect for Windows v2
Develop Store Apps with Kinect for Windows v2Develop Store Apps with Kinect for Windows v2
Develop Store Apps with Kinect for Windows v2Clemente Giorio
 
Applying AI in Games (GDC2019)
Applying AI in Games (GDC2019)Applying AI in Games (GDC2019)
Applying AI in Games (GDC2019)Jun Okumura
 
Getting The Most Out of VR | Sinjin Bain
Getting The Most Out of VR | Sinjin BainGetting The Most Out of VR | Sinjin Bain
Getting The Most Out of VR | Sinjin BainJessica Tams
 
Adobe gaming flash gamm michael
Adobe gaming flash gamm michaelAdobe gaming flash gamm michael
Adobe gaming flash gamm michaelMichael Chaize
 
Minko stage3d 20130222
Minko stage3d 20130222Minko stage3d 20130222
Minko stage3d 20130222Minko3D
 
mloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentmloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentDavid Galeano
 

Ähnlich wie The tech. behind RoboBlastPlanet (20)

Casual Engines 2009
Casual Engines 2009Casual Engines 2009
Casual Engines 2009
 
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
 
FGS 2011: Making A Game With Molehill: Zombie Tycoon
FGS 2011: Making A Game With Molehill: Zombie TycoonFGS 2011: Making A Game With Molehill: Zombie Tycoon
FGS 2011: Making A Game With Molehill: Zombie Tycoon
 
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
 
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3DJS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
 
BitSquid Tech: Benefits of a data-driven renderer
BitSquid Tech: Benefits of a data-driven rendererBitSquid Tech: Benefits of a data-driven renderer
BitSquid Tech: Benefits of a data-driven renderer
 
Catan world and Churchill
Catan world and ChurchillCatan world and Churchill
Catan world and Churchill
 
Adobe gaming today tomorrow Trento
Adobe gaming today tomorrow TrentoAdobe gaming today tomorrow Trento
Adobe gaming today tomorrow Trento
 
Byte Conf React Native 2018
Byte Conf React Native 2018Byte Conf React Native 2018
Byte Conf React Native 2018
 
Develop store apps with kinect for windows v2
Develop store apps with kinect for windows v2Develop store apps with kinect for windows v2
Develop store apps with kinect for windows v2
 
Develop Store Apps with Kinect for Windows v2
Develop Store Apps with Kinect for Windows v2Develop Store Apps with Kinect for Windows v2
Develop Store Apps with Kinect for Windows v2
 
Applying AI in Games (GDC2019)
Applying AI in Games (GDC2019)Applying AI in Games (GDC2019)
Applying AI in Games (GDC2019)
 
Getting The Most Out of VR | Sinjin Bain
Getting The Most Out of VR | Sinjin BainGetting The Most Out of VR | Sinjin Bain
Getting The Most Out of VR | Sinjin Bain
 
Adobe: Adobe Gaming NOW!
Adobe: Adobe Gaming NOW!Adobe: Adobe Gaming NOW!
Adobe: Adobe Gaming NOW!
 
Adobe gaming flash gamm michael
Adobe gaming flash gamm michaelAdobe gaming flash gamm michael
Adobe gaming flash gamm michael
 
Minko stage3d 20130222
Minko stage3d 20130222Minko stage3d 20130222
Minko stage3d 20130222
 
Sprite js vs craftyjs
Sprite js vs craftyjsSprite js vs craftyjs
Sprite js vs craftyjs
 
HTML5 Game Development frameworks overview
HTML5 Game Development frameworks overviewHTML5 Game Development frameworks overview
HTML5 Game Development frameworks overview
 
mloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentmloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game development
 

Kürzlich hochgeladen

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 

Kürzlich hochgeladen (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 

The tech. behind RoboBlastPlanet

  • 1. The tech. behind Presented by: Javier Abud & Ramiro Bazan Flash Online Conference #13
  • 2. Intro Who am I? Principal Programmer at MovieStarPlanet Making games since 2004
  • 3. Agenda Project intro Development Tools Conditional Compilation restrictions Target frame rate Cross Platform Multiplayer via SmartFox Server Scout usage Weekly content releases Leaderboards and Reddis Part 2
  • 4. Project Intro Make a game that runs on iPhone, Android & Web Minecraft like building style, for avatars and levels Real time multiplayer Social Network, integration with MovieStarPlanet
  • 5. Development Tools Flash Develop Flare 3D Starling (fork) 3DS Max Adobe Creative Cloud Git
  • 6. Conditional compilation restrictions Helps to keep code clean Have as few compiler flags as possible (3) Use of inheritance for device specific code (iOS, Android, Web) Input works like this
  • 7. Target Frame Rate 60 FPS from the start “Premature Optimization is the root of all evil” -Donald Knuth Starting at 60 FPS with no content means every change that drops the framerate gets noticed quickly and considered more thoroughly before being merged into main branch
  • 8. Network communication code abstraction, lets us focus on the gameplay server side TCP & UDP messages only (Web and Mobile) Keep packets as small as possible Amazon Web Services (AWS) for Server up & down scaling Cross Platform Multiplayer via SmartFox Server
  • 9. Adobe Scout Scout gets used very often Sound Transform discovery
  • 10. Adobe Scout Closely monitor the memory usage of RBP
  • 11. Weekly Content Releases Release new content every week for player engagement We’ve had 40 content releases so far (every Thursday!)
  • 12. Leaderboards and Reddis Wanted to have cross platform leaderboards Database access for live data is slow Real time updates (every time you reload the leaderboard) Reddis backend Estimated 16 gameplay hours to get 1 million blast points!
  • 13. Intro - Ramiro Frontend/Backend developer at RoboblastPlanet Turning coffee into games since 2006
  • 14. Agenda Hot reloading of assets (UI & Flare) JSONSprite Reuse Flare Materials Debug Panel and cheats GameObject/Behavior Image C AS3 optimizations Signals only Compressed Int Context Lost Sharing of render targets Mesh batching
  • 17. Debug Panel and Cheats
  • 18. Debug Panel and Cheats
  • 19. GameObjects/Behaviors Rule one: Everything is a gameObject and has behaviors Rule two: Respect rule number one.
  • 20. ImageC file format Preprocessed image Pros: No Loader instance needed (No extra allocations) No decoding Works in all devices Cons: Bigger size (20% larger than a PNG in the worst case)
  • 21. AS3 Optimizations Optimized Loops No Array/Vector push calls No splice if the Player version allow us (RemoveAt() or custom splice) Object Pooling Single EnterFrame
  • 22. Custom Signals Based on Robert Penner’s as3Signals we created a simplified version of that concept. Pros: No Events No allocations Callbacks are faster Cons: Non typed
  • 23. Compressed int We needed to store a massive amount of values related to voxels data. The smallest data type that we could use was int. This data structure handles multiple values inside one int to reduce the amount of memory usage. Example: 1000 ints between 0 and 256 Vector.<int> = 4004 bytes Compressed int = 1004 bytes;
  • 24. Context Lost By default Starling keeps a reference to the BitmapData that we are using to be able to re-upload it when the context is gone. Instead of doing this we went for the reload everything approach. We don’t have any bitmapdata cached in ram.
  • 25. Flare & Starling sharing textures We needed to show a 3d mesh inside the UI without hacking the entire universe. Create a FlareTexture that we use as a render target and share the native texture with a StarlingTexture so we can display the same content in the UI without adding additional agents in the middle.
  • 26. Mesh Batching Basically we reuse the same surface/mesh data to render it in multiple places at the same time in one draw call. All the meshes can move, rotate, scale or change color. This concept was included a few releases later directly in Flare3D.
  • 27. Questions? Contact info: Javier Abud - jc@moviestarplanet.com Ramiro Bazan - rb@moviestarplanet.com