SlideShare ist ein Scribd-Unternehmen logo
1 von 31
The BGA framework at a glance
Intro

The BGA framework helps you to build a online
board game adaptation:
● That will be played in realtime.
● That will be played by several human players.

● That will be played from an internet browser.

● That will have rules enforcement (ie : no possibility to cheat).




This presentation shows at a glance how BGA
framework is working
After reading this presentation, you'll be able to understand how a game is running on the
BGA platform.
We won't go into details, in order you can have a good overview of the platform, and
afterwards immediately understand « which component is doing what ».
Clients & server


                                                    BGA server
                                                     BGA server

Here's an overview of the BGA
architecture.

3 players : Alice, Bob and Charlie
are playing a game on the BGA
server using their web browser.
                                         Alice's
                                          Alice's     Bob's
                                                       Bob's      Charlie's
                                                                   Charlie's
                                        browser
                                         browser     browser
                                                      browser     browser
                                                                   browser
Clients & server


                                                    BGA server
                                                     BGA server


While developing your game logic,
you'll have to work on both server
side and client side.

Let's see what's on each side.

                                         Alice's
                                          Alice's     Bob's
                                                       Bob's      Charlie's
                                                                   Charlie's
                                        browser
                                         browser     browser
                                                      browser     browser
                                                                   browser
The server side

On the server side, you'll find 3
components :                                             BGA server
                                                          BGA server
●   The game database :

This is the current state of the
game (ex : scores, tokens place on
board, which card is where...)

●   The game logic :                           Game         Game           Game
                                              database   logic (rules)   resources
This is the rules of the game. The game
logic ensures that it's not possible to
cheat (« rules enforcement »).

●   The game resources :

This is what's going to be downloaded to
be used by the client browsers (ex :
images, stylesheets, ...).
The client side

                                                Alice's browser
                                                 Alice's browser


On the client side, you'll find the
user interface (UI).

The user interface manage all what
is displayed to the user (ex : « this
token has moved from A to B »),                      Game
and make possible all user actions                    UI
on the game (ex : « a click on this
card plays this card »).
The client side

To do this, you will use 4 different
types of resources :                               Alice's browser
                                                    Alice's browser

●A HTML view which defines the
basic layout of your game UI.

● Some images to display the
game art.                                                 Game
                                                           UI
● A CSS stylesheet which defines
the style and position of elements
of your game UI.

● A javascript script which
defines the mechanisms of your
UI (ex : click on this button trigger    HTML    Images    Stylesheet   Javascript
this action).                             view
Summary : technologies
                       used
 The game database is using MySQL.




 The game logic is using the PHP language.




 The game ressources, used for the user interface, are using :



HTML language                CSS                      Javascript script
  (HTML4)                 stylesheet                (with Dojo framework)
Information flow


                                                    BGA server
                                                     BGA server
Now, let's have a look on how all
these components interact with a
simple example.

Our three players A, B and C are
starting a game together. The name
of this fake game is «mygame ».
                                         Alice's
                                          Alice's     Bob's
                                                       Bob's      Charlie's
                                                                   Charlie's
                                        browser
                                         browser     browser
                                                      browser     browser
                                                                   browser
Creating a new game

                                                   BGA server
                                                    BGA server
As soon as everyone accept to
start the game, your PHP method
« setupNewGame » is called (from
game logic).

This method must setup the initial       ««setupNewGame »»
game situation, as described in             setupNewGame
game rules, ie you have to create
the right SQL statements to
initialize the database according to
the game rules.

This is it, you can now welcome
your players !
                                        Alice's
                                         Alice's      Bob's
                                                       Bob's     Charlie's
                                                                  Charlie's
                                       browser
                                        browser      browser
                                                      browser    browser
                                                                  browser
Loading the game


                                                              BGA server
                                                               BGA server
Alice's browser requests to load the
game with the path :

« /mygame?table=9999 »                 http://boardgamearena.com/mygame?table=9999

Where « 9999 » is the identifier of
the table.
                                             Alice's
                                              Alice's            Bob's
                                                                  Bob's              Charlie's
                                                                                      Charlie's
                                            browser
                                             browser            browser
                                                                 browser             browser
                                                                                      browser
Loading the game

                                                    BGA server
                                                     BGA server




At first, we have to gather all
informations about the current
game situation in order Alice's           ««getAllDatas »»
browser can setup game situation             getAllDatas
on client side.

For this, your « getAllDatas » PHP
method is called.



                                      Alice's
                                       Alice's         Bob's
                                                        Bob's     Charlie's
                                                                   Charlie's
                                     browser
                                      browser         browser
                                                       browser    browser
                                                                   browser
Loading the game

                                                     BGA server
                                                      BGA server




Your getAllDatas method gather all
information Alice can see from the       ««getAllDatas »»==
                                            getAllDatas
game (and not the cards in the
hand of Bob!), and return this data.




                                        Alice's
                                         Alice's        Bob's
                                                         Bob's     Charlie's
                                                                    Charlie's
                                       browser
                                        browser        browser
                                                        browser    browser
                                                                    browser
Loading game

Then, we have to generate for Alice                      BGA server
                                                          BGA server
a classical webpage where she can
play « mygame ». Of course, this
webpage is in classic HTML.

This is the view of the game.

