SlideShare a Scribd company logo
1 of 47
Download to read offline
Making Dragon City
Mobile

Sergi Vélez
@risdevs / sergi.velez@socialpoint.es
Social Point

• 
• 
• 
• 

Founded in 2008.
Top #3 social games developer in world.
8M DAU / 44M MAU
22@ Barcelona.

•  180 employees.
Dragon City

•  Breeding game.
•  Two basic gameplay mechanics:
•  Collecting dragons.
•  Battles.

•  F2P.
Dragon City Canvas: Some basics

Voted 2nd best game in Facebook 2012.
Ranks 6th for DAU in Facebook.

•  6M DAU.
•  25M MAU.
Dragon City Canvas
Social Point

•  Social Point got into mobile in 2012.
•  Delivering same gameplay experience
across different platforms.
Dragon City Mobile

The game was re-written from scratch.

•  6 months in development.
•  Mobile team created.

•  2 developers in beginning - 8 at launch.
•  5 developers maintaining game.
Dragon City Mobile

✓ World Launch: Feb 2013
✓ 1M DAU.
✓ iOS
✓ Android Oct 2013.
Prizes!

•  Dragon City Mobile picks up 2 prizes at
Gamelab
How did we do it?

•  The development experience:
Dev

QA

Launch

Post
Launch
Code Reviews
Code Reviews

•  One-man armies don’t scale well.
•  You’ll spend more time maintaining code
than creating it.

•  Four eyes see better than two.
Code Reviews: Benefits

•  Enables knowledge sharing.
•  Improves quality of code.
•  Mentoring.
•  Collective code ownership.
Code Reviews: Our Method

•  Git Flow.
•  Each change is made on a separate branch.
•  Pull Requests on GitHub to request reviews.
•  Team reviews the WHOLE code.
•  The WHOLE team reviews the code.
Code reviews: Advice

•  Small code reviews.
•  Preface your review with a short introduction
- explain the need for changes.

•  Authority stems from knowledge, not
hierarchy.

•  Each developer has his/her own solution.
•  Review when you are having a break.
Code reviews: Advice

•  The code is not yours.
•  There’s always someone who knows more
than you do.

•  Ask before you do a refactor.
Code reviews: Problems

•  Not all code is fun to review.
•  Programmers have different skills sets/
knowledge.

•  You must know when a revision has been
approved – or not.
Code reviews: Problems
Tools
Creating Dragon City Mobile: Tools

•  It’s important to use
good tools.

•  Keep developers

focused on code.

•  Bug Hunting.
Dragon City Mobile Build Pipeline

•  Creation of the app: Jenkins.
•  Distribution of the app: Testflight.
•  Errors Report: Internal tool.
Build Pipeline: Jenkins

•  Two daily builds (day and night).
•  Two types of build:
• Debug

connecting to the development
environment.

• Production

connecting to production.

•  Warnings when job fails.
Build Pipeline: Testflight

•  Applications

distribution the way
it should be.

•  Direct download into
the device from the
app.
Build Pipeline: Jenkins +Testflight

•  All of Social Point has access to Testflight.
•  Used by all departments
•  QA – to access the most recent version.
•  Game Designers – to check changes.
•  Product owner – to test new features.
Build Pipeline: Crash Reporter

•  Detects a problem with the application once
it’s live.

•  Activates following a crash, sends a report.
•  In production – requests permission from the
user:)

•  Report helps us identify and fix error.
Build Pipeline: Crash Reporter

•  Report covers:

•  Stacktrace at the moment of crash.
•  Environment information at moment of crash.
•  App data.
•  Log of significant events.
Build Pipeline: Crash Reporter

•  Reports on :
•  “Most Wanted”
•  % of users
experiencing
crashes.

•  Crashes by user.
Creating Dragon City Mobile: Launch

•  Important to test the
game in “real world”

•  With real players
•  External QA
•  Professional
companies

•  “Amateur testing”
Publishing

•  Your first submissions to AppStore can be
complicated.

