Massively Multiplayer Online Games and Mobile Devices.

Презентация:



Advertisements
Похожие презентации
© 2009 Avaya Inc. All rights reserved.1 Chapter Four, UMS Web Services Module One – UMS.
Advertisements

© 2009 Avaya Inc. All rights reserved.1 Chapter Four, UMS Web Services Module Three – Exchange 2007.
© 2009 Avaya Inc. All rights reserved.1 Chapter Four, UMS Web Services Module Two – IMAP Service.
WiseImage Open Architecture. Why to open? Modern technology demands A growing amount of customers demands for custom commands The limited development.
Lets look at some interesting and popular devices which have touchscreens.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary November 4, 2014 Copyright © 2006 Eclipse Foundation, Inc., Made available.
1 When And How To Make Interfaces Work For You Advanced OO Techniques Alex Herbstritt Principal Software Engineer, Progress Software Session 102.
WEB SERVICES Mr. P. VASANTH SENA. W EB SERVICES The world before Situation Problems Solutions Motiv. for Web Services Probs. with Curr. sols. Web Services.
© 2006 Cisco Systems, Inc. All rights reserved. CVOICE v VoIP Signaling and Call Control Configuring SIP.
Strategy / Business Development Technique Communication / Design.
General Packet Radio Service. GPRS GPRS is a packet-based data bearer service for GSM and TDMA networks. GPRS gives mobile users faster data speeds and.
Copyright 2003 CCNA 1 Chapter 9 TCP/IP Transport and Application Layers By Your Name.
© 2005 Cisco Systems, Inc. All rights reserved. IPTX v Configuring Cisco Unity Express Automated Attendant and Voice Mail Understanding Cisco Unity.
Loader Design Options Linkage Editors Dynamic Linking Bootstrap Loaders.
EXTERNAL Copyright 2006 Symbian Ltd. released under EPL version Javier Montalvo Orús Neil Taylor Symbian Target Management System.
Standard I/O and Pipes. Standard Input and Output Linux provides three I/O channels to Programs Standard input (STDIN) - keyboard by default Standard.
© 2009 Avaya Inc. All rights reserved.1 Chapter Three, Voic Pro Advanced Functions Module One – Text to Speech.
The new generation of Supervisory System Main Features: MONITORING is based on reading and saving the values from the field and then using these values.
AVVID Troubleshooting Tools © 2004 Cisco Systems, Inc. All rights reserved. Using Database Tools IPTT v
Unity3d Fomin Maxim 394 group. Unity is an integrated authoring tool for creating 3D video games or other interactive content such as architectural visualizations.
Транксрипт:

Massively Multiplayer Online Games and Mobile Devices

Overview of BigWorld Technology Complete Integrated Software Solution for MMOGs Integrated 3D Client/Server Backend Content Creation Tools/Management Tools Customisable Extensible with C++ and Python Scripting Scalable Truly Massively Multiplayer Total Load Balancing Solution Full Fault Tolerance

Complete Integrated Solution Content Creation Tools World, Model & Particle System editors 3ds Max & Maya exporters Supports multiple users editing shared content

Complete Integrated Solution Specialised 3D Client Engine Seamless streamed world content Character animation systems AI Support

Complete Integrated Solution Flexible Server Back-end and Tools Dynamic load balancing Fault tolerant Web based monitoring tools

Why Mobile Devices? Eight million WoW subscribers cant play when sitting on a bus…

Why Mobile Devices? Eight million WoW subscribers cant play when sitting on a bus… What can we offer them?

Imagine This… –Check auction house –Buy Sword of Mighty Strength –Send message to clan confirming that the dungeon raid is on for 7:30 tonight… –Spend rest of journey playing mini-games to create health potions for tonight's raid.

Why… Create stronger communities Competitive advantage Cheap way to add content

Research The Diversity of Mobile Devices Input: D-Pads to miniature QWERTY keyboards Output: tiny 5 line screens to 4" PSPs OS/Dev Environments: Symbian, Java, BREW, HTML

Research The Diversity of Mobile Devices Input: D-Pads to miniature QWERTY keyboards Output: tiny 5 line screens to 4" PSPs OS/Dev Environments: Symbian, Java, BREW, HTML Problem Too much diversity! Native engine support (2D/3D) for mobile devices is hard, and not always appropriate