You can use some logic to create                   HTML
some dynamic HTML page, but                      (inc data
most of the time we'll let the client            for Alice)
do the biggest part of the game
setup and return a simple piece of
static HTML here.

Note that the HTML generated
embed automatically the data              Alice's              Bob's     Charlie's
previously generated (in « json »          Alice's              Bob's     Charlie's
                                         browser
                                          browser             browser
                                                               browser   browser
                                                                          browser
format).
Loading the game


                                                   BGA server
                                                    BGA server




The HTML webpage and all
information are returned to Alice...


                                        Alice's
                                         Alice's     Bob's
                                                      Bob's      Charlie's
                                                                  Charlie's
                                       browser
                                        browser     browser
                                                     browser     browser
                                                                  browser
Loading the game


                                                  BGA server
                                                   BGA server



Then, like any classic webpages,
resources are downloaded : your
images, your javascript and your
css stylesheet.

                                       Alice's
                                        Alice's     Bob's
                                                     Bob's      Charlie's
                                                                 Charlie's
                                      browser
                                       browser     browser
                                                    browser     browser
                                                                 browser
Loading the game


Finally, your « setup » javascript                  BGA server
                                                     BGA server
method is called.

In this method, you can use the
data returned by the server
(« Alice data ») to finalize the
game setup for Alice.                                  ««setup »»
                                                          setup
                                         Alice's
                                          Alice's
Ex : wow, Alice starts the game         browser
                                         browser
with 3 money tokens. Let's set her                    Bob's         Charlie's
                                                       Bob's         Charlie's
money counter to « 3 ».                              browser
                                                      browser       browser
                                                                     browser
Loading the game


                                                  BGA server
                                                   BGA server


This is it !

Alice has now a view of the current
game situation, and she's ready to
play.
                                       Alice's
                                        Alice's     Bob's
                                                     Bob's      Charlie's
                                                                 Charlie's
                                      browser
                                       browser     browser
                                                    browser     browser
                                                                 browser
Loading the game


                                                 BGA server
                                                  BGA server



Of course the same thing
happened to Bob and Charlie.

Now, everyone is ready to play!

                                      Alice's
                                       Alice's     Bob's
                                                    Bob's      Charlie's
                                                                Charlie's
                                     browser
                                      browser     browser
                                                   browser     browser
                                                                browser
Making a move


                                                       BGA server
                                                        BGA server
It's Alice turn. She is the « active
player ».

Let say Alice want to play a card,
and then clicks on a card.


                                           Alice's browser       Bob's
                                            Alice's browser       Bob's Charlie's
                                                                         Charlie's
                                                                browser browser
                                                                 browser browser



                                         « clic »
Making a move


                                                       BGA server
                                                        BGA server

During the initial « setup » of the
page, we setup a handler for this
« clic » event for this card.

Let say this handler is a javascript                          «onClicMyMethod»
                                                               «onClicMyMethod»
method call « OnClicMyMethod ».
                                           Alice's browser       Bob's
OnClicMyMethod is called.                   Alice's browser       Bob's Charlie's
                                                                         Charlie's
                                                                browser browser
                                                                 browser browser



                                         « clic »
Making a move


                                                      BGA server
                                                       BGA server


OnClicMyMethod gets the ID of the        /mygame/mygame/playAcard.html?card=99
Alice's card (ex : 99), and send a
request to BGA server at this url :
                                                              «onClicMyMethod»
                                                               «onClicMyMethod»
/mygame/mygame/playAcard.html?
card=99
                                          Alice's browser          Bob's
                                           Alice's browser          Bob's Charlie's
                                                                           Charlie's
                                                                  browser browser
                                                                   browser browser



                                        « clic »
Making a move

                                                          BGA server
                                                           BGA server




On server side, your corresponding                              «playAcard( 99 )»
                                                                 «playAcard( 99 )»
method « playAcard » is called,
with the id of the card played in
parameter.



                                     /mygame/mygame/playAcard.html?card=99


                                           Alice's
                                            Alice's          Bob's
                                                              Bob's          Charlie's
                                                                              Charlie's
                                          browser
                                           browser          browser
                                                             browser         browser
                                                                              browser
Making a move

                                                              BGA server
                                                               BGA server




Your first work, on this method, is to
check if this is a right move :
● Is Alice the active player really ?
                                                                    «playAcard( 99 )»
                                                                     «playAcard( 99 )»
● Can she play a card at this

moment of the game ?
● Does she really have this card in

hand ?
● ...



                                         /mygame/mygame/playAcard.html?card=99


                                               Alice's
                                                Alice's          Bob's
                                                                  Bob's          Charlie's
                                                                                  Charlie's
                                              browser
                                               browser          browser
                                                                 browser         browser
                                                                                  browser
Making a move

                                                          BGA server
                                                           BGA server

Done !

Now, you just have to apply the
rules of the game to the current
situation.                                                      «playAcard( 99 )»
                                                                 «playAcard( 99 )»
Let's say the card played by Alice
gives her 2 money tokens. We write
in the database that she has 2
more money tokens and that her
card is now discarded (and that
                                     /mygame/mygame/playAcard.html?card=99
Bob is the new active player).

                                           Alice's
                                            Alice's          Bob's
                                                              Bob's          Charlie's
                                                                              Charlie's
                                          browser
                                           browser          browser
                                                             browser         browser
                                                                              browser
Making a move

                                                               BGA server
                                                                BGA server
Now, we have to notify all the
players that the situation has
evolved.

Note that we can't notify only Alice
here. All players must be notified                                   «playAcard( 99 )»
                                                                      «playAcard( 99 )»
that she has played a card and got
2 money tokens.

The BGA framework proposes a
simple method to create and send
notifications to players :                /mygame/mygame/playAcard.html?card=99
« notifyAllPlayers ».

Now let's notify all players that Alice         Alice's
                                                 Alice's          Bob's
                                                                   Bob's          Charlie's
                                                                                   Charlie's
got 2 money tokens...                          browser
                                                browser          browser
                                                                  browser         browser
                                                                                   browser
Making a move

                                                             BGA server
                                                              BGA server
                                                                                «playAcard( 99 )»
                                                                                 «playAcard( 99 )»



Let's name our notification
« takeMoneyToken ».

We associate to the notification a                         « takeMoneyToken »
little packet of data saying that the
concerned player is Alice and that
the number of token is 2.

The notification is sent to all         /mygame/mygame/playAcard.html?card=99
players.
                                              Alice's
                                               Alice's          Bob's
                                                                 Bob's             Charlie's
                                                                                    Charlie's
                                             browser
                                              browser          browser
                                                                browser            browser
                                                                                    browser
Making a move


                                                                  BGA server
                                                                   BGA server

Let's have a look on what happend
on Bob's browser.                       
/playAcard.html?...
                                                               « takeMoneyToken »
He receives a « takeMoneyToken »
notification. Automatically, your                                         «notif_takeMoneyToken»
associated javascript method                                               «notif_takeMoneyToken
« notif_takeMoneyToken » is               Alice's                 Bob's browser         Charlie's
called, with arguments saying that it      Alice's                 Bob's browser         Charlie's
                                         browser
                                          browser                                       browser
                                                                                         browser
concerns Alice and that the number
of money tokens is 2.
Making a move


                                                                 BGA server
                                                                  BGA server


 and finally, your
notif_takeMoneyToken just have to      
/playAcard.html?...
increase money tokens number of                               « takeMoneyToken »
Alice by 2 on the web page.

Of course the same thing happens                                         «notif_takeMoneyToken»
                                                                          «notif_takeMoneyToken
on Alice's and Charlie's browser, so
everyone knows that Alice is             Alice's                 Bob's browser
                                                                  Bob's browser        Charlie's
                                          Alice's                                       Charlie's
wealthier.                              browser
                                         browser                                       browser
                                                                                        browser
Making a move


                                                            BGA server
                                                             BGA server

Afterwards, two additional
                                     
/playAcard.html?...
notifications are sent to notify
players that Alice's card has been
discarded and that it's now Bob's
turn.

And this is it : Bob can take some       Alice's              Bob's
                                                               Bob's      Charlie's
action, and so on...                      Alice's            browser       Charlie's
                                        browser
                                         browser              browser     browser
                                                                           browser
Summary


● You know what is managed on the server side, and what is manager on the client
(browser) side.

●   You know which technology is used for each part of the game adaptation.

●You know what happened during basic steps of the game lifecycle : game setup,
page load and making a move.

●You understand the concepts of game database, game view, game action and
notification.

Weitere Àhnliche Inhalte

Was ist angesagt?

Introduction to game development
Introduction to game developmentIntroduction to game development
Introduction to game developmentAbdelrahman Ahmed
 
Game design document
Game design document Game design document
Game design document ARshut Syabrin
 
Game Development workshop with Unity3D.
Game Development workshop with Unity3D.Game Development workshop with Unity3D.
Game Development workshop with Unity3D.Ebtihaj khan
 
Game design document filled in
Game design document filled inGame design document filled in
Game design document filled iniain bruce
 
ê°œë°œë‹šêł„ Fun qa
ê°œë°œë‹šêł„ Fun qaê°œë°œë‹šêł„ Fun qa
ê°œë°œë‹šêł„ Fun qa원ìČ  정
 
2-Game Design (Game Design and Development)
2-Game Design (Game Design and Development)2-Game Design (Game Design and Development)
2-Game Design (Game Design and Development)Hafiz Ammar Siddiqui
 
Game development
Game developmentGame development
Game developmentRareCoders
 
Game Design fundamentals
Game Design fundamentalsGame Design fundamentals
Game Design fundamentalsMirco Pasqualini
 
06. Game Architecture
06. Game Architecture06. Game Architecture
06. Game ArchitectureAmin Babadi
 
Game Design as Career
Game Design as CareerGame Design as Career
Game Design as CareerArtfulArtsyAmy
 
Video game proposal
Video game proposalVideo game proposal
Video game proposalmissstevenson01
 
ìžŹëŻžì— 대한 êł ì°°
ìžŹëŻžì— 대한 êł ì°°ìžŹëŻžì— 대한 êł ì°°
ìžŹëŻžì— 대한 êł ì°°Hyungyu Kang
 
Game Design Document - Step by Step Guide
Game Design Document - Step by Step GuideGame Design Document - Step by Step Guide
Game Design Document - Step by Step GuideDevBatch Inc.
 
Game Design: Engagement
Game Design: EngagementGame Design: Engagement
Game Design: EngagementErez Yerushalmi
 
PRESENTATION ON Game Engine
PRESENTATION ON Game EnginePRESENTATION ON Game Engine
PRESENTATION ON Game EngineDiksha Bhargava
 
Data Driven Game development
Data Driven Game developmentData Driven Game development
Data Driven Game developmentKostas Anagnostou
 
Anatomy of a Modern Game design Document - Ralf Adam, Vera Frisch - 4C:Kyiv
Anatomy of a Modern Game design Document - Ralf Adam, Vera Frisch - 4C:KyivAnatomy of a Modern Game design Document - Ralf Adam, Vera Frisch - 4C:Kyiv
Anatomy of a Modern Game design Document - Ralf Adam, Vera Frisch - 4C:KyivRalf C. Adam
 
game development
game  developmentgame  development
game developmentumair khan
 
Game Analytics: Opening the Black Box
Game Analytics: Opening the Black BoxGame Analytics: Opening the Black Box
Game Analytics: Opening the Black BoxAnders Drachen
 

Was ist angesagt? (20)

Introduction to game development
Introduction to game developmentIntroduction to game development
Introduction to game development
 
Game design document
Game design document Game design document
Game design document
 
Game Development workshop with Unity3D.
Game Development workshop with Unity3D.Game Development workshop with Unity3D.
Game Development workshop with Unity3D.
 
Game design document filled in
Game design document filled inGame design document filled in
Game design document filled in
 
ê°œë°œë‹šêł„ Fun qa
ê°œë°œë‹šêł„ Fun qaê°œë°œë‹šêł„ Fun qa
ê°œë°œë‹šêł„ Fun qa
 
2-Game Design (Game Design and Development)
2-Game Design (Game Design and Development)2-Game Design (Game Design and Development)
2-Game Design (Game Design and Development)
 
Game development
Game developmentGame development
Game development
 
Game Design fundamentals
Game Design fundamentalsGame Design fundamentals
Game Design fundamentals
 
06. Game Architecture
06. Game Architecture06. Game Architecture
06. Game Architecture
 
Game Design as Career
Game Design as CareerGame Design as Career
Game Design as Career
 
Video game proposal
Video game proposalVideo game proposal
Video game proposal
 
ìžŹëŻžì— 대한 êł ì°°
ìžŹëŻžì— 대한 êł ì°°ìžŹëŻžì— 대한 êł ì°°
ìžŹëŻžì— 대한 êł ì°°
 
Game Design Document - Step by Step Guide
Game Design Document - Step by Step GuideGame Design Document - Step by Step Guide
Game Design Document - Step by Step Guide
 
Game Design: Engagement
Game Design: EngagementGame Design: Engagement
Game Design: Engagement
 
PRESENTATION ON Game Engine
PRESENTATION ON Game EnginePRESENTATION ON Game Engine
PRESENTATION ON Game Engine
 
Data Driven Game development
Data Driven Game developmentData Driven Game development
Data Driven Game development
 
Anatomy of a Modern Game design Document - Ralf Adam, Vera Frisch - 4C:Kyiv
Anatomy of a Modern Game design Document - Ralf Adam, Vera Frisch - 4C:KyivAnatomy of a Modern Game design Document - Ralf Adam, Vera Frisch - 4C:Kyiv
Anatomy of a Modern Game design Document - Ralf Adam, Vera Frisch - 4C:Kyiv
 
Testing in Game Development
Testing in Game DevelopmentTesting in Game Development
Testing in Game Development
 
game development
game  developmentgame  development
game development
 
Game Analytics: Opening the Black Box
Game Analytics: Opening the Black BoxGame Analytics: Opening the Black Box
Game Analytics: Opening the Black Box
 

KĂŒrzlich hochgeladen

Genuine 8617370543 Hot and Beautiful 💕 Gomati Escorts call Girls
Genuine 8617370543 Hot and Beautiful 💕 Gomati Escorts call GirlsGenuine 8617370543 Hot and Beautiful 💕 Gomati Escorts call Girls
Genuine 8617370543 Hot and Beautiful 💕 Gomati Escorts call GirlsNitya salvi
 
Deira Call girls 0507330913 Call girls in Deira
Deira Call girls 0507330913 Call girls in DeiraDeira Call girls 0507330913 Call girls in Deira
Deira Call girls 0507330913 Call girls in DeiraMonica Sydney
 
Call Girls In Gandhinagar 📞 8617370543 At Low Cost Cash Payment Booking
Call Girls In Gandhinagar 📞 8617370543  At Low Cost Cash Payment BookingCall Girls In Gandhinagar 📞 8617370543  At Low Cost Cash Payment Booking
Call Girls In Gandhinagar 📞 8617370543 At Low Cost Cash Payment BookingNitya salvi
 
Call Girls Moradabad Just Call 8617370543 Top Class Call Girl Service Available
Call Girls Moradabad Just Call 8617370543 Top Class Call Girl Service AvailableCall Girls Moradabad Just Call 8617370543 Top Class Call Girl Service Available
Call Girls Moradabad Just Call 8617370543 Top Class Call Girl Service AvailableNitya salvi
 
Call Girls in Ernakulam - 9332606886 Our call girls are sure to provide you w...
Call Girls in Ernakulam - 9332606886 Our call girls are sure to provide you w...Call Girls in Ernakulam - 9332606886 Our call girls are sure to provide you w...
Call Girls in Ernakulam - 9332606886 Our call girls are sure to provide you w...call girls kolkata
 
Satara call girl 8617370543♄ call girls in satara escort service
Satara call girl 8617370543♄ call girls in satara escort serviceSatara call girl 8617370543♄ call girls in satara escort service
Satara call girl 8617370543♄ call girls in satara escort serviceNitya salvi
 
Deira call girls 0507330913 Call girls in Deira
Deira call girls 0507330913  Call girls in DeiraDeira call girls 0507330913  Call girls in Deira
Deira call girls 0507330913 Call girls in DeiraMonica Sydney
 
Call Girls Rajnandgaon / 9332606886 Genuine Call girls with real Photos and N...
Call Girls Rajnandgaon / 9332606886 Genuine Call girls with real Photos and N...Call Girls Rajnandgaon / 9332606886 Genuine Call girls with real Photos and N...
Call Girls Rajnandgaon / 9332606886 Genuine Call girls with real Photos and N...call girls kolkata
 
Hire 💕 8617370543 Khalilabad Call Girls Service Call Girls Agency
Hire 💕 8617370543 Khalilabad Call Girls Service Call Girls AgencyHire 💕 8617370543 Khalilabad Call Girls Service Call Girls Agency
Hire 💕 8617370543 Khalilabad Call Girls Service Call Girls AgencyNitya salvi
 
Dubai Call girls Service 0524076003 Call girls in Dubai
Dubai Call girls Service 0524076003 Call girls in DubaiDubai Call girls Service 0524076003 Call girls in Dubai
Dubai Call girls Service 0524076003 Call girls in DubaiMonica Sydney
 
Ambassa Escorts | 8617370543 call girls service for all Users
Ambassa Escorts | 8617370543 call girls service for all UsersAmbassa Escorts | 8617370543 call girls service for all Users
Ambassa Escorts | 8617370543 call girls service for all UsersNitya salvi
 
Call Girls in Perumbavoor / 9332606886 Genuine Call girls with real Photos an...
Call Girls in Perumbavoor / 9332606886 Genuine Call girls with real Photos an...Call Girls in Perumbavoor / 9332606886 Genuine Call girls with real Photos an...
Call Girls in Perumbavoor / 9332606886 Genuine Call girls with real Photos an...call girls kolkata
 
BhubaneswarđŸŒčCall Girls Kalpana Mesuem ❀Komal 9777949614 💟 Full Trusted CALL ...
BhubaneswarđŸŒčCall Girls Kalpana Mesuem  ❀Komal 9777949614 💟 Full Trusted CALL ...BhubaneswarđŸŒčCall Girls Kalpana Mesuem  ❀Komal 9777949614 💟 Full Trusted CALL ...
BhubaneswarđŸŒčCall Girls Kalpana Mesuem ❀Komal 9777949614 💟 Full Trusted CALL ...Call Girls Mumbai
 
Vip Call Girls Bhubaneswar đŸ±â€đŸ 9777949614 Independent Escorts Service Bhubane...
Vip Call Girls Bhubaneswar đŸ±â€đŸ 9777949614 Independent Escorts Service Bhubane...Vip Call Girls Bhubaneswar đŸ±â€đŸ 9777949614 Independent Escorts Service Bhubane...
Vip Call Girls Bhubaneswar đŸ±â€đŸ 9777949614 Independent Escorts Service Bhubane...Call Girls Mumbai
 
Badshah Nagar ] Call Girls Service Lucknow | Starting â‚č,5K To @25k with A/C 9...
Badshah Nagar ] Call Girls Service Lucknow | Starting â‚č,5K To @25k with A/C 9...Badshah Nagar ] Call Girls Service Lucknow | Starting â‚č,5K To @25k with A/C 9...
Badshah Nagar ] Call Girls Service Lucknow | Starting â‚č,5K To @25k with A/C 9...HyderabadDolls
 