•  Bear Apple’s recommendations in mind.

•  Don’t base hypotheses on other (published)
apps
Size of the Application

•  Keep the app size below Store limits.
•  Incentivizes impulsive downloads.
•  Hard limit in Google Play.

•  Downloads in the first session.

•  Avoids negative first experience of game.
•  Avoids problems in mobile networks.
Downloading Assets in the Background

•  Minimum subset assets needed to load
game.

•  In-app placeholders on demand.
•  First session assets included.
Placeholders
Soft Launch

1. Launched in two countries only.
2. Monitored.
3. Launched an update with corrections.
4. Monitored.
5. World Launch.
Updates

•  More complicated than the first launch.
•  We can’t launch updates in one country
only.

•  Regression tests.
•  Compatibility with earlier versions.
Forced Upgrade

•  At start up, game sends version number to
Backend.

•  Login only possible in latest version.
•  If older version, user re-directed to Store update to latest version.
Forced Upgrade

•  Saves testing time.
•  Saves supporting multiple versions.
•  Improves the player experience.
•  Gives cleaner analytics.
Real world problems
Rate me!

•  Important to remember reviewers.
•  Haters gonna hate.
Fallacies of Distributed Computing

•  The network is reliable.
•  Latency is zero.
•  Bandwitdh is infinite.
•  The network is secure.
•  Topology doesn’t change.
•  Transport cost is zero.
•  The network is homogenous.
Fallacies of Distributed Computing

•  The network is NOT reliable.
Communication with Backend

•  Each action in the game generates a
“command”.

•  Local commands queue.
•  Server processes commands, sends an
OK/KO.
Offline Mode

•  We adapt this solution to DC Mobile:

•  Persistent queue of commands.
•  If there is an error keep trying until resolved.

•  Once you have started the game, you can
continue to play offline.
Offline mode: Problems

•  Only one active session per user.
•  No session “merge”.

•  Dangerous if you play on various platforms
simultaneously.

•  Loss of session in offline mode.
Creating DCm: Portable Code

•  When creating DC iOS, we did not take
Android into account.

•  We created too much non-portable code.
•  Time spent on re-writes.
•  New bugs.
•  Solving bugs twice.
Creating DCm: Portable Code

•  Think multi-platform.

•  If it works, you’ll want to bring it to other
platforms.

•  Take advantage of desktop tools.
•  Leaks.
•  Analysis of code.
Creating Dragon City for Mobile

More Related Content

Viewers also liked

Creating Game Leaderboards with Redis
Creating Game Leaderboards with RedisCreating Game Leaderboards with Redis
Creating Game Leaderboards with RedisSocial Point
 
How to Monetize your F2P Video Game
How to Monetize your F2P Video GameHow to Monetize your F2P Video Game
How to Monetize your F2P Video GameSocial Point
 
Implementing Analytics in High-Traffic Social Games
Implementing Analytics in High-Traffic Social GamesImplementing Analytics in High-Traffic Social Games
Implementing Analytics in High-Traffic Social GamesSocial Point
 
Outcome 2 Computer games Production
Outcome 2 Computer games ProductionOutcome 2 Computer games Production
Outcome 2 Computer games ProductionJerk Off
 
06. Game Architecture
06. Game Architecture06. Game Architecture
06. Game ArchitectureAmin Babadi
 
Game development pipeline
Game development pipelineGame development pipeline
Game development pipelineGAME Studios
 
The Post-Production Cycle - Game Software Project Management
The Post-Production Cycle - Game Software Project ManagementThe Post-Production Cycle - Game Software Project Management
The Post-Production Cycle - Game Software Project ManagementSimeon Pashley
 
Apres social point case rede social ok
Apres social point case rede social okApres social point case rede social ok
Apres social point case rede social okInvent Live Marketing
 
Scalable Gaming with AWS - GDC 2014
Scalable Gaming with AWS - GDC 2014Scalable Gaming with AWS - GDC 2014
Scalable Gaming with AWS - GDC 2014Nate Wiger
 