Research The Diversity of Mobile Devices Input: D-Pads to miniature QWERTY keyboards Output: tiny 5 line screens to 4" PSPs OS/Dev Environments: Symbian, Java, BREW, HTML Problem Too much diversity! Native engine support (2D/3D) for mobile devices is hard, and not always appropriate Our Solution Lightweight HTML game interaction API

Requirements Scalability Able to handle millions of connections/players

Requirements Scalability Able to handle millions of connections/players Extensible API Create game specific APIs without recompiling

Requirements Scalability Able to handle millions of connections/players Extensible API Create game specific APIs without recompiling Simple Query Interface To web designers just like accessing a DB

Requirements Scalability Able to handle millions of connections/players Extensible API Create game specific APIs without recompiling Simple Query Interface To web designers just like accessing a DB Script Language Agnostic Standard web scripting language support

Implementation Issues HTTP is synchronous, but MMOG servers arent Need to handle multiple simultaneous requests Load balancing issues Compatibility

BigWorld General Architecture Client SWITCH FABRIC Internet SWITCH FABRIC Cell Server Login Server/s Base Server Database Server/s Management Server/s Client Base Server Base Server Cell Server Cell Server Cell Server

BigWorld General Architecture Client SWITCH FABRIC Cell Server Login Server/s Base Server Database Server/s Management Server/s Client Base Server Base Server Cell Server Cell Server Cell Server Internet

BigWorld General Architecture Client SWITCH FABRIC Cell Server Login Server/s Base Server Database Server/s Management Server/s Client Base Server Base Server Cell Server Cell Server Cell Server Mobile/Web Client Internet

BigWorld General Architecture Client SWITCH FABRIC Cell Server Login Server/s Base Server Database Server/s Management Server/s Client Base Server Base Server Cell Server Cell Server Cell Server mod_phpmod_python Apache HTTP Daemon BigWorld Web Integration Module Mobile/Web Client Internet

BigWorld General Architecture Client SWITCH FABRIC Cell Server Login Server/s Base Server Database Server/s Management Server/s Client Base Server Base Server Cell Server Cell Server Cell Server mod_phpmod_python Apache HTTP Daemon BigWorld Web Integration Module Mobile/Web Client Internet

Apache HTTP Daemon BigWorld General Architecture Client SWITCH FABRIC Cell Server Login Server/s Base Server Database Server/s Management Server/s Client Base Server Base Server Cell Server Cell Server Cell Server mod_phpmod_python Apache HTTP Daemon BigWorld Web Integration Module Mobile/Web Client Internet

Transaction Timeline User BrowserWeb ServerBigWorld BaseApp HTTP GET /player/getInventory Cookie: SESS_ID=a03bffe

PHP API Complete PHP API bw_logon($username, $password) bw_lookup_entity_by_name($entityType, $name) bw_lookup_entity_by_dbid($entityType, $dbId) bw_exec($mailbox, $baseMethodName,...) bw_pickle($pyObjectResource) bw_unpickle($pickleString) bw_pyprint($pyObjectResource)

Defining Methods... INT16 STRING INT8 STRING ARRAY INT32

Server-Side Implementation Implementation of Server-Side Methods class Avatar( BigWorld.Base ): … def getHealth( self, response ): response.health = self.cell.health response.done() def sendChatMessage( self, message ): self.allClients.showMessage( message ) # no return values required def getInventory( self, response, bagNumber ): # self.bagNames and self.bagContents are # BigWorld-aware Entity properties response.bagName = self.bagNames[bagNumber] response.contents = self.bagContents[bagNumber] response.done()

Web Server Code Using Functions from PHP

mod_python Using Functions from mod_python def listHealth( req ): # get a reference to the Avatar object known as Stig player = pyBigWorld.lookupEntityByName(Avatar, Stig) # call the BigWorld entity method result = player.getHealth() # write the health value back to the browser req.write(Health of Stig: %d % result[health] )

Capabilities View Character Statistics Player Chat Player to Player Object trading Auction House Tamagotchi Style Games Mini-Games (XP Grinding)

Example: View Player Stats

Example: Create Auction from Inventory

Example: Search Auctions

Conclusion Pervasive MMOG experiences anywhere Create cheap extensions to your Game Create stronger communities