Hire 💕 8617370543 Mirzapur Call Girls Service Call Girls Agency
Hire 💕 8617370543 Mirzapur Call Girls Service Call Girls AgencyHire 💕 8617370543 Mirzapur Call Girls Service Call Girls Agency
Hire 💕 8617370543 Mirzapur Call Girls Service Call Girls AgencyNitya salvi
 
Call girls Service Berhampur - 9332606886 Our call girls are sure to provide ...
Call girls Service Berhampur - 9332606886 Our call girls are sure to provide ...Call girls Service Berhampur - 9332606886 Our call girls are sure to provide ...
Call girls Service Berhampur - 9332606886 Our call girls are sure to provide ...DipikaDelhi
 
BhubaneswarđŸŒčCall Girls Chandrashekharpur ❀Komal 9777949614 💟 Full Trusted CAL...
BhubaneswarđŸŒčCall Girls Chandrashekharpur ❀Komal 9777949614 💟 Full Trusted CAL...BhubaneswarđŸŒčCall Girls Chandrashekharpur ❀Komal 9777949614 💟 Full Trusted CAL...
BhubaneswarđŸŒčCall Girls Chandrashekharpur ❀Komal 9777949614 💟 Full Trusted CAL...Call Girls Mumbai
 
Call Girls Belonia Just Call 📞 8617370543 Top Class Call Girl Service Available
Call Girls Belonia Just Call 📞 8617370543 Top Class Call Girl Service AvailableCall Girls Belonia Just Call 📞 8617370543 Top Class Call Girl Service Available
Call Girls Belonia Just Call 📞 8617370543 Top Class Call Girl Service AvailableNitya salvi
 