Introducting the art pipeline
Introducting the art pipelineIntroducting the art pipeline
Introducting the art pipelineDavid Edwards
 
The last of us game dev pipeline
The last of us game dev pipelineThe last of us game dev pipeline
The last of us game dev pipelineRyan Worcester
 
Secrets to Social Game Success
Secrets to Social Game SuccessSecrets to Social Game Success
Secrets to Social Game SuccessWooga
 
Digibury: Sony Game developement process - Mark Linott
Digibury: Sony Game developement process - Mark LinottDigibury: Sony Game developement process - Mark Linott
Digibury: Sony Game developement process - Mark LinottLizzie Hodgson
 
DevOps the Wooga way (Webmontag Berlin)
DevOps the Wooga way (Webmontag Berlin)DevOps the Wooga way (Webmontag Berlin)
DevOps the Wooga way (Webmontag Berlin)Wooga
 
Game Development Pipeline
Game Development PipelineGame Development Pipeline
Game Development PipelineSam McCourt
 
ThinkNation: "Women quotas in tech" Naomi Trickey, Brandwatch
ThinkNation: "Women quotas in tech" Naomi Trickey, BrandwatchThinkNation: "Women quotas in tech" Naomi Trickey, Brandwatch
ThinkNation: "Women quotas in tech" Naomi Trickey, BrandwatchLizzie Hodgson
 
Game development Pre-Production
Game development Pre-ProductionGame development Pre-Production
Game development Pre-ProductionKevin Duggan
 
inlusio | game development process
inlusio | game development processinlusio | game development process
inlusio | game development processTj'ièn Twijnstra
 

Viewers also liked (20)

Creating Game Leaderboards with Redis
Creating Game Leaderboards with RedisCreating Game Leaderboards with Redis
Creating Game Leaderboards with Redis
 
How to Monetize your F2P Video Game
How to Monetize your F2P Video GameHow to Monetize your F2P Video Game
How to Monetize your F2P Video Game
 
Mini-Training: Redis
Mini-Training: RedisMini-Training: Redis
Mini-Training: Redis
 
Implementing Analytics in High-Traffic Social Games
Implementing Analytics in High-Traffic Social GamesImplementing Analytics in High-Traffic Social Games
Implementing Analytics in High-Traffic Social Games
 
Outcome 2 Computer games Production
Outcome 2 Computer games ProductionOutcome 2 Computer games Production
Outcome 2 Computer games Production
 
06. Game Architecture
06. Game Architecture06. Game Architecture
06. Game Architecture
 
Game development pipeline
Game development pipelineGame development pipeline
Game development pipeline
 
The Post-Production Cycle - Game Software Project Management
The Post-Production Cycle - Game Software Project ManagementThe Post-Production Cycle - Game Software Project Management
The Post-Production Cycle - Game Software Project Management
 
Apres social point case rede social ok
Apres social point case rede social okApres social point case rede social ok
Apres social point case rede social ok
 
Scalable Gaming with AWS - GDC 2014
Scalable Gaming with AWS - GDC 2014Scalable Gaming with AWS - GDC 2014
Scalable Gaming with AWS - GDC 2014
 
Introducting the art pipeline
Introducting the art pipelineIntroducting the art pipeline
Introducting the art pipeline
 
The last of us game dev pipeline
The last of us game dev pipelineThe last of us game dev pipeline
The last of us game dev pipeline
 
Secrets to Social Game Success
Secrets to Social Game SuccessSecrets to Social Game Success
Secrets to Social Game Success
 
Digibury: Sony Game developement process - Mark Linott
Digibury: Sony Game developement process - Mark LinottDigibury: Sony Game developement process - Mark Linott
Digibury: Sony Game developement process - Mark Linott
 
DevOps the Wooga way (Webmontag Berlin)
DevOps the Wooga way (Webmontag Berlin)DevOps the Wooga way (Webmontag Berlin)
DevOps the Wooga way (Webmontag Berlin)
 
