SlideShare a Scribd company logo
1 of 24
Download to read offline
Implementing the beintoo Gamification
        Platform in Titanium
                        Alessio Ricco




@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Beintoo: developer point of view


Gamification Platform

•cross apps user profile
•score
•leaderboards
•achievements
•and ....


@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Beintoo: 3 actors

                   Users
                   they have a shared social profile and reputation
                   Redeem goods

                   Developers
                   gamification api
                   monetization

                   Apps
                   cross app promotion nework
                   user engagement


@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Gamification

The ideas are quite simple: Users have a cross-apps profile on Beintoo.com where they
share their achievements and rewards on gamified apps, and where they can follow
their social graph friends and engage with them.

Activities such as increase of score, change in rank of an app leaderboard, loyalty and
completion of a level in a game will be seen by all Beintoo users.

That creates a reputation layer, such that users are pushed to reach achievements
which are then published and seen by the entire community.

People can also challenge friends, create contests, send messages, rate or share, and
above all get a cross apps use, constantly increasing the Apps engagement.

This way users will have cross app achievements and a cross app reputation and will
be able to check their stats in all their favourite apps.




@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Contests / Leaderboards




@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Contests / Leaderboards




@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Achievements




@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Achievements




@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Achievements




@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Promote your Apps throuhout the Beintoo Network




                        Cross Apps promotion network


@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Monetization




 Beintoo is an environment in which people will get real world opportunities from their
 virtual activities.

 As said before, developers will be able to rank users through beintoo scoring
 algorithms, to introduce achievements in their apps/games and to distribute rewards
 as virtual goods to their best and most loyal users.

 This way they are introduced to a network of distribution of virtual/real goods: a new
 innovative opportunity for monetization.

 In fact, developers monetize because once advertisers pay beintoo the delivery of
 the branded virtual goods and the redemption of the real coupons, Beintoo pay
 back developers 70% of their revenues.


@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Titanium Code: BeintooRest
  exports.beintooREST = function(cmd, url, headers, callbackSuccess, callbackError)
  {
  	   var xhr_task = Ti.Network.createHTTPClient();
  	   xhr_task.timeout = TIMEOUT;
  	   xhr_task.open(cmd,url);
  	   xhr_task.setRequestHeader('apikey',API);
  	   if (headers)
  	   {
  	   	    for(var i=0,j=headers.length; i<j; i++){
  	   	       xhr_task.setRequestHeader(headers[i].key,headers[i].value);
  	   	    };
  	   }
  	   xhr_task.onload = function() {
  	   	    	    	    if (callbackSuccess)
  	   	    	    	    {
  	   	    	    	    var o = JSON.parse(this.responseText);
  	   	    	    	    callbackSuccess(o);
  	   	    	    	    }
  	   };	
  	   xhr_task.onerror = function() {
  	   	    	    	    if (callbackError)
  	   	    	    	    {
                         // handle the error...
  	   	    	    	    }
  	   };	
  	   xhr_task.send();
  	   return true;
  }




@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Differences between a Player and a User


•User
has subscribed to Beintoo
has inserted his Email

•Player
player is a generic user who hasn’t connected to beintoo yet

A user could be connected to several players



@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Beintoo API: Player.login

use this function whenever a user opens your
applications, it will return the player id (called guid,
which is unique for each of your player). Extract the guid
from the returned object.
url
https://api.beintoo.com/api/rest/player/login
auth
apikey : your app apikey
userExt: the user id, which may be null if the player isn’t logged in beintoo
deviceUUID : (optional) the deviceID , if you have access to it.
codeID : (optional)  a string that represents the position in your code. We will use it to identify different
api calls of the same nature.
guid: a string that uniquely identify this player in your app
params
language : (optional) the player language, using ISO639-1 standard
publicname: (optional) a human-readable string identifying the player



@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Titanium Code: PlayerLogin
 exports.playerLogin = function(callbackSuccess, callbackError) {
 	 // before to login, Am I a user?
 	 var userId = exports.getUserId();
 	 var headers = null;
 	 if (userId) {
 	 	 headers = [{
 	 	 	 key : 'userExt',
 	 	 	 value : userId
 	 	 }];
 	 } else {
 	 	 var player = exports.getPlayer(); //Am I a player ?
 	 	 if (player) {
 	 	 	 var guid = player.guid;
 	 	 	 headers = [{
 	 	 	 	 key : 'guid',
 	 	 	 	 value : guid
 	 	 	 }];
 	 	 } // else I’m a new player
 	 }
 	 exports.beintooREST('GET', 'https://api.beintoo.com/api/rest/player/login', headers,
 callbackSuccess, callbackError);
 }