Call Girls in Kollam - 9332606886 Our call girls are sure to provide you with...
Call Girls in Kollam - 9332606886 Our call girls are sure to provide you with...Call Girls in Kollam - 9332606886 Our call girls are sure to provide you with...
Call Girls in Kollam - 9332606886 Our call girls are sure to provide you with...call girls kolkata
 

KĂŒrzlich hochgeladen (20)

Genuine 8617370543 Hot and Beautiful 💕 Gomati Escorts call Girls
Genuine 8617370543 Hot and Beautiful 💕 Gomati Escorts call GirlsGenuine 8617370543 Hot and Beautiful 💕 Gomati Escorts call Girls
Genuine 8617370543 Hot and Beautiful 💕 Gomati Escorts call Girls
 
Deira Call girls 0507330913 Call girls in Deira
Deira Call girls 0507330913 Call girls in DeiraDeira Call girls 0507330913 Call girls in Deira
Deira Call girls 0507330913 Call girls in Deira
 
Call Girls In Gandhinagar 📞 8617370543 At Low Cost Cash Payment Booking
Call Girls In Gandhinagar 📞 8617370543  At Low Cost Cash Payment BookingCall Girls In Gandhinagar 📞 8617370543  At Low Cost Cash Payment Booking
Call Girls In Gandhinagar 📞 8617370543 At Low Cost Cash Payment Booking
 