Game Development Pipeline
Game Development PipelineGame Development Pipeline
Game Development Pipeline
 
ThinkNation: "Women quotas in tech" Naomi Trickey, Brandwatch
ThinkNation: "Women quotas in tech" Naomi Trickey, BrandwatchThinkNation: "Women quotas in tech" Naomi Trickey, Brandwatch
ThinkNation: "Women quotas in tech" Naomi Trickey, Brandwatch
 
Game development Pre-Production
Game development Pre-ProductionGame development Pre-Production
Game development Pre-Production
 
inlusio | game development process
inlusio | game development processinlusio | game development process
inlusio | game development process
 
Phases of game development
Phases of game developmentPhases of game development
Phases of game development
 

Similar to Creating Dragon City for Mobile

Development of a mobile app for Android
Development of a mobile app for AndroidDevelopment of a mobile app for Android
Development of a mobile app for AndroidAlexJReid
 
Gdco12 kartik ayyar
Gdco12 kartik ayyarGdco12 kartik ayyar
Gdco12 kartik ayyarKartik Ayyar
 
A Tale Of Ten SDKs: Cross-Platform Development Best Practices - Unite LA
A Tale Of Ten SDKs: Cross-Platform Development Best Practices - Unite LAA Tale Of Ten SDKs: Cross-Platform Development Best Practices - Unite LA
A Tale Of Ten SDKs: Cross-Platform Development Best Practices - Unite LAUnity Technologies
 
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...gamifi.cc
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium IntroNicholas Jansma
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous DeploymentBrian Moon
 
Quiz app android ppt
Quiz app android pptQuiz app android ppt
Quiz app android pptAditya Nag
 
For Business Success, Choose Cross Platform App Development
For Business Success, Choose Cross Platform App DevelopmentFor Business Success, Choose Cross Platform App Development
For Business Success, Choose Cross Platform App DevelopmentChromeInfo Technologies
 
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...David Geurts
 
Universal Apps for Windows
Universal Apps for WindowsUniversal Apps for Windows
Universal Apps for WindowsShahed Chowdhuri
 
Phonegap - An Introduction
Phonegap - An IntroductionPhonegap - An Introduction
Phonegap - An IntroductionTyler Johnston
 
6 ways DevOps helped PrepSportswear move from monolith to microservices
6 ways DevOps helped PrepSportswear move from monolith to microservices6 ways DevOps helped PrepSportswear move from monolith to microservices
6 ways DevOps helped PrepSportswear move from monolith to microservicesDynatrace
 
Scaling up mobile at ING #NSSpain2018
Scaling up mobile at ING #NSSpain2018Scaling up mobile at ING #NSSpain2018
Scaling up mobile at ING #NSSpain2018bartosss
 
Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...
Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...
Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...Daniel Gallego Vico
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Hannes Lowette
 
Cloudy with a Dash of Universal Apps
Cloudy with a Dash of Universal AppsCloudy with a Dash of Universal Apps
Cloudy with a Dash of Universal AppsShahed Chowdhuri
 
Android workshop
Android workshopAndroid workshop
Android workshopSagar Patel
 

Similar to Creating Dragon City for Mobile (20)

Development of a mobile app for Android
Development of a mobile app for AndroidDevelopment of a mobile app for Android
Development of a mobile app for Android
 
Gdco12 kartik ayyar
Gdco12 kartik ayyarGdco12 kartik ayyar
Gdco12 kartik ayyar
 
A Tale Of Ten SDKs: Cross-Platform Development Best Practices - Unite LA
A Tale Of Ten SDKs: Cross-Platform Development Best Practices - Unite LAA Tale Of Ten SDKs: Cross-Platform Development Best Practices - Unite LA
A Tale Of Ten SDKs: Cross-Platform Development Best Practices - Unite LA
 
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
Android quick talk
Android quick talkAndroid quick talk
Android quick talk
 
Quiz app android ppt
Quiz app android pptQuiz app android ppt
Quiz app android ppt
 
