Presentation is loading. Please wait.

Presentation is loading. Please wait.

An Architecture for a Massively Multiplayer Online Role Playing Game Engine.

Similar presentations


Presentation on theme: "An Architecture for a Massively Multiplayer Online Role Playing Game Engine."— Presentation transcript:

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


Download ppt "An Architecture for a Massively Multiplayer Online Role Playing Game Engine."

Similar presentations


Ads by Google