Call Girls Moradabad Just Call 8617370543 Top Class Call Girl Service Available
Call Girls Moradabad Just Call 8617370543 Top Class Call Girl Service AvailableCall Girls Moradabad Just Call 8617370543 Top Class Call Girl Service Available
Call Girls Moradabad Just Call 8617370543 Top Class Call Girl Service Available
 
Call Girls in Ernakulam - 9332606886 Our call girls are sure to provide you w...
Call Girls in Ernakulam - 9332606886 Our call girls are sure to provide you w...Call Girls in Ernakulam - 9332606886 Our call girls are sure to provide you w...
Call Girls in Ernakulam - 9332606886 Our call girls are sure to provide you w...
 
Satara call girl 8617370543♄ call girls in satara escort service
Satara call girl 8617370543♄ call girls in satara escort serviceSatara call girl 8617370543♄ call girls in satara escort service
Satara call girl 8617370543♄ call girls in satara escort service
 
Deira call girls 0507330913 Call girls in Deira
Deira call girls 0507330913  Call girls in DeiraDeira call girls 0507330913  Call girls in Deira
Deira call girls 0507330913 Call girls in Deira
 
Call Girls Rajnandgaon / 9332606886 Genuine Call girls with real Photos and N...
Call Girls Rajnandgaon / 9332606886 Genuine Call girls with real Photos and N...Call Girls Rajnandgaon / 9332606886 Genuine Call girls with real Photos and N...
Call Girls Rajnandgaon / 9332606886 Genuine Call girls with real Photos and N...
 
