Download presentation
Presentation is loading. Please wait.
Published byAdam Tyler Modified over 9 years ago
1
An Architecture for a Massively Multiplayer Online Role Playing Game Engine
2
Why Study Games? Draws on all parts of Computer Science - Algorithmic Analysis- Software Engineering - Graphics- Database Design - Artificial Intelligence- Networking - Security- Modeling - Human Computer Interaction Demanding application Lessons learned apply to real world productive applications
3
Architecture vs. Implementation Starting at design level yields better implementation Good software practice
4
The Outline MMORPG’s Architecture –Paradigms –Patterns Our Architecture (The Dirty Details) Problems and Solutions
5
MMORPG Massively Multiplayer Online Role Playing Game: Hundreds or more players connected via the Internet where each player takes on a role and improves his or her character
6
MMORPG (Cont.) Massively Multiplayer - Scalable Online - Networked Role Play - Feature rich application Game - Entertaining and immersive
7
Architecture? Architecture (n): the manner in which the components of a computer or computer system are organized and integrated © 2002 Merriam-Webster Online
8
Paradigms Network Traffic ?? Game Scale X Security X Game Clock X Business Model X Concern Peer to PeerClient/Server
9
Layered Pattern The Layers pattern helps to structure applications that can be decomposed into groups of subtasks in which each group of subtasks is at a particular level of abstraction. Pattern-Oriented Software Architecture - A System of Patterns Buschmann et all; John Wiley and Sons Ltd, Chichester, UK, 1996.
10
Layered Architecture Example Layer 1 Encapsulates similar tasks Layer 2 Layer 3 Layer 1? What's That?
11
Publisher-Subscriber Pattern The Publisher-Subscriber pattern helps keep the state of cooperating components synchronized. To achieve this it enables one way propagation of changes: one publisher notifies any number of subscribers about changes to its state. Pattern-Oriented Software Architecture - A System of Patterns Buschmann et all; John Wiley and Sons Ltd, Chichester, UK, 1996.
12
Publisher-Subscriber Pattern A B C A knows about B. B knows about A. Neither know anything about C. C knows nothing about either A or B.
13
Model-View-Controller Pattern The Model-View-Controller pattern (MVC) divides an interactive application into three components. The model contains the core functionality and data. Views display information to the user. Controllers handle user input. Views and controllers together comprise the user interface. A change-propagation mechanism ensures consistency between the user interface and the model. Pattern-Oriented Software Architecture - A System of Patterns Buschmann et all; John Wiley and Sons Ltd, Chichester, UK, 1996.
14
Model View Controller ViewModelController
15
Blackboard Pattern The Blackboard pattern is useful for problems for which no deterministic solution strategies are known. In Blackboard several specialized subsystems assemble their knowledge to build a possibly partial or approximate solution. Pattern-Oriented Software Architecture - A System of Patterns Buschmann et all; John Wiley and Sons Ltd, Chichester, UK, 1996.
16
Broker Pattern The Broker pattern can be used to structure distributed software systems with decoupled components that interact by remote service invocations. A broker component is responsible for coordinating communication, such as forwarding requests, as well as for transmitting results and exceptions. Pattern-Oriented Software Architecture - A System of Patterns Buschmann et all; John Wiley and Sons Ltd, Chichester, UK, 1996.
17
Client Architecture InputGraphicsViewAILibrary MessengerNetworkDe/Encrypt Mayor Graphics Component CommandChatPhysics Collision Detection Command Component Network Component
18
Client Architecture InputGraphicsViewAILibrary Messenger NetworkDe/Encrypt Mayor Graphics Component CommandChatPhysics Collision Detection Command Component Network Component
19
Client Architecture InputGraphicsViewAILibrary MessengerNetwork De/Encrypt Mayor Graphics Component CommandChatPhysics Collision Detection Command Component Network Component
20
Client Architecture InputGraphicsViewAILibrary Messenger Network De/Encrypt Mayor Graphics Component CommandChatPhysics Collision Detection Command Component Network Component
21
Client Architecture InputGraphicsViewAI Library MessengerNetworkDe/Encrypt Mayor Graphics Component CommandChatPhysics Collision Detection Command Component Network Component
22
Client Architecture InputGraphicsViewAILibrary MessengerNetworkDe/Encrypt Mayor Graphics Component CommandChat PhysicsCollision Detection Command Component Network Component
23
Client Architecture InputGraphicsViewAILibrary MessengerNetworkDe/Encrypt Mayor Graphics Component Command Chat Physics Collision Detection Command Component Network Component
24
Client Architecture InputGraphics View AILibrary MessengerNetworkDe/Encrypt Mayor Graphics Component CommandChatPhysics Collision Detection Command Component Network Component
25
Client Architecture Input Graphics ViewAILibrary MessengerNetworkDe/Encrypt Mayor Graphics Component CommandChatPhysics Collision Detection Command Component Network Component
26
Client Architecture Input GraphicsViewAILibrary MessengerNetworkDe/Encrypt Mayor Graphics Component CommandChatPhysics Collision Detection Command Component Network Component
27
Client Architecture InputGraphicsView AI Library MessengerNetworkDe/Encrypt Mayor Graphics Component CommandChatPhysics Collision Detection Command Component Network Component
28
Governor Server Architecture World DB World Network Component MessengerNetworkDe/Encrypt Authentication User DB Groups AI Controller World Component User Component
29
Server Architecture World DB World Network Component MessengerNetworkDe/Encrypt Authentication User DB Groups AI Controller Governor World Component User Component
30
Server Architecture World DB World Network Component MessengerNetworkDe/Encrypt Authentication User DB Groups AI Controller Governor World Component User Component
31
Server Architecture World DB World Network Component MessengerNetworkDe/Encrypt Authentication User DB Groups AI Controller Governor World Component User Component
32
Server Architecture World DB World Network Component MessengerNetworkDe/Encrypt Authentication User DB Groups AI Controller Governor World Component User Component
33
Server Architecture World DB World Network Component MessengerNetworkDe/Encrypt Authentication User DB Groups AI Controller Governor World Component User Component
34
Publisher-Subscriber Pattern A B C A knows about B. B knows about A. Neither know anything about C. C knows nothing about either A or B.
35
Server Architecture World DB World Network Component MessengerNetworkDe/Encrypt Authentication User DB Groups AI Controller Governor World Component User Component
36
Server Architecture World DB World Network Component MessengerNetworkDe/Encrypt Authentication User DB Groups AI Controller Governor World Component User Component
37
Layered Architecture Client Application MessengerEn/DecryptNetwork Server Application MessengerEn/DecryptNetwork
38
The Six Problems Client side performance Network traffic Scalability Load balancing Secure game play Maintainability
39
Server-side Performance World DB World Network Component MessengerNetworkDe/Encrypt Authentication User DB Groups AI Controller Governor World Component User Component
40
Server-side Performance InputGraphicsViewAILibrary MessengerNetworkDe/Encrypt Mayor Graphics Component CommandChat PhysicsCollision Detection Command Component Network Component
41
Client-side Performance InputGraphicsViewAILibrary MessengerNetworkDe/Encrypt Mayor Graphics Component CommandChatPhysics Collision Detection Command Component Network Component
42
Client-side Performance InputGraphicsViewAI Library MessengerNetworkDe/Encrypt Mayor Graphics Component CommandChatPhysics Collision Detection Command Component Network Component
43
The Six Problems Client side performance Network traffic Scalability Load balancing Secure game play Maintainability
44
Network Traffic InputGraphicsViewAILibrary MessengerNetworkDe/Encrypt Mayor Graphics Component CommandChatPhysics Collision Detection Command Component Network Component
45
The Six Problems Client side performance Network traffic Scalability Load balancing Secure game play Maintainability
46
Scalability and Load Balancing World DB World Network Component MessengerNetworkDe/Encrypt Authentication User DB Groups AI Controller Governor World Component User Component
47
Governor Scalability and Load Balancing World DB World Network Component MessengerNetworkDe/Encrypt Authentication User DB Groups AI Controller World Component User Component
48
The Six Problems Client side performance Network traffic Scalability Load balancing Secure game play Maintainability
49
Secure Gameplay World DB World Network Component MessengerNetworkDe/Encrypt Authentication User DB Groups AI Controller Governor World Component User Component
50
6. Maintainability Modularized Layered Well-known Architectural Patterns Used
51
6. Maintainability Modularized Layered Well-known Architectural Patterns Used
52
6. Maintainability Modularized Layered Well-known Architectural Patterns Used
53
© 2002 Sony Online Entertainment
54
Six Problems Addressed Client Side Performance Minimizing Network Traffic Scalable Opportunities for Load Balancing Security Maintainability
55
Client Architecture InputGraphicsViewAILibrary MessengerNetworkDe/Encrypt Mayor Graphics Component CommandChatPhysics Collision Detection Command Component Network Component
56
© 2002 Blizzard Software Worlds of Warcraft
57
Example : Dark Age of Camelot © 2002 Mythic Entertainment
58
Example: Worlds of Warcraft © 2002 Blizzard Software
59
Client Architecture
60
InputGraphicsViewAILibrary MessengerNetworkDe/Encrypt Mayor Graphics Component CommandChatPhysics Collision Detection Command Component Network Component
61
Server Architecture World DB World Network Component MessengerNetworkDe/Encrypt Authentication User DB Groups AI Controller Governor World Component User Component
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.