@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Beintoo API: User Set (registration)

You can use this method to automatize the user-
registration of one of your player, providing us some
information.
Be aware that this method uses POST, not GET method.
User.setUser
url
https://api.beintoo.com/api/rest/user/set
auth (request header)
apikey: your app apikey
params (POST)
email: mandatory, return error if a user with that email is already registered or the email is not valid
address: optional
country: optional, String, ISO 3166-1-alpha-2 code
gender: optional, integer, 1=male, 2=female
nickname: optional
name: optional
password: optional, will be generated automatically if not provided
sendGreetingsEmail: optional, default true, whether or not to send a greeting email to the new user
imageURL: optional, URL of userimage




@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Titanium Code: userSet

 exports.userSet = function(email, nickname, password, callbackSuccess, callbackError) {

 	 var player = exports.getPlayer();
 	 if (player == null) {
 	 	 alert("You need to have a player object");
 	 	 return;
 	 }
 	 var headers = [{
 	 	 key : 'guid',
 	 	 value : player.guid
 	 }];
 	 var postParam = {
 	 	 email : email,
 	 	 password : password,
 	 	 sendGreetingsEmail : "true",
 	 	 nickname : nickname
 	 };
 	 exports.beintooREST('POST', 'https://api.beintoo.com/api/rest/user/set/', headers,
 callbackSuccess, callbackError, postParam);
 }



@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Beintoo API: Player.submitScore

use this function whenever you want to submit score,
i.e. each time your player ends a game.
After every submit score we automatically assign
Bedollars to the user through internal algorithms.
url
https://api.beintoo.com/api/rest/player/submitscore
auth (request header)
apikey : your app apikey
guid : the unique player id, on your app side.
deviceUUID : (optional) the deviceID , if you have access to it.
codeID : (optional)  a string that represents the position in your code. We will use it to identify different
api calls of the same nature. It is pretty important in submitscore, as the score id codeID dependant. In
this way you can send different kind of scoring, one for each codeID.
params
lastScore : the last game session score.
balance : (optional)  if you have a lifetime total score for that player.
latitude, longitude, radius: (optional) geolocation information.