Hire 💕 8617370543 Khalilabad Call Girls Service Call Girls Agency
Hire 💕 8617370543 Khalilabad Call Girls Service Call Girls AgencyHire 💕 8617370543 Khalilabad Call Girls Service Call Girls Agency
Hire 💕 8617370543 Khalilabad Call Girls Service Call Girls Agency
 
Dubai Call girls Service 0524076003 Call girls in Dubai
Dubai Call girls Service 0524076003 Call girls in DubaiDubai Call girls Service 0524076003 Call girls in Dubai
Dubai Call girls Service 0524076003 Call girls in Dubai
 
Ambassa Escorts | 8617370543 call girls service for all Users
Ambassa Escorts | 8617370543 call girls service for all UsersAmbassa Escorts | 8617370543 call girls service for all Users
Ambassa Escorts | 8617370543 call girls service for all Users
 
Call Girls in Perumbavoor / 9332606886 Genuine Call girls with real Photos an...
Call Girls in Perumbavoor / 9332606886 Genuine Call girls with real Photos an...Call Girls in Perumbavoor / 9332606886 Genuine Call girls with real Photos an...
Call Girls in Perumbavoor / 9332606886 Genuine Call girls with real Photos an...
 
BhubaneswarđŸŒčCall Girls Kalpana Mesuem ❀Komal 9777949614 💟 Full Trusted CALL ...
BhubaneswarđŸŒčCall Girls Kalpana Mesuem  ❀Komal 9777949614 💟 Full Trusted CALL ...BhubaneswarđŸŒčCall Girls Kalpana Mesuem  ❀Komal 9777949614 💟 Full Trusted CALL ...
BhubaneswarđŸŒčCall Girls Kalpana Mesuem ❀Komal 9777949614 💟 Full Trusted CALL ...
 
Vip Call Girls Bhubaneswar đŸ±â€đŸ 9777949614 Independent Escorts Service Bhubane...
Vip Call Girls Bhubaneswar đŸ±â€đŸ 9777949614 Independent Escorts Service Bhubane...Vip Call Girls Bhubaneswar đŸ±â€đŸ 9777949614 Independent Escorts Service Bhubane...
Vip Call Girls Bhubaneswar đŸ±â€đŸ 9777949614 Independent Escorts Service Bhubane...
 
Badshah Nagar ] Call Girls Service Lucknow | Starting â‚č,5K To @25k with A/C 9...
Badshah Nagar ] Call Girls Service Lucknow | Starting â‚č,5K To @25k with A/C 9...Badshah Nagar ] Call Girls Service Lucknow | Starting â‚č,5K To @25k with A/C 9...
Badshah Nagar ] Call Girls Service Lucknow | Starting â‚č,5K To @25k with A/C 9...
 
Hire 💕 8617370543 Mirzapur Call Girls Service Call Girls Agency
Hire 💕 8617370543 Mirzapur Call Girls Service Call Girls AgencyHire 💕 8617370543 Mirzapur Call Girls Service Call Girls Agency
Hire 💕 8617370543 Mirzapur Call Girls Service Call Girls Agency
 
Call girls Service Berhampur - 9332606886 Our call girls are sure to provide ...
Call girls Service Berhampur - 9332606886 Our call girls are sure to provide ...Call girls Service Berhampur - 9332606886 Our call girls are sure to provide ...
Call girls Service Berhampur - 9332606886 Our call girls are sure to provide ...
 
BhubaneswarđŸŒčCall Girls Chandrashekharpur ❀Komal 9777949614 💟 Full Trusted CAL...
BhubaneswarđŸŒčCall Girls Chandrashekharpur ❀Komal 9777949614 💟 Full Trusted CAL...BhubaneswarđŸŒčCall Girls Chandrashekharpur ❀Komal 9777949614 💟 Full Trusted CAL...
BhubaneswarđŸŒčCall Girls Chandrashekharpur ❀Komal 9777949614 💟 Full Trusted CAL...
 
