Middle East Technical University: Massively Multiplayer Online Role Playing Game Project Virtual Turkey
Middle East Technical University: Massively Multiplayer Online Role Playing Game Project Virtual Turkey
Middle East Technical University: Massively Multiplayer Online Role Playing Game Project Virtual Turkey
Ceng 491
Software Requirements Specifications
Massively Multiplayer Online Role Playing Game Project
Virtual Turkey
MECAC
Cinar Kilcioglu
Mert Degirmenci
Umit Cavus Buyuksahin
December 5, 2010
Contents
1 Introduction 1
1.1 Problem Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.4 User and Literature Survey . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.5 Definitions and Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.6 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.7 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Overall Description 4
2.1 Product Perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Product Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.1 User Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.2 Administrator Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 Specific Requirements 10
3.1 Interface Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.1 User Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.2 Hardware Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.3 Software Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1.4 Communications Interfaces . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2 Functional Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.1 Sign-Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.2 Play . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2.3 Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2.4 Manage Accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.5 Monitor Network Traffic . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.6 Manage NPCs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3 Non-Functional Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3.1 Performance Requirements . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3.2 Design Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
6 Planning 26
6.1 Team Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.2 Estimation (Basic Schedule) . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.3 Process Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
7 Conclusion 28
List of Figures
1 Virtual Turkey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Sample Quest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 General View of the System . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4 Client Software Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
5 Server Software Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6 Sign-Up Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
7 Play Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
8 Sign-Up Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
9 Manage Accounts Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
10 Sign-Up Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
11 Manage NPCs Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
12 The Complete Data Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
13 Quest Data Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
14 NPC Data Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
15 Character Data Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
16 Vehicle Data Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
17 Account Data Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
18 Treasure Data Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
19 Entity Relationship Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
20 State Transition Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
21 Game Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
22 The Spiral Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
23 Gantt Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1 Introduction
This document contains the software requirements for “Virtual Turkey” which is a massively
multiplayer online role playing game (MMORPG). The approach used in this specification
is adapted from IEEE recommended practices [1]. This document also abides the standards
presented [2]. MECAC, the project group, assumes full responsibility of the requirements
presented in this document.
1.2 Purpose
This software requirements specification intends to provide complete description of all re-
quirements of “Virtual Turkey”. The requirements suggested in this document will serve as
a guideline throughout the development process of this project. The end-product will be
tested against the requirements to ensure the quality of the software produced.
1.3 Scope
This document addresses the functionality, external interfaces, performance, attributes, and
design constraints of the MMORPG to be developed. However, the requirements presented
in this document does not impose any design or implementation details.
1.6 References
[1] IEEE, IEEE Std 830-1998 IEEE Recommended Practice for Software Requirements Spec-
ifications. IEEE Computer Society.
1.7 Overview
The report contains seven sections. First section introduces the project “Virtual Turkey”.
In the second section, the game is explained with a high-level perspective. The details of the
project is started to be given in section 3. This section explains the software requirements to
a degree that enables designers to design this system, and testers to test it. Domain for the
software and behavioral model is described in section 4 and 5, respectively. Finally, planning
of the project is presented and the report is concluded.
Diagram:
Brief Description: This use case describes how the user interacts with the client
software to create an account on the server database.
Diagram:
Brief Description: This use case describes how user logs-in to the system, plays the
game and logs-out.
Diagram:
Diagram:
Brief Description: This use case describes how administrator manages accounts of
users.
Diagram:
Brief Description: This use case explains how the administrator monitors the net-
work traffic.
Diagram:
Brief Description: This use case explains how the administrator manages non-
playing characters.
3 Specific Requirements
This section describes all the software requirements to a level of detail sufficient to enable
designers to design and testers to test a system which satisfies this specification.
There are two user interfaces of “Virtual Turkey”. These are the client interface for the
players and the administrator interface for managing the MMORPG. Following sections
describe the logical characteristics of each interface.
Client User Interface: Clients will interact with the system by means of a personal
computer. After deployment of the client software to users personal computer, the user will
be able to connect the persistent world of “Virtual Turkey” and interact with other clients.
The users of the game will also be able to sign-up through the client software.
Administrator Interface: The administrator user interface will enable interaction be-
tween the administrator of the game and the software. The graphical user interface will
allow the administrator to monitor the network traffic, online players, malfunctions within
the game logic and the client software.
The client and the server components of the software has different hardware interfaces.
Following paragraphs describe the hardware interfaces for the two components.
Server Hardware Interface: The server-side software will be interfacing with an x86
processor to leverage network and database tasks. For the clients to have seamless experience
with MMORPG the software should interface at-least 15000 RPM disk drive and internet
connection speed of 100 Mbit/second or more.
Both the client and the server component of MMORPG will be an application for Windows
NT family of operating systems. As both components will be developed with C# program-
ming language, Microsoft’s .NET 4.0 software framework will be needed. XNA 4.0 runtime
libraries will be used for client-side graphics computation. The physics engine of client will
be leveraged by JigLibx which is specifically designed for XNA. For network communication,
the client and the server software will depend on LidGren library.
The interaction between server and client will be maintained on TCP channel. All other
communications will be carried out on shared memory. The components within the server
will use MPI to communicate over shared memory.
Description: This function of the system specifies how user signs-up to MMORPG.
Functional requirements:
1. REQ-1: Server should not accept the same user-id twice when signing-up users.
2. REQ-2: Server should not accept the passwords shorter than 6 characters when signing-
up users.
Description: This function specifies the process of user logging-in, playing the game, and
the signing out process. It does not however, specify any content within the game logic, nor
does it specify the graphics within the game.
Functional requirements:
1. REQ-3: Server should check the user-id and password entered by the user.
2. REQ-4: Server should log-out the user automatically which has disconnected from the
network.
Description: This function explains how the user updates his/her account information.
Functional requirements:
1. REQ-5: Server should check the new user-id entered by the user in case it already
exists.
2. REQ-6: Server should check the new password in case it is shorter than 6 characters.
3. REQ-7: Server should check the new e-mail to verify that its a valid e-mail address.
Description: This function describes how administrator manages accounts of the users.
Functional requirements:
1. REQ-8: Server GUI should not accept two changes at a time to prevent malicious
action of the administrator.
Description: This function of the server software specifies how the administrator interacts
with the system to monitor the network traffic.
1. REQ-9: Server GUI should show the number of online players in the monitor panel.
2. REQ-10: Server GUI should show the communication delays for each user currently
logged into the system.
Description: This function specifies how the administrator manages non-player charac-
ters.
Functional requirements:
In order for “Virtual Turkey” to be massively multiplayer, the server should support 1000
users concurrently. The delay of communication between server and the user should not
exceed 0.1 second. The database transaction should not consume more than 10
In order for the MMORPG to be maintainable, the GUI of the server component should
be robust for the administrator to update information or monitor the network traffic. The
administrator should be able to log-on to the server within 5 seconds even when the server
supports a thousand players online. When the administrator clicks “Manage Accounts” or
“Manage NPCs” buttons, the GUI should show the requested information within 10 seconds
and commit the changes within a minute. Monitoring network traffic should not increase
the overhead on server-side as such information can directly be computed on-the-fly. When
Security: The communication between the server and the client component of MMORPG
should be encrypted with RSA algorithm. Server should also check the cheating case with
offloading major physics calculations to server-side. In order to prevent abuse of the server
component, software on the server of MMORPG should block the recurring requests from
the same IP address. Server should log common proxy addresses as well to check if the client
is performing DoS attack.
1. Maintainability: The modification of the source code should be disabled. The exten-
sions should be applicable directly without modification to the back end. The patching
service should be regarded as a different component in case extensions would be of-
floaded to a different server.
2. Portability: Both the client and the server component of the software should be
portable. The target hardware platform for client component is unknown. Only re-
quirement for the client software to be deployed is the operating system that belongs to
Windows NT family. The server side of MMORPG should be independent of specific
hardware or software configuration.
3. Scalability: Most important software system attribute of “Virtual Turkey” is its scala-
bility. Deploying additional servers and dividing the persistent world should not require
additional extension on the client software.
In this section a brief description of each data object is given. For each data object, function
and semantics associated with it are summarized. This section also describes major attributes
of data objects.
Quest This data object represents quest given by non-player characters. Database needs
to store the identifier of the quest which is only major attribute of it.
NPC The NPC data object - as its name suggests - represents a single non-player character
in “Virtual Turkey” MMORPG. Besides its unique identifier, it has three major attributes
namely position, owner, and type.
Character This data object represents the character of the user associated with the ac-
count. The user character may have associated Vehicle or Treasure data objects.
Account This data object stores the account information of players. The account data
object does not store the character information. However, it references a character data
object. This approach enables players to have multiple characters in MMORPG.
Treasure This data object represents the treasure items that the characters poses. The
treasure data objects have associated value and position in the virtual world. This data
objects are intended to be traded for items by characters.
4.1.2 Relationships
This section describes the relationship between the data objects described in the previous
section.
NPC - Quest: Each NPC may be associated with one or more quests. Those quests
are to be completed by characters. However, a quest may not be associated with multiple
NPCs.
NPC - Item: Each non-playing character may own one or more items. However, an
item can not be owned by multiple non-playing characters. NPCs are able to trade the items
with playing characters.
Character - Item: Each character may own one or more items. However, an item can
not be owned by multiple characters. Characters can trade the items and treasures with
other characters or NPCs.
Character - NPC: Each non-playing character is owned by only one character. An
NPC without an owner or a character without an NPC can exist.
Character - Vehicle: Each character can only own one vehicle in the MMORPG. A
vehicle can not be associated with multiple characters.
Character - Account: Each character can be associated with at most one account.
However an account owner may own multiple characters.
This section describes a complete data model merging data object descriptions with rela-
tionships explained in previous sections. Figure 19 shows the entity relationship diagram of
the data model which provides a conceptual representation of data. Major data objects are
NPC, quest, item, treasure, character, account, and vehicle. The relationships between data
objects provide both semantical and relational information.
1
http://en.wikipedia.org/wiki/Spiral model