@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Titanium Code: submitScore
 exports.submitScore = function(score, contest, callbackSuccess, callbackError) {

 	 var player = exports.getPlayer();
 	 if (player == null) {
 	 	 alert("You need to have a player object");
 	 	 return;
 	 }
 	 var headers = [];
 	 headers.push({
 	 	 key : 'guid',
 	 	 value : player.guid
 	 });
 	 if (contest) {
 	 	 headers.push({
 	 	 	 key : 'codeID',
 	 	 	 value : contest
 	 	 });
 	 }
 	 exports.beintooREST('GET', 'https://api.beintoo.com/api/rest/player/submitscore/?
 lastScore=' + score, headers, callbackSuccess, callbackError);
 }



@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Beintoo API: App.leaderboard

returns a map with your players and the score of those.

URL
https://api.beintoo.com/api/rest/app/leaderboard
auth
apikey: your app apikey
codeID: (optional)  a string that represents the position in your code. We will use it to identify different
api calls of the same nature.
params
start: used for page layout, it states the row at which the leaderboard should start (let’s say from 10th
on)
rows: the maximum number of results (max is set to 50, default 20)
kind:
 • STANDARD: standard leaderboard
 • FRIENDS: shows your and your friends leaderboards
 • GPS: shows leaderboard of users geolocated near to you
 • CLOSEST: shows leaderboard of users around you (let’s say 5 before your position and 5 after if
    rows was set to 10)
userExt (HEADER): necessary to filter if kind is not STANDARD
languageISO: a ISO 639.1 language identifier for app-personalized feed, if any


@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Titanium Code: getLeaderBoard
exports.getLeaderBoard =
function(callbackSuccess, callbackError) {

	 var headers = null;
	 exports.beintooREST('GET', 'https://
api.beintoo.com/api/rest/app/leaderboard?
kind=STANDARD', headers, callbackSuccess,
callbackError);

}


@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Titanium-Beintoo sample app




 https://github.com/alessioricco/titanium-beintoo




@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium



 complete source code
 https://github.com/alessioricco/titanium-beintoo

 beintoo
 http://www.beintoo.com/v2/home

 API documents
 http://documentation.beintoo.com/home/api-docs/resources

 Twinsmatcher
 https://itunes.apple.com/app/twinsmatcher/id429890747?mt=8



@alessioricco
sabato 23 febbraio 13
Implementing the Beintoo Gamification Platform in Titanium

Alessio Ricco
Wallive ltd Software Engineer

Titanium Certified App Developer
Titan
Ti.Roma - Roma Titanium Mobile Meetup
Etnatraining trainer and senior consultant

Apps
•TwinsMatcher
•Rassegna Stampa Politica Italiana
•CrowdFuture
http://alessioricco.com
http://www.linkedin.com/in/alessioricco
http://www.slideshare.net/alessioricco

@alessioricco
sabato 23 febbraio 13

More Related Content

Viewers also liked

Getting Started with Titanium
Getting Started with TitaniumGetting Started with Titanium
Getting Started with TitaniumKevin Whinnery
 
Il lato oscuro della forza - L'eterna lotta tra progettisti e team di sviluppo
Il lato oscuro della forza - L'eterna lotta tra progettisti e team di sviluppoIl lato oscuro della forza - L'eterna lotta tra progettisti e team di sviluppo
Il lato oscuro della forza - L'eterna lotta tra progettisti e team di sviluppoAlessio Ricco
 
Fifty shades of Alloy - tips and tools for a great Titanium Mobile development
Fifty shades of Alloy - tips and tools for a great Titanium Mobile developmentFifty shades of Alloy - tips and tools for a great Titanium Mobile development
Fifty shades of Alloy - tips and tools for a great Titanium Mobile developmentAlessio Ricco
 
Get Pumped for the HTML 5 Gamepad API
Get Pumped for the HTML 5 Gamepad APIGet Pumped for the HTML 5 Gamepad API
Get Pumped for the HTML 5 Gamepad APIKevin Whinnery
 
OSCON Titanium Tutorial
OSCON Titanium TutorialOSCON Titanium Tutorial
OSCON Titanium TutorialKevin Whinnery
 
Writing videogames with titanium appcelerator
Writing videogames with titanium appceleratorWriting videogames with titanium appcelerator
Writing videogames with titanium appceleratorAlessio Ricco
 
Whats New in Titanium 0.7
Whats New in Titanium 0.7Whats New in Titanium 0.7
Whats New in Titanium 0.7Kevin Whinnery
 
Extending Appcelerator Titanium Mobile through Native Modules
Extending Appcelerator Titanium Mobile through Native ModulesExtending Appcelerator Titanium Mobile through Native Modules
Extending Appcelerator Titanium Mobile through Native Modulesomorandi
 
Titanium appcelerator kickstart
Titanium appcelerator kickstartTitanium appcelerator kickstart
Titanium appcelerator kickstartAlessio Ricco
 
tempi e scaletta presentazione
tempi e scaletta presentazionetempi e scaletta presentazione
tempi e scaletta presentazioneAlessio Ricco
 
Titanium Mobile: flexibility vs. performance
Titanium Mobile: flexibility vs. performanceTitanium Mobile: flexibility vs. performance
Titanium Mobile: flexibility vs. performanceomorandi
 
Best Practices in apps development with Titanium Appcelerator
Best Practices in apps development with Titanium Appcelerator Best Practices in apps development with Titanium Appcelerator
Best Practices in apps development with Titanium Appcelerator Alessio Ricco
 
Extending Titanium with native iOS and Android modules
Extending Titanium with native iOS and Android modules Extending Titanium with native iOS and Android modules
Extending Titanium with native iOS and Android modules omorandi
 

Viewers also liked (14)

Getting Started with Titanium
Getting Started with TitaniumGetting Started with Titanium
Getting Started with Titanium
 
Il lato oscuro della forza - L'eterna lotta tra progettisti e team di sviluppo
Il lato oscuro della forza - L'eterna lotta tra progettisti e team di sviluppoIl lato oscuro della forza - L'eterna lotta tra progettisti e team di sviluppo
Il lato oscuro della forza - L'eterna lotta tra progettisti e team di sviluppo
 
Fifty shades of Alloy - tips and tools for a great Titanium Mobile development
Fifty shades of Alloy - tips and tools for a great Titanium Mobile developmentFifty shades of Alloy - tips and tools for a great Titanium Mobile development
Fifty shades of Alloy - tips and tools for a great Titanium Mobile development
 
Get Pumped for the HTML 5 Gamepad API
Get Pumped for the HTML 5 Gamepad APIGet Pumped for the HTML 5 Gamepad API
Get Pumped for the HTML 5 Gamepad API
 
OSCON Titanium Tutorial
OSCON Titanium TutorialOSCON Titanium Tutorial
OSCON Titanium Tutorial
 
Writing videogames with titanium appcelerator
Writing videogames with titanium appceleratorWriting videogames with titanium appcelerator
Writing videogames with titanium appcelerator
 
Whats New in Titanium 0.7
Whats New in Titanium 0.7Whats New in Titanium 0.7
Whats New in Titanium 0.7
 
Extending Appcelerator Titanium Mobile through Native Modules
Extending Appcelerator Titanium Mobile through Native ModulesExtending Appcelerator Titanium Mobile through Native Modules
Extending Appcelerator Titanium Mobile through Native Modules
 
Titanium @ Minnebar
Titanium @ MinnebarTitanium @ Minnebar
Titanium @ Minnebar
 
Titanium appcelerator kickstart
Titanium appcelerator kickstartTitanium appcelerator kickstart
Titanium appcelerator kickstart
 
tempi e scaletta presentazione
tempi e scaletta presentazionetempi e scaletta presentazione
tempi e scaletta presentazione
 
Titanium Mobile: flexibility vs. performance
Titanium Mobile: flexibility vs. performanceTitanium Mobile: flexibility vs. performance
Titanium Mobile: flexibility vs. performance
 
Best Practices in apps development with Titanium Appcelerator
Best Practices in apps development with Titanium Appcelerator Best Practices in apps development with Titanium Appcelerator
Best Practices in apps development with Titanium Appcelerator
 
Extending Titanium with native iOS and Android modules
Extending Titanium with native iOS and Android modules Extending Titanium with native iOS and Android modules
Extending Titanium with native iOS and Android modules
 

Similar to Implementing Gamification Platform

Introduction to Titanium and how to connect with a PHP backend
Introduction to Titanium and how to connect with a PHP backendIntroduction to Titanium and how to connect with a PHP backend
Introduction to Titanium and how to connect with a PHP backendJoseluis Laso
 
SRT Prometheus Exporter Introduction.pdf
SRT Prometheus Exporter Introduction.pdfSRT Prometheus Exporter Introduction.pdf
SRT Prometheus Exporter Introduction.pdfTomoya Fujita
 
apidays LIVE Australia - From micro to macro-coordination through domain-cent...
apidays LIVE Australia - From micro to macro-coordination through domain-cent...apidays LIVE Australia - From micro to macro-coordination through domain-cent...
apidays LIVE Australia - From micro to macro-coordination through domain-cent...apidays
 
[Test bash manchester] contract testing in practice
[Test bash manchester] contract testing in practice[Test bash manchester] contract testing in practice
[Test bash manchester] contract testing in practicePierre Vincent
 
apidays Paris 2022 - France Televisions : How we leverage API Platform for ou...
apidays Paris 2022 - France Televisions : How we leverage API Platform for ou...apidays Paris 2022 - France Televisions : How we leverage API Platform for ou...
apidays Paris 2022 - France Televisions : How we leverage API Platform for ou...apidays
 
Fiware IoT Proposal & Community
Fiware IoT Proposal & Community Fiware IoT Proposal & Community
Fiware IoT Proposal & Community TIDChile
 
Collaboration hack with slackbot - PyCon HK 2018 - 2018.11.24
Collaboration hack with slackbot - PyCon HK 2018 - 2018.11.24Collaboration hack with slackbot - PyCon HK 2018 - 2018.11.24
Collaboration hack with slackbot - PyCon HK 2018 - 2018.11.24Kei IWASAKI
 
Lewis brady engine_terminology (edited version)
Lewis brady engine_terminology (edited version)Lewis brady engine_terminology (edited version)
Lewis brady engine_terminology (edited version)LewisB2013
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminologyrosstapher
 
Building TweetEngine
Building TweetEngineBuilding TweetEngine
Building TweetEngineikailan
 
iPhone/iPad Development with Titanium
iPhone/iPad Development with TitaniumiPhone/iPad Development with Titanium
iPhone/iPad Development with TitaniumAxway Appcelerator
 
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CAAppcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CAJeff Haynie
 
Building Push Triggers for Logic Apps
Building Push Triggers for Logic AppsBuilding Push Triggers for Logic Apps
Building Push Triggers for Logic AppsBizTalk360
 
[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...
[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...
[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...Kevin Hooke
 
I really need some help if I have this right so far. Please Resub.pdf
I really need some help if I have this right so far. Please Resub.pdfI really need some help if I have this right so far. Please Resub.pdf
I really need some help if I have this right so far. Please Resub.pdfaggarwalshoppe14
 
user interface web GUI based on game predtiction
user interface web GUI based on game predtictionuser interface web GUI based on game predtiction
user interface web GUI based on game predtictionnithinsai2992
 
Lewis brady engine_terminology (edited version)
Lewis brady engine_terminology (edited version)Lewis brady engine_terminology (edited version)
Lewis brady engine_terminology (edited version)LewisB2013
 
Studying online distribution platforms for games through the mining of data f...
Studying online distribution platforms for games through the mining of data f...Studying online distribution platforms for games through the mining of data f...
Studying online distribution platforms for games through the mining of data f...SAIL_QU
 
What API Specifications and Tools Help Engineers to Construct a High-Security...
What API Specifications and Tools Help Engineers to Construct a High-Security...What API Specifications and Tools Help Engineers to Construct a High-Security...
What API Specifications and Tools Help Engineers to Construct a High-Security...Hitachi, Ltd. OSS Solution Center.
 
All about engagement with Universal Analytics @ Google Developer Group NYC Ma...
All about engagement with Universal Analytics @ Google Developer Group NYC Ma...All about engagement with Universal Analytics @ Google Developer Group NYC Ma...
All about engagement with Universal Analytics @ Google Developer Group NYC Ma...Nico Miceli
 

Similar to Implementing Gamification Platform (20)

Introduction to Titanium and how to connect with a PHP backend
Introduction to Titanium and how to connect with a PHP backendIntroduction to Titanium and how to connect with a PHP backend
Introduction to Titanium and how to connect with a PHP backend
 
SRT Prometheus Exporter Introduction.pdf
SRT Prometheus Exporter Introduction.pdfSRT Prometheus Exporter Introduction.pdf
SRT Prometheus Exporter Introduction.pdf
 
apidays LIVE Australia - From micro to macro-coordination through domain-cent...
apidays LIVE Australia - From micro to macro-coordination through domain-cent...apidays LIVE Australia - From micro to macro-coordination through domain-cent...
apidays LIVE Australia - From micro to macro-coordination through domain-cent...
 
[Test bash manchester] contract testing in practice
[Test bash manchester] contract testing in practice[Test bash manchester] contract testing in practice
[Test bash manchester] contract testing in practice
 
apidays Paris 2022 - France Televisions : How we leverage API Platform for ou...
apidays Paris 2022 - France Televisions : How we leverage API Platform for ou...apidays Paris 2022 - France Televisions : How we leverage API Platform for ou...
apidays Paris 2022 - France Televisions : How we leverage API Platform for ou...
 
Fiware IoT Proposal & Community
Fiware IoT Proposal & Community Fiware IoT Proposal & Community
Fiware IoT Proposal & Community
 
Collaboration hack with slackbot - PyCon HK 2018 - 2018.11.24
Collaboration hack with slackbot - PyCon HK 2018 - 2018.11.24Collaboration hack with slackbot - PyCon HK 2018 - 2018.11.24
Collaboration hack with slackbot - PyCon HK 2018 - 2018.11.24
 
Lewis brady engine_terminology (edited version)
Lewis brady engine_terminology (edited version)Lewis brady engine_terminology (edited version)
Lewis brady engine_terminology (edited version)
 
Y1 gd engine_terminology
Y1 gd engine_terminologyY1 gd engine_terminology
Y1 gd engine_terminology
 
Building TweetEngine
Building TweetEngineBuilding TweetEngine
Building TweetEngine
 
iPhone/iPad Development with Titanium
iPhone/iPad Development with TitaniumiPhone/iPad Development with Titanium
iPhone/iPad Development with Titanium
 
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CAAppcelerator iPhone/iPad Dev Con 2010 San Diego, CA
Appcelerator iPhone/iPad Dev Con 2010 San Diego, CA
 
Building Push Triggers for Logic Apps
Building Push Triggers for Logic AppsBuilding Push Triggers for Logic Apps
Building Push Triggers for Logic Apps
 
[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...
[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...
[CON3189] JavaOne 2016 - Introduction to Java ME development for the Raspberr...
 
I really need some help if I have this right so far. Please Resub.pdf
I really need some help if I have this right so far. Please Resub.pdfI really need some help if I have this right so far. Please Resub.pdf
I really need some help if I have this right so far. Please Resub.pdf
 
user interface web GUI based on game predtiction
user interface web GUI based on game predtictionuser interface web GUI based on game predtiction
user interface web GUI based on game predtiction
 
Lewis brady engine_terminology (edited version)
Lewis brady engine_terminology (edited version)Lewis brady engine_terminology (edited version)
Lewis brady engine_terminology (edited version)
 
Studying online distribution platforms for games through the mining of data f...
Studying online distribution platforms for games through the mining of data f...Studying online distribution platforms for games through the mining of data f...
Studying online distribution platforms for games through the mining of data f...
 
What API Specifications and Tools Help Engineers to Construct a High-Security...
What API Specifications and Tools Help Engineers to Construct a High-Security...What API Specifications and Tools Help Engineers to Construct a High-Security...
What API Specifications and Tools Help Engineers to Construct a High-Security...
 
All about engagement with Universal Analytics @ Google Developer Group NYC Ma...
All about engagement with Universal Analytics @ Google Developer Group NYC Ma...All about engagement with Universal Analytics @ Google Developer Group NYC Ma...
All about engagement with Universal Analytics @ Google Developer Group NYC Ma...
 

Recently uploaded

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Recently uploaded (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Implementing Gamification Platform

  • 1. Implementing the beintoo Gamification Platform in Titanium Alessio Ricco @alessioricco sabato 23 febbraio 13
  • 2. Implementing the Beintoo Gamification Platform in Titanium Beintoo: developer point of view Gamification Platform •cross apps user profile •score •leaderboards •achievements •and .... @alessioricco sabato 23 febbraio 13
  • 3. Implementing the Beintoo Gamification Platform in Titanium Beintoo: 3 actors Users they have a shared social profile and reputation Redeem goods Developers gamification api monetization Apps cross app promotion nework user engagement @alessioricco sabato 23 febbraio 13
  • 4. Implementing the Beintoo Gamification Platform in Titanium Gamification The ideas are quite simple: Users have a cross-apps profile on Beintoo.com where they share their achievements and rewards on gamified apps, and where they can follow their social graph friends and engage with them. Activities such as increase of score, change in rank of an app leaderboard, loyalty and completion of a level in a game will be seen by all Beintoo users. That creates a reputation layer, such that users are pushed to reach achievements which are then published and seen by the entire community. People can also challenge friends, create contests, send messages, rate or share, and above all get a cross apps use, constantly increasing the Apps engagement. This way users will have cross app achievements and a cross app reputation and will be able to check their stats in all their favourite apps. @alessioricco sabato 23 febbraio 13
  • 5. Implementing the Beintoo Gamification Platform in Titanium Contests / Leaderboards @alessioricco sabato 23 febbraio 13
  • 6. Implementing the Beintoo Gamification Platform in Titanium Contests / Leaderboards @alessioricco sabato 23 febbraio 13
  • 7. Implementing the Beintoo Gamification Platform in Titanium Achievements @alessioricco sabato 23 febbraio 13
  • 8. Implementing the Beintoo Gamification Platform in Titanium Achievements @alessioricco sabato 23 febbraio 13
  • 9. Implementing the Beintoo Gamification Platform in Titanium Achievements @alessioricco sabato 23 febbraio 13
  • 10. Implementing the Beintoo Gamification Platform in Titanium Promote your Apps throuhout the Beintoo Network Cross Apps promotion network @alessioricco sabato 23 febbraio 13
  • 11. Implementing the Beintoo Gamification Platform in Titanium Monetization Beintoo is an environment in which people will get real world opportunities from their virtual activities. As said before, developers will be able to rank users through beintoo scoring algorithms, to introduce achievements in their apps/games and to distribute rewards as virtual goods to their best and most loyal users. This way they are introduced to a network of distribution of virtual/real goods: a new innovative opportunity for monetization. In fact, developers monetize because once advertisers pay beintoo the delivery of the branded virtual goods and the redemption of the real coupons, Beintoo pay back developers 70% of their revenues. @alessioricco sabato 23 febbraio 13
  • 12. Implementing the Beintoo Gamification Platform in Titanium Titanium Code: BeintooRest exports.beintooREST = function(cmd, url, headers, callbackSuccess, callbackError) { var xhr_task = Ti.Network.createHTTPClient(); xhr_task.timeout = TIMEOUT; xhr_task.open(cmd,url); xhr_task.setRequestHeader('apikey',API); if (headers) { for(var i=0,j=headers.length; i<j; i++){ xhr_task.setRequestHeader(headers[i].key,headers[i].value); }; } xhr_task.onload = function() { if (callbackSuccess) { var o = JSON.parse(this.responseText); callbackSuccess(o); } }; xhr_task.onerror = function() { if (callbackError) { // handle the error... } }; xhr_task.send(); return true; } @alessioricco sabato 23 febbraio 13
  • 13. Implementing the Beintoo Gamification Platform in Titanium Differences between a Player and a User •User has subscribed to Beintoo has inserted his Email •Player player is a generic user who hasn’t connected to beintoo yet A user could be connected to several players @alessioricco sabato 23 febbraio 13
  • 14. Implementing the Beintoo Gamification Platform in Titanium Beintoo API: Player.login use this function whenever a user opens your applications, it will return the player id (called guid, which is unique for each of your player). Extract the guid from the returned object. url https://api.beintoo.com/api/rest/player/login auth apikey : your app apikey userExt: the user id, which may be null if the player isn’t logged in beintoo deviceUUID : (optional) the deviceID , if you have access to it. codeID : (optional)  a string that represents the position in your code. We will use it to identify different api calls of the same nature. guid: a string that uniquely identify this player in your app params language : (optional) the player language, using ISO639-1 standard publicname: (optional) a human-readable string identifying the player @alessioricco sabato 23 febbraio 13
  • 15. Implementing the Beintoo Gamification Platform in Titanium Titanium Code: PlayerLogin exports.playerLogin = function(callbackSuccess, callbackError) { // before to login, Am I a user? var userId = exports.getUserId(); var headers = null; if (userId) { headers = [{ key : 'userExt', value : userId }]; } else { var player = exports.getPlayer(); //Am I a player ? if (player) { var guid = player.guid; headers = [{ key : 'guid', value : guid }]; } // else I’m a new player } exports.beintooREST('GET', 'https://api.beintoo.com/api/rest/player/login', headers, callbackSuccess, callbackError); } @alessioricco sabato 23 febbraio 13
  • 16. Implementing the Beintoo Gamification Platform in Titanium Beintoo API: User Set (registration) You can use this method to automatize the user- registration of one of your player, providing us some information. Be aware that this method uses POST, not GET method. User.setUser url https://api.beintoo.com/api/rest/user/set auth (request header) apikey: your app apikey params (POST) email: mandatory, return error if a user with that email is already registered or the email is not valid address: optional country: optional, String, ISO 3166-1-alpha-2 code gender: optional, integer, 1=male, 2=female nickname: optional name: optional password: optional, will be generated automatically if not provided sendGreetingsEmail: optional, default true, whether or not to send a greeting email to the new user imageURL: optional, URL of userimage @alessioricco sabato 23 febbraio 13
  • 17. Implementing the Beintoo Gamification Platform in Titanium Titanium Code: userSet exports.userSet = function(email, nickname, password, callbackSuccess, callbackError) { var player = exports.getPlayer(); if (player == null) { alert("You need to have a player object"); return; } var headers = [{ key : 'guid', value : player.guid }]; var postParam = { email : email, password : password, sendGreetingsEmail : "true", nickname : nickname }; exports.beintooREST('POST', 'https://api.beintoo.com/api/rest/user/set/', headers, callbackSuccess, callbackError, postParam); } @alessioricco sabato 23 febbraio 13
  • 18. Implementing the Beintoo Gamification Platform in Titanium Beintoo API: Player.submitScore use this function whenever you want to submit score, i.e. each time your player ends a game. After every submit score we automatically assign Bedollars to the user through internal algorithms. url https://api.beintoo.com/api/rest/player/submitscore auth (request header) apikey : your app apikey guid : the unique player id, on your app side. deviceUUID : (optional) the deviceID , if you have access to it. codeID : (optional)  a string that represents the position in your code. We will use it to identify different api calls of the same nature. It is pretty important in submitscore, as the score id codeID dependant. In this way you can send different kind of scoring, one for each codeID. params lastScore : the last game session score. balance : (optional)  if you have a lifetime total score for that player. latitude, longitude, radius: (optional) geolocation information. @alessioricco sabato 23 febbraio 13
  • 19. Implementing the Beintoo Gamification Platform in Titanium Titanium Code: submitScore exports.submitScore = function(score, contest, callbackSuccess, callbackError) { var player = exports.getPlayer(); if (player == null) { alert("You need to have a player object"); return; } var headers = []; headers.push({ key : 'guid', value : player.guid }); if (contest) { headers.push({ key : 'codeID', value : contest }); } exports.beintooREST('GET', 'https://api.beintoo.com/api/rest/player/submitscore/? lastScore=' + score, headers, callbackSuccess, callbackError); } @alessioricco sabato 23 febbraio 13
  • 20. Implementing the Beintoo Gamification Platform in Titanium Beintoo API: App.leaderboard returns a map with your players and the score of those. URL https://api.beintoo.com/api/rest/app/leaderboard auth apikey: your app apikey codeID: (optional)  a string that represents the position in your code. We will use it to identify different api calls of the same nature. params start: used for page layout, it states the row at which the leaderboard should start (let’s say from 10th on) rows: the maximum number of results (max is set to 50, default 20) kind: • STANDARD: standard leaderboard • FRIENDS: shows your and your friends leaderboards • GPS: shows leaderboard of users geolocated near to you • CLOSEST: shows leaderboard of users around you (let’s say 5 before your position and 5 after if rows was set to 10) userExt (HEADER): necessary to filter if kind is not STANDARD languageISO: a ISO 639.1 language identifier for app-personalized feed, if any @alessioricco sabato 23 febbraio 13
  • 21. Implementing the Beintoo Gamification Platform in Titanium Titanium Code: getLeaderBoard exports.getLeaderBoard = function(callbackSuccess, callbackError) { var headers = null; exports.beintooREST('GET', 'https:// api.beintoo.com/api/rest/app/leaderboard? kind=STANDARD', headers, callbackSuccess, callbackError); } @alessioricco sabato 23 febbraio 13
  • 22. Implementing the Beintoo Gamification Platform in Titanium Titanium-Beintoo sample app https://github.com/alessioricco/titanium-beintoo @alessioricco sabato 23 febbraio 13
  • 23. Implementing the Beintoo Gamification Platform in Titanium complete source code https://github.com/alessioricco/titanium-beintoo beintoo http://www.beintoo.com/v2/home API documents http://documentation.beintoo.com/home/api-docs/resources Twinsmatcher https://itunes.apple.com/app/twinsmatcher/id429890747?mt=8 @alessioricco sabato 23 febbraio 13
  • 24. Implementing the Beintoo Gamification Platform in Titanium Alessio Ricco Wallive ltd Software Engineer Titanium Certified App Developer Titan Ti.Roma - Roma Titanium Mobile Meetup Etnatraining trainer and senior consultant Apps •TwinsMatcher •Rassegna Stampa Politica Italiana •CrowdFuture http://alessioricco.com http://www.linkedin.com/in/alessioricco http://www.slideshare.net/alessioricco @alessioricco sabato 23 febbraio 13