480 likes | 755 Views
Grids And Gaming: Developing MMOGs (Massively Multiplayer Online Games) on the Grid. Johnny L. Hopkins (johopkin@uncc.edu) Department of Software and Information Systems College of Information Technology November 8, 2005 ITCS 5010: Grid Computing The University of North Carolina at Charlotte.
E N D
Grids And Gaming: Developing MMOGs (Massively Multiplayer Online Games) on the Grid Johnny L. Hopkins (johopkin@uncc.edu) Department of Software and Information Systems College of Information Technology November 8, 2005 ITCS 5010: Grid Computing The University of North Carolina at Charlotte
Gaming on the Grid • What is a game? • Different game genres • MMORPGs/MMORTSs/MMOGs • Basic steps to designing and developing a MMOG/MMORPG/MMORTS/ • Curent MMP Engines • Languages for MMP development • How grids can help the game development process • The “butterfly grid” • Resources for Gaming
What is a Game? • What are YOUR definitions of a good video game? • Definition: “A great game is a series of interesting and meaningful choices made by the player in pursuit of a clear and compelling goal” (Rabin 2005).
Different Game Genres • Action • Adventure • Arcade • Casual (Texas Hold ‘Em Poker, Pogo.com, Uproar.com, You Don’t Know Jack) • Educational (Where in the World is Carmen Sandiego) • Fighting/First-person shooters (Halo II) • Platform • Puzzle (Puzzle Pirates, Bejeweled, Sudoku) • Racing (Grand Tourismo) • Rhythm (Dance Dance Revolution) • Sports (Madden 2005) • Role-Playing (EverQuest, World of Warcraft) • Strategy (Civilization IV)
MMORPGs/MMORTSs/MMOGs • Acronyms • MMORPG: Massively Multiplayer Online Role Playing Game • MMORTS: Massively Multiplayer Online Real-Time Strategy Game • MMOG: Massively Multiplayer Online Game
Why MMOG/MMORPG • Social aspect • Skill • “Escape” from reality • Simultaneous interaction • “Social hijacking” • Ability to “mod” (Unreal, Quake, Half-Life, Civilization)
MMORPGs/MMORTSs/MMOGs • In all cases, these are video games designed to be played over a computer network and/or the Internet (e.g. LAN parties) • EverQuest (Sony Entertainment) is the most popular MMORPG among players • Are often some of the harder games to design and develop
Long development cycle (two to three years) Versioning issues Basic client-server development challenges Security: Hacking, In-game cheating, Illegal plugins, etc.) Issues with MMOGs/MMORPGs
Basic Architecture of MMOGs Hsiao, Tsun-Yu and Yuan, Shyan-Ming, “Practical Middleware for Massively Multiplayer Online Games,” IEEE Internet Computing, vol. 9, no. 5, 2005, pp. 47-54
Basic Steps • Create character • Save the character on the server-side • Login with character • Enable chat and “shout” • Create and enable 3D navigation • Create a database (data store) to hold info on players, stats, worlds, guilds, etc.)
Different MMORPG architectures • Client/Server • Peer-to-Peer (P2P) • Grid (That’s us!!!!! ) • Distributed Systems
MMORPG Architectures: Client/Server • Strong points: Mainframe heritage • Time tested: Mature and widespread • Single point of control: Allows for monitoring • Strong security: Servers are in data centers, hard to compromise systems (Yeah, RIGHT!!!) • Modular scalability: Easy to scale and extend by adding servers to server farm) • Most MMPs use this architecture (currently)
MMORPG Architectures: Client/Server • Pitfalls: • Dependency on a single physical channel to data center • Having C/S architecture for MMPs (Massive Multiplayer) require large capital expense upfront • O(n^2) scalability problems (Think back to your data structures/algorithms class. Why is this bad for MMPs
MMORPG Architectures: Peer-to-Peer (P2P) • Strong points • Highly scalable: Good performance • O(n^2) solution: Bandwidth grows with additional players • Massive processing capabilities: Contribute idle resources • Massive storage capability: 100s TBytes of storage at no additional costs • Low hardware expenses: Very few centralized resources, everything is done on the network • Low bandwidth requirements: No central data center, dynamic connections between each node • Dynamic topology, no single point of failure: Resilient to attacks and catastrophes • Improved latency: Ave round-trip in dynamically formed P2P network is significantly less than round trip to a fixed C/S datacenter
MMORPG Architectures: Peer-to-Peer • Pitfalls • Decentralization • No guarantees of “legitimate” data sources • No way to establish data authenticity • No way to control the behavior of P2P networks
MMORPG Architectures: Grids • Scalable, high-performance network: Combines the power of existing data centers and servers into a “super server.” • Massive storage capabilities: Servers AND data centers can provide terabytes of storage at no cost • Low bandwidth constraints: Generally favorably located near Internet backbones, gives ample bandwidth • Low hardware expenses: Most processing and storage takes place on servers connected to the grid, little additional resources needed.
MMORPG Architectures: Grids • Pitfalls • No possibly of direct management of servers because an open grid consists of decentralized servers not owned by a single entity • Different machines running different OSes • Hard to monitor in real-time or make changes to network
MMORPG Architectures: Distributed Computing • Close “cousin” to P2P networks • Focuses on contributing computer power • Shows promise for large-scale computational projects (SETI@Home) • Finds corrupted data and malfunctioning nodes by repeating the same transmission on different nodes
MMORPG Architectures: Distributed Computing • Pitfall: It is not a real-time system, so you can’t use this architecture for MMORPGs
Different MMP Engines • Game Gardnens • BigWorld Technology • Kaneva • Populace • Quazal • Massiv • ICE (Internet Communications Engine) • RakNet • ReplicaNet • Zona
Different MMP Engines • Game Gardens (Three Rings Design, http://www.gamegardens.com) • Foundational MMP engine for Puzzle Pirates • Java-based • Client/Server architecture • FREE!!!!!!
Different MMP Engines • BigWorld MMO Engine (http://www.bigworldtech.com) • Developed in Australia • Made up of client, server, tools • Licensed by comapanies in Asia • Interfaces with Python, XML, etc • Aimed at serious developers
Different MMP Engines • Kaneva (Kaneva, Game Platform, http://www.kaneva.com) • First downloadable engine for online games • Integrated system (AI, persistent worlds, etc.) • Licensing: Free to $50, 000 for a sinlge use license
Different MMP Engines • Populace (http://www.populace.com) • Designed for use with 3D Game Studio (Need 3D Game Studio for this to work) • Developed for a MMORPG game, but network engine was abstracted out of the game and marketed as an API • Only $149.99 (approx. $150) • Major limitation: Only usable on Windows systems
Different MMP Engines • Quazal (In-Game Multiplayer Engine, Net-Z, http://www.quazal.com) • Based on duplicated objects: Game objects are duplicated to different stations on a network • When a change is made to master node, it gets “sent” to other nodes
Different MMP Engines • Massiv (http://massiv.objectweb.org) • Open-source engine built on top of C++ and standard libraries • Uses client/server architecture • Extended object model • Started as a school project, no new work is being done on the engine (possible thesis topic for someone, maybe………..)
Different MMP Engines • Internet Communications Engine (ICE, Zero-C, http://www.zeroc.com/ice.html) • Object-state versioning • Distribution of software updates • Efficiency • Multilanguage support (C, C++, C#, Java, Python, Visual Basic, PHP)
Different MMP Engines • RakNet (http://www.rakkarsoft.com) • Uses UDP connectivity • Rapid development of online games and adding multiplayer capabilities for single-player games • Open-source but has a commercial license option
Different MMP Engines • ReplicaNet (http://www.replicanet.com) • C++ based • Allows developer to focus on game logic without resorting to network programming • Shared objects • Has a freeware version (no source code), but a license costs around US$5000 (Some of the network APIs I researched for this presentation requires a game development shop to shell out at least US$100,000 or more)
Different MMP Engines • Zona (http://www.zona.net) • Commercial MMP Engine • Complete solution:
Different MMP Engines • Zona (cont) • Three frameworks: • Zona Application Framework (SDK) • Zona Gaming Framework • Zona Billing Framework
Languages for MMP Development • C • C++ • C# • Visual Basic.NET • Delphi • Java (Java 3D) • Python (PyGame)
Improving game development with Grids • Considering the needs of these individuals: • Developers: • Performance • Flexibility • Use tools (C, C++, Python, Lua, etc.) • Need to use rendering engines • Write games for PlayStation2, Xbox, etc.
Improving game development with Grids • Considering the needs of these individuals: • Publishers • Finance games • Make money
Improving game development with Grids • Considering the needs of these individuals: • Service provider • ISPs • Decentralization
The “Butterfly” Grid • Standards-based • Chapter 13 in The Grid 2 by Foster and Kesselman • Provided the following at the time: • High-performance • Scalability • Reliability
The “Butterfly” Grid: Architecture • Builds on the core grid services provided by Globus • Major Tiers: • Object Management System (OMS) • Network Protocol Stack (NPS) • Gateway servers • Daemon controllers • Game servers • Datastore • Grid Services (Think: Assignment 2)
The “Butterfly” Grid: Globus Services • Staging and maintenance of a code base in distributed environment • Scheduling, monitoring, termination of application process instances in a distributed environment • Monitoring framework for real-time instrumentation
The “Butterfly” Grid: Specification • Virtual organizations are defined by a game configuration specification (GCS), a XML-based spec structure with these specific tags: • <GRID>: Base node • <MACHINE>: Gives names and addresses to physical machines on the grid • <ACCOUNT>: Authentication record for players • <SOFTWARE>: Defines a version of a game
The “Butterfly” Grid: Specification • GCS tags (cont.): • <WORLD>: A world is a game • <INSTANCE>: Physical instantiation of game with these tags within <INSTANCE>: • <NETWORK>: Multicast information • <SERVER>: Specifies running server process • <CONTENT>: Scripts, datafiles, executables, shared libraries • <GATEWAY>: Instantiates gateway process on a physical machine • <DATASTORE>: How the instantiated game will connect to a data store (identifiers, user names, passwords)
The “Butterfly” Grid: Deployment as a GRAM Job • Had to be mapped to Globus Toolkit • Parse GCS to produce three types of output: • Game configuration file • Resource spec language (RSL) files • Production of glue scripts: executes RSL on machines and capture job submission ID
The “Butterfly” Grid: Current Status • Butterfly.net has changed its name to Emergent Game Technologies • Merged with NDL • Formal announcement of product line: March 2006 • They have changed their software to create a new server engine • Have they left grid computing?............
Resources • International Game Developers Association (IGDA): http://www.igda.org • Books: • Introduction to Game Development edited by Steve Rabin (Charles River Media) • Massively Multiplayer Game Development 2 edited by Thor Alexander • General Game Development • Gamasutra: http://www.gamasutra.com • GameDev: http://www.gamedev.net • DevMaster: http://www.devmaster.net • GameDeveloper Magazine: http://www.gdmag.com
Conclusion • Massively multiplayer games are increasing in popularity • Many different architectures and engines to fit these architectures are available • Butterfly grid was one solution to scale for MMOGs