For Business Success, Choose Cross Platform App Development
For Business Success, Choose Cross Platform App DevelopmentFor Business Success, Choose Cross Platform App Development
For Business Success, Choose Cross Platform App Development
 
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...
 
Universal Apps for Windows
Universal Apps for WindowsUniversal Apps for Windows
Universal Apps for Windows
 
Climberreport
ClimberreportClimberreport
Climberreport
 
Phonegap - An Introduction
Phonegap - An IntroductionPhonegap - An Introduction
Phonegap - An Introduction
 
6 ways DevOps helped PrepSportswear move from monolith to microservices
6 ways DevOps helped PrepSportswear move from monolith to microservices6 ways DevOps helped PrepSportswear move from monolith to microservices
6 ways DevOps helped PrepSportswear move from monolith to microservices
 
Scaling up mobile at ING #NSSpain2018
Scaling up mobile at ING #NSSpain2018Scaling up mobile at ING #NSSpain2018
Scaling up mobile at ING #NSSpain2018
 
Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...
Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...
Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...
 
From Web to Mobile with Stage 3D
From Web to Mobile with Stage 3DFrom Web to Mobile with Stage 3D
From Web to Mobile with Stage 3D
 
Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®Build software like a bag of marbles, not a castle of LEGO®
Build software like a bag of marbles, not a castle of LEGO®
 
Cloudy with a Dash of Universal Apps
Cloudy with a Dash of Universal AppsCloudy with a Dash of Universal Apps
Cloudy with a Dash of Universal Apps
 
Android workshop
Android workshopAndroid workshop
Android workshop
 

