Massively Multiplayer Online Games and Mobile Devices.

Slides:



Advertisements
Similar presentations
BY MAULIK PATEL CED, GPERI Computing Architecture.
Advertisements

DT228/3 Web Development WWW and Client server model.
Technical Architectures
BY: ALBERTO CABEZAS 4/19/2010. INTRODUCTION: PHP is considered today as one of the most famous scripting languages. PHP is widely used as a general purpose.
Presentation Outline  Project Aims  Introduction of Digital Video Library  Introduction of Our Work  Considerations and Approach  Design and Implementation.
Web Server Hardware and Software
Servlets and a little bit of Web Services Russell Beale.
Distributed Systems and the WWW Extending the Capability of Massively Multiplayer Online Games by Introducing Distributed Systems as World Servers Jason.
15 Chapter 15 Web Database Development Database Systems: Design, Implementation, and Management, Fifth Edition, Rob and Coronel.
DATABASE APPLICATION DEVELOPMENT SAK 3408 The Web and DBMS.
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic Server Side Web Technologies: Part 1.
2/11/2004 Internet Services Overview February 11, 2004.
An Overview of Database Access on the Web An Overview of Database Access on the Web Using ASP and Microsoft Database Technology Sheffield Hallam University.
Apache Tomcat Server – installation & use Server-side language-- use Java Server Pages Contrast Client-side languages HTML Forms Servers & Server-side.
Multiple Tiers in Action
XML Based Learning Environment Prashant Karmarkar Brendan Nolan Alexander Roda.
1 CS6320 – Why Servlets? L. Grewe 2 What is a Servlet? Servlets are Java programs that can be run dynamically from a Web Server Servlets are Java programs.
Proxy Cache Leonid Romanovsky Olga Fomenko Winter 2003 Instructor: Konstantin Sinyuk.
PHP and MySQL Week#1  Course Plan.  Introduction to Dynamic Web Content.  Setting Up Development Server Eng. Mohamed Ahmed Black 1.
UNIT-V The MVC architecture and Struts Framework.
1 CS 131 Wrap Up Fall 2008 What Good is Programming?
INTRODUCTION TO WEB DATABASE PROGRAMMING
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Copyright © cs-tutorial.com. Introduction to Web Development In 1990 and 1991,Tim Berners-Lee created the World Wide Web at the European Laboratory for.
Dynamic Web Pages (Flash, JavaScript)
Databases and the Internet. Lecture Objectives Databases and the Internet Characteristics and Benefits of Internet Server-Side vs. Client-Side Special.
About Dynamic Sites (Front End / Back End Implementations) by Janssen & Associates Affordable Website Solutions for Individuals and Small Businesses.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Flash & JavaScript Mariela Hristova October 19, 2004 INF 385E – Fall 2004 – School of Information.
Web Services Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
MOBILITY BILL DEFRAYMENT
The Client/Server Database Environment Ployphan Sornsuwit KPRU Ref.
1 Welcome to CSC 301 Web Programming Charles Frank.
Web Controlled of Robot Georgi Chakarov Ivelin Stoyanov.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
1 MMORPG Servers. 2 MMORPGs Features Avatar Avatar Levels Levels RPG Elements RPG Elements Mission Mission Chatting Chatting Society & Community Society.
TownMUD An Interface for a Text-Based Multiple User Dimension.
Server-side Programming The combination of –HTML –JavaScript –DOM is sometimes referred to as Dynamic HTML (DHTML) Web pages that include scripting are.
Web Development Process The Site Development Process Site Construction is one of the last steps.
SOAP-based Web Services Telerik Software Academy Software Quality Assurance.
14 1 Chapter 14 Web Database Development Database Systems: Design, Implementation, and Management, Sixth Edition, Rob and Coronel.
Web Technologies Lecture 8 Server side web. Client Side vs. Server Side Web Client-side code executes on the end-user's computer, usually within a web.
Java for networking Module Introduction Data Communications Communication architecture Application.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Rolando Gaytan Clay Schumacher Josh Weisskopf Cory Simon Aaron Steil (Reiman Gardens) – Client Dr. Tien Nguyen - Advisor.
The basics of knowing the difference CLIENT VS. SERVER.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
IPS Infrastructure Technological Overview of Work Done.
1 PHP Intro PHP Introduction After this lecture, you should be able to: Know the fundamental concepts of Web Scripting Languages in general, PHP in particular.
1 LM 6 Database Applications Dr. Lei Li. Learning Objectives Explain three components of a client-server system Describe differences between a 2-tiered.
1/7/2016www.infocampus.co.in1. 1/7/2016www.infocampus.co.in2 Web Development training gives you and all-round training in both the design and the development.
 Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein  Academic adviser: Dr. Mayer Goldberg  Technical adviser: Mr. Guy Wiener.
6/28/ A global mesh of interconnected networks (internetworks) meets these human communication needs. Some of these interconnected networks are.
WWW and HTTP King Fahd University of Petroleum & Minerals
Web Application.
Web Software Model CS 4640 Programming Languages for Web Applications
The Client/Server Database Environment
The Client/Server Database Environment
PHP / MySQL Introduction
Database Driven Websites
Lecture 1: Multi-tier Architecture Overview
Introduction to Servlets
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
Back end Development CS Programming Languages for Web Applications
Back end Development CS Programming Languages for Web Applications
Web Application Development Using PHP
Presentation transcript:

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 can’t play when sitting on a bus…

Why Mobile Devices? Eight million WoW subscribers can’t 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 aren’t 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 $res = bw_exec($player, “getInventory”); def getInventory(self, response): response.contents = self.inventory response.done() HTTP GET /player/getInventory Cookie: SESS_ID=a03bffe foreach ($res['contents'] as $item) { showItem($item); } Inventory Sword of Mighty Strength Potion of Endurance (browser waiting) (blocking)

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 <?php // get a reference to the Avatar object known as ’Stig’ $player = bw_lookup_entity_by_name( ’Avatar’, ’Stig’ ); // call the BigWorld entity method $result = bw_exec( $player, ”getHealth” ); // write the health value back to the browser printf( ”Health of Stig: %d”, $result[’health’] ); ?>

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