Call Girls Belonia Just Call 📞 8617370543 Top Class Call Girl Service Available
Call Girls Belonia Just Call 📞 8617370543 Top Class Call Girl Service AvailableCall Girls Belonia Just Call 📞 8617370543 Top Class Call Girl Service Available
Call Girls Belonia Just Call 📞 8617370543 Top Class Call Girl Service Available
 
Call Girls in Kollam - 9332606886 Our call girls are sure to provide you with...
Call Girls in Kollam - 9332606886 Our call girls are sure to provide you with...Call Girls in Kollam - 9332606886 Our call girls are sure to provide you with...
Call Girls in Kollam - 9332606886 Our call girls are sure to provide you with...
 

BGA Studio: The BGA framework at a glance

  • 1. The BGA framework at a glance
  • 2. Intro The BGA framework helps you to build a online board game adaptation: ● That will be played in realtime. ● That will be played by several human players. ● That will be played from an internet browser. ● That will have rules enforcement (ie : no possibility to cheat). This presentation shows at a glance how BGA framework is working After reading this presentation, you'll be able to understand how a game is running on the BGA platform. We won't go into details, in order you can have a good overview of the platform, and afterwards immediately understand « which component is doing what ».
  • 3. Clients & server BGA server BGA server Here's an overview of the BGA architecture. 3 players : Alice, Bob and Charlie are playing a game on the BGA server using their web browser. Alice's Alice's Bob's Bob's Charlie's Charlie's browser browser browser browser browser browser
  • 4. Clients & server BGA server BGA server While developing your game logic, you'll have to work on both server side and client side. Let's see what's on each side. Alice's Alice's Bob's Bob's Charlie's Charlie's browser browser browser browser browser browser
  • 5. The server side On the server side, you'll find 3 components : BGA server BGA server ● The game database : This is the current state of the game (ex : scores, tokens place on board, which card is where...) ● The game logic : Game Game Game database logic (rules) resources This is the rules of the game. The game logic ensures that it's not possible to cheat (« rules enforcement »). ● The game resources : This is what's going to be downloaded to be used by the client browsers (ex : images, stylesheets, ...).
  • 6. The client side Alice's browser Alice's browser On the client side, you'll find the user interface (UI). The user interface manage all what is displayed to the user (ex : « this token has moved from A to B »), Game and make possible all user actions UI on the game (ex : « a click on this card plays this card »).
  • 7. The client side To do this, you will use 4 different types of resources : Alice's browser Alice's browser ●A HTML view which defines the basic layout of your game UI. ● Some images to display the game art. Game UI ● A CSS stylesheet which defines the style and position of elements of your game UI. ● A javascript script which defines the mechanisms of your UI (ex : click on this button trigger HTML Images Stylesheet Javascript this action). view
  • 8. Summary : technologies used The game database is using MySQL. The game logic is using the PHP language. The game ressources, used for the user interface, are using : HTML language CSS Javascript script (HTML4) stylesheet (with Dojo framework)
  • 9. Information flow BGA server BGA server Now, let's have a look on how all these components interact with a simple example. Our three players A, B and C are starting a game together. The name of this fake game is «mygame ». Alice's Alice's Bob's Bob's Charlie's Charlie's browser browser browser browser browser browser
  • 10. Creating a new game BGA server BGA server As soon as everyone accept to start the game, your PHP method « setupNewGame » is called (from game logic). This method must setup the initial ««setupNewGame »» game situation, as described in setupNewGame game rules, ie you have to create the right SQL statements to initialize the database according to the game rules. This is it, you can now welcome your players ! Alice's Alice's Bob's Bob's Charlie's Charlie's browser browser browser browser browser browser
  • 11. Loading the game BGA server BGA server Alice's browser requests to load the game with the path : « /mygame?table=9999 » http://boardgamearena.com/mygame?table=9999 Where « 9999 » is the identifier of the table. Alice's Alice's Bob's Bob's Charlie's Charlie's browser browser browser browser browser browser
  • 12. Loading the game BGA server BGA server At first, we have to gather all informations about the current game situation in order Alice's ««getAllDatas »» browser can setup game situation getAllDatas on client side. For this, your « getAllDatas » PHP method is called. Alice's Alice's Bob's Bob's Charlie's Charlie's browser browser browser browser browser browser
  • 13. Loading the game BGA server BGA server Your getAllDatas method gather all information Alice can see from the ««getAllDatas »»== getAllDatas game (and not the cards in the hand of Bob!), and return this data. Alice's Alice's Bob's Bob's Charlie's Charlie's browser browser browser browser browser browser
  • 14. Loading game Then, we have to generate for Alice BGA server BGA server a classical webpage where she can play « mygame ». Of course, this webpage is in classic HTML. This is the view of the game. You can use some logic to create HTML some dynamic HTML page, but (inc data most of the time we'll let the client for Alice) do the biggest part of the game setup and return a simple piece of static HTML here. Note that the HTML generated embed automatically the data Alice's Bob's Charlie's previously generated (in « json » Alice's Bob's Charlie's browser browser browser browser browser browser format).
  • 15. Loading the game BGA server BGA server The HTML webpage and all information are returned to Alice... Alice's Alice's Bob's Bob's Charlie's Charlie's browser browser browser browser browser browser
  • 16. Loading the game BGA server BGA server Then, like any classic webpages, resources are downloaded : your images, your javascript and your css stylesheet. Alice's Alice's Bob's Bob's Charlie's Charlie's browser browser browser browser browser browser
  • 17. Loading the game Finally, your « setup » javascript BGA server BGA server method is called. In this method, you can use the data returned by the server (« Alice data ») to finalize the game setup for Alice. ««setup »» setup Alice's Alice's Ex : wow, Alice starts the game browser browser with 3 money tokens. Let's set her Bob's Charlie's Bob's Charlie's money counter to « 3 ». browser browser browser browser
  • 18. Loading the game BGA server BGA server This is it ! Alice has now a view of the current game situation, and she's ready to play. Alice's Alice's Bob's Bob's Charlie's Charlie's browser browser browser browser browser browser
  • 19. Loading the game BGA server BGA server Of course the same thing happened to Bob and Charlie. Now, everyone is ready to play! Alice's Alice's Bob's Bob's Charlie's Charlie's browser browser browser browser browser browser
  • 20. Making a move BGA server BGA server It's Alice turn. She is the « active player ». Let say Alice want to play a card, and then clicks on a card. Alice's browser Bob's Alice's browser Bob's Charlie's Charlie's browser browser browser browser « clic »
  • 21. Making a move BGA server BGA server During the initial « setup » of the page, we setup a handler for this « clic » event for this card. Let say this handler is a javascript «onClicMyMethod» «onClicMyMethod» method call « OnClicMyMethod ». Alice's browser Bob's OnClicMyMethod is called. Alice's browser Bob's Charlie's Charlie's browser browser browser browser « clic »
  • 22. Making a move BGA server BGA server OnClicMyMethod gets the ID of the /mygame/mygame/playAcard.html?card=99 Alice's card (ex : 99), and send a request to BGA server at this url : «onClicMyMethod» «onClicMyMethod» /mygame/mygame/playAcard.html? card=99 Alice's browser Bob's Alice's browser Bob's Charlie's Charlie's browser browser browser browser « clic »
  • 23. Making a move BGA server BGA server On server side, your corresponding «playAcard( 99 )» «playAcard( 99 )» method « playAcard » is called, with the id of the card played in parameter. /mygame/mygame/playAcard.html?card=99 Alice's Alice's Bob's Bob's Charlie's Charlie's browser browser browser browser browser browser
  • 24. Making a move BGA server BGA server Your first work, on this method, is to check if this is a right move : ● Is Alice the active player really ? «playAcard( 99 )» «playAcard( 99 )» ● Can she play a card at this moment of the game ? ● Does she really have this card in hand ? ● ... /mygame/mygame/playAcard.html?card=99 Alice's Alice's Bob's Bob's Charlie's Charlie's browser browser browser browser browser browser
  • 25. Making a move BGA server BGA server Done ! Now, you just have to apply the rules of the game to the current situation. «playAcard( 99 )» «playAcard( 99 )» Let's say the card played by Alice gives her 2 money tokens. We write in the database that she has 2 more money tokens and that her card is now discarded (and that /mygame/mygame/playAcard.html?card=99 Bob is the new active player). Alice's Alice's Bob's Bob's Charlie's Charlie's browser browser browser browser browser browser
  • 26. Making a move BGA server BGA server Now, we have to notify all the players that the situation has evolved. Note that we can't notify only Alice here. All players must be notified «playAcard( 99 )» «playAcard( 99 )» that she has played a card and got 2 money tokens. The BGA framework proposes a simple method to create and send notifications to players : /mygame/mygame/playAcard.html?card=99 « notifyAllPlayers ». Now let's notify all players that Alice Alice's Alice's Bob's Bob's Charlie's Charlie's got 2 money tokens... browser browser browser browser browser browser
  • 27. Making a move BGA server BGA server «playAcard( 99 )» «playAcard( 99 )» Let's name our notification « takeMoneyToken ». We associate to the notification a « takeMoneyToken » little packet of data saying that the concerned player is Alice and that the number of token is 2. The notification is sent to all /mygame/mygame/playAcard.html?card=99 players. Alice's Alice's Bob's Bob's Charlie's Charlie's browser browser browser browser browser browser
  • 28. Making a move BGA server BGA server Let's have a look on what happend on Bob's browser. 
/playAcard.html?... « takeMoneyToken » He receives a « takeMoneyToken » notification. Automatically, your «notif_takeMoneyToken» associated javascript method «notif_takeMoneyToken « notif_takeMoneyToken » is Alice's Bob's browser Charlie's called, with arguments saying that it Alice's Bob's browser Charlie's browser browser browser browser concerns Alice and that the number of money tokens is 2.
  • 29. Making a move BGA server BGA server 
 and finally, your notif_takeMoneyToken just have to 
/playAcard.html?... increase money tokens number of « takeMoneyToken » Alice by 2 on the web page. Of course the same thing happens «notif_takeMoneyToken» «notif_takeMoneyToken on Alice's and Charlie's browser, so everyone knows that Alice is Alice's Bob's browser Bob's browser Charlie's Alice's Charlie's wealthier. browser browser browser browser
  • 30. Making a move BGA server BGA server Afterwards, two additional 
/playAcard.html?... notifications are sent to notify players that Alice's card has been discarded and that it's now Bob's turn. And this is it : Bob can take some Alice's Bob's Bob's Charlie's action, and so on... Alice's browser Charlie's browser browser browser browser browser
  • 31. Summary ● You know what is managed on the server side, and what is manager on the client (browser) side. ● You know which technology is used for each part of the game adaptation. ●You know what happened during basic steps of the game lifecycle : game setup, page load and making a move. ●You understand the concepts of game database, game view, game action and notification.