Recently uploaded

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Creating Dragon City for Mobile

  • 1. Making Dragon City Mobile Sergi Vélez @risdevs / sergi.velez@socialpoint.es
  • 2. Social Point •  •  •  •  Founded in 2008. Top #3 social games developer in world. 8M DAU / 44M MAU 22@ Barcelona. •  180 employees.
  • 3. Dragon City •  Breeding game. •  Two basic gameplay mechanics: •  Collecting dragons. •  Battles. •  F2P.
  • 4. Dragon City Canvas: Some basics Voted 2nd best game in Facebook 2012. Ranks 6th for DAU in Facebook. •  6M DAU. •  25M MAU.
  • 6. Social Point •  Social Point got into mobile in 2012. •  Delivering same gameplay experience across different platforms.
  • 7. Dragon City Mobile The game was re-written from scratch. •  6 months in development. •  Mobile team created. •  2 developers in beginning - 8 at launch. •  5 developers maintaining game.
  • 8. Dragon City Mobile ✓ World Launch: Feb 2013 ✓ 1M DAU. ✓ iOS ✓ Android Oct 2013.
  • 9. Prizes! •  Dragon City Mobile picks up 2 prizes at Gamelab
  • 10. How did we do it? •  The development experience: Dev QA Launch Post Launch
  • 12. Code Reviews •  One-man armies don’t scale well. •  You’ll spend more time maintaining code than creating it. •  Four eyes see better than two.
  • 13. Code Reviews: Benefits •  Enables knowledge sharing. •  Improves quality of code. •  Mentoring. •  Collective code ownership.
  • 14. Code Reviews: Our Method •  Git Flow. •  Each change is made on a separate branch. •  Pull Requests on GitHub to request reviews. •  Team reviews the WHOLE code. •  The WHOLE team reviews the code.
  • 15. Code reviews: Advice •  Small code reviews. •  Preface your review with a short introduction - explain the need for changes. •  Authority stems from knowledge, not hierarchy. •  Each developer has his/her own solution. •  Review when you are having a break.
  • 16. Code reviews: Advice •  The code is not yours. •  There’s always someone who knows more than you do. •  Ask before you do a refactor.
  • 17. Code reviews: Problems •  Not all code is fun to review. •  Programmers have different skills sets/ knowledge. •  You must know when a revision has been approved – or not.
  • 19. Tools
  • 20. Creating Dragon City Mobile: Tools •  It’s important to use good tools. •  Keep developers focused on code. •  Bug Hunting.
  • 21. Dragon City Mobile Build Pipeline •  Creation of the app: Jenkins. •  Distribution of the app: Testflight. •  Errors Report: Internal tool.
  • 22. Build Pipeline: Jenkins •  Two daily builds (day and night). •  Two types of build: • Debug connecting to the development environment. • Production connecting to production. •  Warnings when job fails.
  • 23. Build Pipeline: Testflight •  Applications distribution the way it should be. •  Direct download into the device from the app.
  • 24. Build Pipeline: Jenkins +Testflight •  All of Social Point has access to Testflight. •  Used by all departments •  QA – to access the most recent version. •  Game Designers – to check changes. •  Product owner – to test new features.
  • 25. Build Pipeline: Crash Reporter •  Detects a problem with the application once it’s live. •  Activates following a crash, sends a report. •  In production – requests permission from the user:) •  Report helps us identify and fix error.
  • 26. Build Pipeline: Crash Reporter •  Report covers: •  Stacktrace at the moment of crash. •  Environment information at moment of crash. •  App data. •  Log of significant events.
  • 27. Build Pipeline: Crash Reporter •  Reports on : •  “Most Wanted” •  % of users experiencing crashes. •  Crashes by user.
  • 28. Creating Dragon City Mobile: Launch •  Important to test the game in “real world” •  With real players •  External QA •  Professional companies •  “Amateur testing”
  • 29. Publishing •  Your first submissions to AppStore can be complicated. •  Bear Apple’s recommendations in mind. •  Don’t base hypotheses on other (published) apps
  • 30. Size of the Application •  Keep the app size below Store limits. •  Incentivizes impulsive downloads. •  Hard limit in Google Play. •  Downloads in the first session. •  Avoids negative first experience of game. •  Avoids problems in mobile networks.
  • 31. Downloading Assets in the Background •  Minimum subset assets needed to load game. •  In-app placeholders on demand. •  First session assets included.
  • 33. Soft Launch 1. Launched in two countries only. 2. Monitored. 3. Launched an update with corrections. 4. Monitored. 5. World Launch.
  • 34. Updates •  More complicated than the first launch. •  We can’t launch updates in one country only. •  Regression tests. •  Compatibility with earlier versions.
  • 35. Forced Upgrade •  At start up, game sends version number to Backend. •  Login only possible in latest version. •  If older version, user re-directed to Store update to latest version.
  • 36. Forced Upgrade •  Saves testing time. •  Saves supporting multiple versions. •  Improves the player experience. •  Gives cleaner analytics.
  • 38. Rate me! •  Important to remember reviewers. •  Haters gonna hate.
  • 39. Fallacies of Distributed Computing •  The network is reliable. •  Latency is zero. •  Bandwitdh is infinite. •  The network is secure. •  Topology doesn’t change. •  Transport cost is zero. •  The network is homogenous.
  • 40. Fallacies of Distributed Computing •  The network is NOT reliable.
  • 41. Communication with Backend •  Each action in the game generates a “command”. •  Local commands queue. •  Server processes commands, sends an OK/KO.
  • 42. Offline Mode •  We adapt this solution to DC Mobile: •  Persistent queue of commands. •  If there is an error keep trying until resolved. •  Once you have started the game, you can continue to play offline.
  • 43. Offline mode: Problems •  Only one active session per user. •  No session “merge”. •  Dangerous if you play on various platforms simultaneously. •  Loss of session in offline mode.
  • 44.
  • 45. Creating DCm: Portable Code •  When creating DC iOS, we did not take Android into account. •  We created too much non-portable code. •  Time spent on re-writes. •  New bugs. •  Solving bugs twice.
  • 46. Creating DCm: Portable Code •  Think multi-platform. •  If it works, you’ll want to bring it to other platforms. •  Take advantage of desktop tools. •  Leaks. •  Analysis of code.