1. Problem Statement
With the arrival of the global broadband network infrastructure, new game concepts are possible and resulted in the creation of a wealth of Multiplayer Online Games (MOGs), for example Quake, CounterStrike, Ultima Online, EverQuest, or WarCraft. These games share common concepts:
But after the broadcasting infrastructure of radio and television was supplemented
by two-way network connections, another use of the technology was enabled: peer-to-peer
(P2P) networks. Thus far they are mainly used for one-on-one messaging or simple
file exchange.
The newly available FRAG framework manages peer-to-peer communication,
distributed object synchronization and message transport for object-based 2D
or 3D game worlds. FRAG is part of the GlobalSE project ARENA
providing an infrastructure for tournaments in mobile environments.
You are asked to develop a peer-to-peer multiplayer online game called SWORD on top of the FRAG framework. Your mission is to demonstrate a functional prototype by the end of the project, which is based on the technologies and infrastructure made available to you. You are free to develop your own rules and game environment, but to keep this manageable, we suggest the story for this game to be set in a fantasy world where a large number of players need to UT:Accomplish missions.
a:Susan finds five of her fellow students with ``available'' status on the network, while she is checking her emails after her lunch break. She invites them to a chat room and asks them if they would be interested in playing a quick game of SWORD until the next lecture begins. a:Michael, a:John, and a:Lyta agree, a:Stephen and Talia still have to finish up something and suggest for the others to go ahead, they would join in later.
a:Susan fires up SWORD and it asks if she wants to play the game in stop-watch mode and set a deadline for the mission. She acknowledges, restricts the game to participants on her buddy list and enters the game. It loads her magician character from the game she played last week and after a short orientation she sends a message to a:John ``Where did you enter the game?'' He replies ``at the graveyard''. She asks him to meet her at the waterfall.
A few special world objects, such as the graveyard or the waterfall have fixed coordinates in the game world, most of the game world is generated from fractal algorithms, though, making it a challenge for both a:Susan and a:John to reach the waterfall. On the way the game calculates the details of the game world from the algorithms as the players UC:Move through the game. The calculations are exchanged between the players.
When a:Stephen enters SWORD, it automatically detects the game already in progress on the LAN and allows him to join.
As a:Susan is on a:Stephen's buddy list, he sees that she is already participating in a game. He is connected and receives enough data to display his immediate surroundings. When he UC:Moves towards areas of the map that have not yet been rendered, his game offers the information of the newly generated part of the world. If the parts have already been calculated by other players before him, the game gets the data from another player.
a:Susan's deadline is approaching while she is fighting a Dragon, so she tells a:Lyta that she will drop the magic sword by the village entrance and wishes her good luck with slaying the Dragon. She leaves the game.
All of a:Susan's game data has been broadcast to the remaining players, ranked by vicinity.
The next day, a:Susan meets three of her friends on her ``U-Bahn'' ride to campus and they wait at the ``Frttmaning'' stop. They decide to pick up the game they dropped the day before, open up SWORD and play until the train arrives at campus.
The Rendezvous architecture offers zero-configuration network service discovery and usage, thereby eliminating the need to develop a proprietary game detection/announcement protocol.
The structure of the system is shown in the figure above. The services that are offered by the individual subsystems are:
The project is organized in teams, which all have specific roles in the project. These roles are:
The provided software packages on these workstations are
2. Requirements | ||||||||||||||||||||||||||||||||||||||||||||||||||
This section describes the user needs that the system has to support in terms of actors, user tasks, and domain constraints. Actors are entities that interact with the system. User tasks are activities initiated by actors that are supported by the system. Domain constraints are facts that are the system must take into account. | ||||||||||||||||||||||||||||||||||||||||||||||||||
2.1. Actors | ||||||||||||||||||||||||||||||||||||||||||||||||||
2.1.1. Artificial Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
An A:Artificial Player controls an Adventurer. The A:Artificial Player interacts with the game over the same APIs. It's derived from the superclass A:Player and is controlled by algorithm. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiated User Tasks: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Hunt for adventurers |
||||||||||||||||||||||||||||||||||||||||||||||||||
Initiated Use Cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No use cases specified. |
||||||||||||||||||||||||||||||||||||||||||||||||||
2.1.2. Human Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
The A:Player is a person who is able to play one or more games. This is the actual human sitting in front of the game. He or she cannot directly interact with anything in the game world, nor can he or she be manipulated directly by software (yet ;^) | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiated User Tasks: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Accomplish mission Communicate with other players |
||||||||||||||||||||||||||||||||||||||||||||||||||
Initiated Use Cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Hand over Game Join game Play SWORD Resume Game |
||||||||||||||||||||||||||||||||||||||||||||||||||
Participating Use Cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Hand over Game Move |
||||||||||||||||||||||||||||||||||||||||||||||||||
Instances: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Gina John Lyta Michael Peter Stephen Susan |
||||||||||||||||||||||||||||||||||||||||||||||||||
2.1.3. Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Superclass for the A:Human Player and the A:Artificial Player, with the sense to "syncronize" the Control of Adventurers | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiated User Tasks: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Control Adventurer |
||||||||||||||||||||||||||||||||||||||||||||||||||
Participating User Tasks: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Accomplish mission Communicate with other players |
||||||||||||||||||||||||||||||||||||||||||||||||||
Initiated Use Cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Chat with players Hand over Properties Talk with Players through a headset |
||||||||||||||||||||||||||||||||||||||||||||||||||
Participating Use Cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Chat with players Hand over Properties Talk with Players through a headset |
||||||||||||||||||||||||||||||||||||||||||||||||||
2.2. User Tasks | ||||||||||||||||||||||||||||||||||||||||||||||||||
2.2.1. Accomplish mission | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Human Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Participating Actors: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Player |
||||||||||||||||||||||||||||||||||||||||||||||||||
Task Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
The user task consists of all actions which can
be done to start, end and reach the objective of completing the mission. The A:Player controls his actor around the map to explore the world. He can Open doors to enter Buildings and Eat food to regain strength. He can PickUp Items and perform various actions with them, which are UC:Drop item, Explore item and UC:Use item with. He can also Look At item. |
||||||||||||||||||||||||||||||||||||||||||||||||||
Realized in Use Cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Hand over Game Hand over Properties Join game Play SWORD Resume Game |
||||||||||||||||||||||||||||||||||||||||||||||||||
2.2.2. Communicate with other players | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Human Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Participating Actors: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Player |
||||||||||||||||||||||||||||||||||||||||||||||||||
Task Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
This user task describes the communication between the different A:Players during the game. The communication can take different forms and can be in broadcast mode (to all other A:Players) as well as a one-to-one form. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Realized in Use Cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Chat with players Talk with Players through a headset |
||||||||||||||||||||||||||||||||||||||||||||||||||
2.2.3. Control Adventurer | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Task Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
The Adventurer is controlled by this Task. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Realized in Use Cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Drop item Look at item Move Use item with |
||||||||||||||||||||||||||||||||||||||||||||||||||
2.2.4. Hunt for adventurers | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Artificial Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Task Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
An Adventurer is running around, and Attacks all in game characters in sight, with task to kill or wound Adventurers, preventing/delaying them from mission completion. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Realized in Use Cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Search adventurer |
||||||||||||||||||||||||||||||||||||||||||||||||||
2.3. Domain Constraints | ||||||||||||||||||||||||||||||||||||||||||||||||||
2.3.1. Broadcast game data | ||||||||||||||||||||||||||||||||||||||||||||||||||
Type: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Domain Constraint | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Calculations of one A:Player are broadcast to other A:Players. | ||||||||||||||||||||||||||||||||||||||||||||||||||
2.3.2. TCP/IP connection or airport | ||||||||||||||||||||||||||||||||||||||||||||||||||
Type: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Domain Constraint | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
there is a tcp/ip or airport needed for playing the game | ||||||||||||||||||||||||||||||||||||||||||||||||||
2.4. Quality Constraints on User Tasks | ||||||||||||||||||||||||||||||||||||||||||||||||||
2.4.1. No interruption on (short) disconnect | ||||||||||||||||||||||||||||||||||||||||||||||||||
Type: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Quality Constraint on User Task | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
In case of a short disconnection, all A:Players are able continue the game without significant interruption, and as soon as the connection becomes available again, the game becomes consistent again. | ||||||||||||||||||||||||||||||||||||||||||||||||||
3. Specification | ||||||||||||||||||||||||||||||||||||||||||||||||||
This section describes the specification of the system in terms of use cases, services, and quality constraints. Use cases describe sequence of interactions between actors and the system. Services are features that the system provides that can be used to realize use cases. Quality constraints are constraints on use cases or services that must be met by the system. | ||||||||||||||||||||||||||||||||||||||||||||||||||
3.1. Use Cases | ||||||||||||||||||||||||||||||||||||||||||||||||||
3.1.1. Chat with players | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Participating Actors: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Player |
||||||||||||||||||||||||||||||||||||||||||||||||||
Realized User Task: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Communicate with other players | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Preconditions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
min. 2 A:Players | ||||||||||||||||||||||||||||||||||||||||||||||||||
Exit conditions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
message sent | ||||||||||||||||||||||||||||||||||||||||||||||||||
Used Services: | ||||||||||||||||||||||||||||||||||||||||||||||||||
detectPeers sendMessage |
||||||||||||||||||||||||||||||||||||||||||||||||||
Scenarios: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Talk to John |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.1.2. Drop item | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No initiating actor specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Participating Actors: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No participating actors specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Realized User Task: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Control Adventurer | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Preconditions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
The inventory is empty. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Exit conditions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
The item has been dropped on the ground. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Used Services: | ||||||||||||||||||||||||||||||||||||||||||||||||||
dropItem getProperties |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.1.3. Hand over Game | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Human Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Participating Actors: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Human Player |
||||||||||||||||||||||||||||||||||||||||||||||||||
Realized User Task: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Accomplish mission | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Used Services: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No services specified. |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.1.4. Hand over Properties | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Participating Actors: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Player |
||||||||||||||||||||||||||||||||||||||||||||||||||
Realized User Task: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Accomplish mission | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Preconditions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
at least one item | ||||||||||||||||||||||||||||||||||||||||||||||||||
Exit conditions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
items handed over | ||||||||||||||||||||||||||||||||||||||||||||||||||
Used Services: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No services specified. |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.1.5. Join game | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Human Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Participating Actors: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No participating actors specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Realized User Task: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Accomplish mission | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Exceptions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No game created. The A:Player cannot join a game, because no such game exists. He is force to create a new game. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Rules: | ||||||||||||||||||||||||||||||||||||||||||||||||||
The A:Player can join the game only if he is authorized to enter the game. He can join the game if he is in the buddy list of one participant of the game | ||||||||||||||||||||||||||||||||||||||||||||||||||
Preconditions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
A:Player started Sword. He has chosen a nick name. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Exit conditions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
mission loaded and connected | ||||||||||||||||||||||||||||||||||||||||||||||||||
Used Services: | ||||||||||||||||||||||||||||||||||||||||||||||||||
connectPeer detectGame |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.1.6. Look at item | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No initiating actor specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Participating Actors: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No participating actors specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Realized User Task: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Control Adventurer | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Exceptions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
[no_possible_item] nothing happens [too_far] nothing happens |
||||||||||||||||||||||||||||||||||||||||||||||||||
Used Services: | ||||||||||||||||||||||||||||||||||||||||||||||||||
distanceToObjects lookAtItem |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.1.7. Move | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No initiating actor specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Participating Actors: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Human Player |
||||||||||||||||||||||||||||||||||||||||||||||||||
Realized User Task: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Control Adventurer | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Exceptions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
[movement not possible] The Adventurer simply remains on its current position when the obstacle lies straight next ti it. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Rules: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Check each time whether movement is possible and if not throw exception, so that the A:Human Player selects a new position to be moved to. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Preconditions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
An Adventurer to UC:Move, new position coordiantes, sufficient space for the movement. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Exit conditions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
The movement sequence is interrupted by the A:Human Player. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Quality Constraints: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Exeptions defined |
||||||||||||||||||||||||||||||||||||||||||||||||||
Used Services: | ||||||||||||||||||||||||||||||||||||||||||||||||||
getProperties move setProperties |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.1.8. Play SWORD | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Human Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Participating Actors: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No participating actors specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Realized User Task: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Accomplish mission | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Exceptions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
[invalid format]: 1. system displays message box. 2. The A:Player gets a second try. [no_saved_world] message: not possible |
||||||||||||||||||||||||||||||||||||||||||||||||||
Preconditions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
The A:Player has installed SWORD on her/his computer | ||||||||||||||||||||||||||||||||||||||||||||||||||
Used Services: | ||||||||||||||||||||||||||||||||||||||||||||||||||
createNewGame detectGame detectSavedWorld loadCharacter saveCharacter saveWorld setGameMode setMission setRestrictions |
||||||||||||||||||||||||||||||||||||||||||||||||||
Scenarios: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiate a SWORD session Quest for the golden armor Rescue of Angelina |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.1.9. Resume Game | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Human Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Participating Actors: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No participating actors specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Realized User Task: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Accomplish mission | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Used Services: | ||||||||||||||||||||||||||||||||||||||||||||||||||
loadWorld |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.1.10. Search adventurer | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No initiating actor specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Participating Actors: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No participating actors specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Realized User Task: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Hunt for adventurers | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Exit conditions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Adventurer Runs away and is out of the visual range | ||||||||||||||||||||||||||||||||||||||||||||||||||
Used Services: | ||||||||||||||||||||||||||||||||||||||||||||||||||
distanceToObjects |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.1.11. Talk with Players through a headset | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Participating Actors: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Player |
||||||||||||||||||||||||||||||||||||||||||||||||||
Realized User Task: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Communicate with other players | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Exceptions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
[no_connection] there is no connection because of low bandwith | ||||||||||||||||||||||||||||||||||||||||||||||||||
Preconditions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
minimum 2 A:Players | ||||||||||||||||||||||||||||||||||||||||||||||||||
Exit conditions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
the Communication channel is closed | ||||||||||||||||||||||||||||||||||||||||||||||||||
Used Services: | ||||||||||||||||||||||||||||||||||||||||||||||||||
communicationChannel detectPeers |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.1.12. Use item with | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No initiating actor specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Participating Actors: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No participating actors specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Realized User Task: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Control Adventurer | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Rules: | ||||||||||||||||||||||||||||||||||||||||||||||||||
There are curtain rules wich Item should be used with each other. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Preconditions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
One of the Items is in the backpack of the A:Player. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Exit conditions: | ||||||||||||||||||||||||||||||||||||||||||||||||||
One item is deleted or at least one item has changed its status. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Used Services: | ||||||||||||||||||||||||||||||||||||||||||||||||||
distanceToObjects getProperties itemSuitsObject useItemWith |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2. Services | ||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.1. communicationChannel | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
the system "connects" the peers and offers a Communication channel the A:Players are able to talk with | ||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
peers to connect, speech | ||||||||||||||||||||||||||||||||||||||||||||||||||
Outputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Communication channel, speech | ||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Talk with Players through a
headset |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.2. connectPeer | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
If the A:Player chooses to join an existing game, his computer has to connect to all computers invovled in the game, to check if the A:Player is allowed to participate, and to integrate itself in the game. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
identifier of the game | ||||||||||||||||||||||||||||||||||||||||||||||||||
Outputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
information if connecting was successful | ||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Join game |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.3. createNewGame | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Creates a new game instance with a given, network-unique identifier (name) | ||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
The identifier of the game to be created | ||||||||||||||||||||||||||||||||||||||||||||||||||
Outputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
information if creation of the game was successful | ||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Play SWORD |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.4. detectGame | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
The A:Player can browse all running games on the local network. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Outputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
list of running games | ||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Join game Play SWORD |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.5. detectPeers | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
all A:Players participating in this game are detected | ||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
network component | ||||||||||||||||||||||||||||||||||||||||||||||||||
Outputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
participating A:Players | ||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Chat with players Talk with Players through a headset |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.6. detectSavedWorld | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
gets a list of all saved games, this A:Player was in | ||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
A:Player name (computer id) | ||||||||||||||||||||||||||||||||||||||||||||||||||
Outputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
list of saved games | ||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Play SWORD |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.7. distanceToObjects | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
When a actor discovers an object then he must stand in front of the object on a specified distance to do something with it. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
distance in meters or in dots to the object | ||||||||||||||||||||||||||||||||||||||||||||||||||
Outputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
if the object is reachable for the actor. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Quality Constraints: | ||||||||||||||||||||||||||||||||||||||||||||||||||
distance of objects to use |
||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Look at item Search adventurer Use item with |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.8. dropItem | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Removes item from character's (Adventurer) equipment pool (backpack). Adds item to map's container, and assigns it position on the map. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Data about which item is to be dealt with. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Outputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Item is no more in backpack, but assigned a position. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Drop item |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.9. getProperties | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Provides information about an actor or an object | ||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Actor/Object Identification | ||||||||||||||||||||||||||||||||||||||||||||||||||
Outputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Actor/Object Properties; For Actors: Life status, magic status etc For Objects: Any useful information, describing the condition/properties of the object |
||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Drop item Move Use item with |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.10. itemSuitsObject | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
The system measures weather the two Items that are used together suit each other. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Two Items | ||||||||||||||||||||||||||||||||||||||||||||||||||
Outputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Message | ||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Use item with |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.11. loadCharacter | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
a list of saved Characters, this A:Player saved, is displayed | ||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
A:Player id | ||||||||||||||||||||||||||||||||||||||||||||||||||
Outputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
list of saved characters | ||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Hand over Game Play SWORD |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.12. loadWorld | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Load a saved (resumed) game. The status of the game as of the time it was saved is recreated. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
identifier of the game (name, corresponding to the file) | ||||||||||||||||||||||||||||||||||||||||||||||||||
Outputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
the data of the saved game | ||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Resume Game |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.13. lookAtItem | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
from a certain item are the properties displayed | ||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
the item | ||||||||||||||||||||||||||||||||||||||||||||||||||
Outputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
certain important properties of item | ||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Look at item |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.14. move | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
This system service supports the navigation of
the Adventurer in the game world. The A:Human
Player can choose the point/position, to which he/she wants to UC:Move
his/her Adventurer. This could happen for example by clicking once with
the mouse (or using keyboard's up/down/left/right keys) on the new position
on the map or anywhere in the nearby visible environment. The system computes
the new coordinates of the Adventurer, displays it on the new position (including
the animated process of movement) and updates the coresponding [position]
property of the Adventurer. Optional, the A:Human
Player can UC:Move
his Adventurer in faster mode (i.e. Run) simlpy by pressing a specific button,
holding the joystick longer forwards etc. Should any hindrances lie on the path between the old and the new position, the Adventurer is moved only to the first one. |
||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
New position coordinates, to which the A:Human Player wants to UC:Move his/her Adventurer. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Outputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Animation of the movement of the Adventurer towards
the desired position presented to the A:Human
Player's view; The Adventurer standing at the desired position. |
||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Move |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.15. saveCharacter | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
The properties, invertory, lifestatus of the Character are saved | ||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Character | ||||||||||||||||||||||||||||||||||||||||||||||||||
Outputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
saved character data | ||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Hand over Game Play SWORD |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.16. saveWorld | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
After exiting the A:Player is asked to save the game. If he wants to save the game, it is being saved on the computer. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Shot of the game. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Outputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
File in the system. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Play SWORD |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.17. sendMessage | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
A A:Player can Send Messages to other A:Players in the game. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
The message to be sent | ||||||||||||||||||||||||||||||||||||||||||||||||||
Quality Constraints: | ||||||||||||||||||||||||||||||||||||||||||||||||||
timely message delivery |
||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Chat with players |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.18. setGameMode | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
The A:Player can choose between differnt game modes: stop-watch mode or no time limit. And deathmatch or cooperative mode. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
game mode, and if needed deadline | ||||||||||||||||||||||||||||||||||||||||||||||||||
Outputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
mode set | ||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Play SWORD |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.19. setMission | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
the A:Player selects one mission | ||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
selected mission | ||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Play SWORD |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.20. setProperties | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
To change the status of an actor, or the status of an object | ||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Character/Object ID What to change |
||||||||||||||||||||||||||||||||||||||||||||||||||
Outputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Updated actor/object status | ||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Move |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.21. setRestrictions | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
restrictions are displayed: -buddy list -persons to select -all persons, who likes to play The choice of the A:Player is noticed |
||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
the names of A:Players, who are allowed to play in this game | ||||||||||||||||||||||||||||||||||||||||||||||||||
Outputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
names to the network component | ||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Play SWORD |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.2.22. useItemWith | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
This system service is used to combine two item
objects. There are predefined rules wich objects should be able to merge
to a new one or to create new event(s) in the game. If the items are not
related, a message is being send to the A:Player. If there is a rule, how the objects are to be used together, the system changes the status of one of them and deletes the other. If neiter the one nor the other Item is to be deleted a new Event is created. In this case no Item is deleted. |
||||||||||||||||||||||||||||||||||||||||||||||||||
Inputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Two item objects. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Outputs: | ||||||||||||||||||||||||||||||||||||||||||||||||||
New Event. One Item with changed Status |
||||||||||||||||||||||||||||||||||||||||||||||||||
Quality Constraints: | ||||||||||||||||||||||||||||||||||||||||||||||||||
distance of objects to use |
||||||||||||||||||||||||||||||||||||||||||||||||||
Use cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Use item with |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.3. Global Functional Constraints | ||||||||||||||||||||||||||||||||||||||||||||||||||
3.3.1. Broadcast data | ||||||||||||||||||||||||||||||||||||||||||||||||||
Type: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Functional Constraint | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
calculations of one A:Player are broadcast to other A:Players | ||||||||||||||||||||||||||||||||||||||||||||||||||
3.3.2. disconnect reconnect | ||||||||||||||||||||||||||||||||||||||||||||||||||
Type: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Functional Constraint | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
In case of an connection loss all A:Players are able to continiue the game without significant interruption. As soon as the connection becomes available again, the game becomes consistent again. | ||||||||||||||||||||||||||||||||||||||||||||||||||
3.3.3. hand over data | ||||||||||||||||||||||||||||||||||||||||||||||||||
Type: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Functional Constraint | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
a A:Player can UC:Hand over Properties or other data to any other A:Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
3.3.4. hand over game state | ||||||||||||||||||||||||||||||||||||||||||||||||||
Type: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Functional Constraint | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
A:Players can hand over any game state | ||||||||||||||||||||||||||||||||||||||||||||||||||
3.3.5. join game | ||||||||||||||||||||||||||||||||||||||||||||||||||
Type: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Functional Constraint | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
A:Player can join the game already in progress | ||||||||||||||||||||||||||||||||||||||||||||||||||
3.3.6. start sword | ||||||||||||||||||||||||||||||||||||||||||||||||||
Type: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Functional Constraint | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
A:Player can start the game at any time and without network configurations | ||||||||||||||||||||||||||||||||||||||||||||||||||
3.3.7. suspend | ||||||||||||||||||||||||||||||||||||||||||||||||||
Type: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Functional Constraint | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
A:Players can s:Leave the game at any time, preserving their game state localy | ||||||||||||||||||||||||||||||||||||||||||||||||||
3.4. Quality Constraints on Use Cases | ||||||||||||||||||||||||||||||||||||||||||||||||||
3.4.1. Exeptions defined | ||||||||||||||||||||||||||||||||||||||||||||||||||
Type: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Quality Constraint on Use Case | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
UC can be interrupted or aborted by external events. No UC may caught "unprepared". E.g a character gets hit by an arrow while talking to somone. The system has to know that the character must stop talking and start dieing. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Constrained Use Cases: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Move |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.4.2. Precondition check | ||||||||||||||||||||||||||||||||||||||||||||||||||
Type: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Quality Constraint on Use Case | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
For every use case the defined precondition must be fullfilled. Otherwise the A:Player will be notified by a system message | ||||||||||||||||||||||||||||||||||||||||||||||||||
3.4.3. pause | ||||||||||||||||||||||||||||||||||||||||||||||||||
Type: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Quality Constraint on Use Case | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
All Use Cases need to be interuptible and resumable. | ||||||||||||||||||||||||||||||||||||||||||||||||||
3.5. Quality Constraints on Services | ||||||||||||||||||||||||||||||||||||||||||||||||||
3.5.1. distance of objects to use | ||||||||||||||||||||||||||||||||||||||||||||||||||
Type: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Quality Constraint on Service | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
the NFC:distance of objects to use should only be about one meter. At this distance the A:Player can make something with the object. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Constrained Services: | ||||||||||||||||||||||||||||||||||||||||||||||||||
distanceToObjects useItemWith |
||||||||||||||||||||||||||||||||||||||||||||||||||
3.5.2. timely message delivery | ||||||||||||||||||||||||||||||||||||||||||||||||||
Type: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Quality Constraint on Service | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
the message has to arrive in a timeframe of maximum 2 seconds | ||||||||||||||||||||||||||||||||||||||||||||||||||
Constrained Services: | ||||||||||||||||||||||||||||||||||||||||||||||||||
sendMessage |
||||||||||||||||||||||||||||||||||||||||||||||||||
4. Examples | ||||||||||||||||||||||||||||||||||||||||||||||||||
This section provides examples of the system in use in terms of actor instances and scenarios. These serve an illustrative purpose and support the discussion of details related to actors, User tasks, and Use cases described in previous sections. | ||||||||||||||||||||||||||||||||||||||||||||||||||
4.1. Actor Instances | ||||||||||||||||||||||||||||||||||||||||||||||||||
4.1.1. Gina | ||||||||||||||||||||||||||||||||||||||||||||||||||
Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Human Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No description specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
4.1.2. John | ||||||||||||||||||||||||||||||||||||||||||||||||||
Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Human Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No description specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
4.1.3. Lyta | ||||||||||||||||||||||||||||||||||||||||||||||||||
Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Human Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No description specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
4.1.4. Michael | ||||||||||||||||||||||||||||||||||||||||||||||||||
Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Human Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No description specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
4.1.5. Peter | ||||||||||||||||||||||||||||||||||||||||||||||||||
Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Human Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No description specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
4.1.6. Stephen | ||||||||||||||||||||||||||||||||||||||||||||||||||
Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Human Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No description specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
4.1.7. Susan | ||||||||||||||||||||||||||||||||||||||||||||||||||
Actor: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Human Player | ||||||||||||||||||||||||||||||||||||||||||||||||||
Description: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No description specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
4.2. Scenarios | ||||||||||||||||||||||||||||||||||||||||||||||||||
4.2.1. Enter the running game | ||||||||||||||||||||||||||||||||||||||||||||||||||
Instantiated Use Case: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No use case specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor Instance: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No actor instance specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
When a:Stephen
enters Sword, it automatically detects the game (a:Susan,
a:Michael,
a:John,
a:Lyta)
is already in progress on the LAN and allows him to join (UC:Join
game). As a:Susan is on a:Stephen's buddy list, he sees that she is already participating in a game. He is connected (Connect to Game). |
||||||||||||||||||||||||||||||||||||||||||||||||||
4.2.2. Fight for the Map | ||||||||||||||||||||||||||||||||||||||||||||||||||
Instantiated Use Case: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No use case specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor Instance: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No actor instance specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
After entering the game, the Adventurers Desiderata,
MacDuff, Paul the baptist and Conan try to locate the map to the secret
treasure and get to it ASAP. Walking around, each of them tries to stay
away from the others, cause otherwise he/she is risking to get killed before
even making it to the map. Desiderata finds the map first and proceeds towards
the place X, where the treasure lies. Meanwhile the other Adventurers are
informed by the System that Desiderata has the map. Conan happens to be
nearby and Runs to cross her way. He sees her and pick a fight to get the
map. Conan wins, takes the map from the fragged Desiderata and proceeds
towards the place X. Before even making a step he is being attacted by Paul
the baptist, who has been secretly watching the fight between him and Desiderata,
and brutally killed from ambush. Happy, though careless not to watch on
all sides for other enemies, Paul the baptist Walks through the forest.
It is getting darker and darker with each step he is making forwards. At
some time he gets lost and even the Overview map cannot help him (it could
if he had gathered more herbs). Lost and desperate Paul the baptist bumps
repeatedly his head in the nearby tree without even noticing the approaching
Barkeeper MacDuff. MacDuff on his side can finde his way through, because he gathered as many as possible bottles of booze (lying all over the terrain). Cunning as he is, MacDuff offers with UC:Hand over item to Paul the baptist to have "just a sip" from his newest beverage. Obsessed from sorrow Paul the baptist accepts the drink, takes "just a sip" and falls instantly drunk on the ground. With a smirking smile on his face, MacDuff jumps over the snoring Paul the baptist and goes straight to the place X. He finds there the secret treasure, which in this scenario turns to be a new recipe for alcohol-free beer... Game Over |
||||||||||||||||||||||||||||||||||||||||||||||||||
4.2.3. Hunt for treasure | ||||||||||||||||||||||||||||||||||||||||||||||||||
Instantiated Use Case: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No use case specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor Instance: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No actor instance specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Our heros meet a thief in a bar. He tried to
steal one members money, and is captured. To prevent himself from being
ripped apart (we are in rough times), he tells the heros the story of enormios
treasure covered by un unspecified monster. After some "offers he cant
refuse" he is willing to tell the place of the Traesure with Monster. The heror proceed their way to this place. The nearer they come to the treasure, they are bothered by monsters serving the "big chief", highly motivated to protect the treasure and the chief. After killing most monsters, they figure out the big chief is a big Dragon, who can only be satisfied by an virgin princess. So they have to find a virgin princess, feed her to the Dragon. Beeing stuffed, the treasure can be taken without further resistance. And for those, who were not killed, their life turns to never known wealth. |
||||||||||||||||||||||||||||||||||||||||||||||||||
4.2.4. Initiate a SWORD session | ||||||||||||||||||||||||||||||||||||||||||||||||||
Instantiated Use Case: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Play SWORD | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor Instance: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No actor instance specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
a:Susan
finds five of her fellow students with "Available" status on her iChat Buddy
List while she is checking her emails after her lunch break. She invites
them to a iChat Chat Room and asks them if they would be interested in playing
a quick game of Sword until the next lecture begins. a:Michael,
a:John,
and a:Lyta
agree, a:Stephen
and Talia still have to finish up something and suggest for the others to
go ahead, they would join in later. a:Susan fires up Sword (NFC:start sword) and it asks if she wants to play the game in stop-watch mode and set a deadline for the mission (Set game mode). She acknowledges, restricts the game to participants on her Sword Buddy List and enters the game. It loads her magician character from the game she played last week. |
||||||||||||||||||||||||||||||||||||||||||||||||||
4.2.5. Leave the game | ||||||||||||||||||||||||||||||||||||||||||||||||||
Instantiated Use Case: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No use case specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor Instance: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No actor instance specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
a:Susan's
deadline is approaching while she is fighting a Dragon, so she leaves the
game (Exit game). All of a:Susan's game data has been broadcast to the remaining A:Players (a:Michael, a:John, a:Lyta, a:Stephen), ranked by vicinity (NFC:Broadcast game data). |
||||||||||||||||||||||||||||||||||||||||||||||||||
4.2.6. Quest for the golden armor | ||||||||||||||||||||||||||||||||||||||||||||||||||
Instantiated Use Case: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Play SWORD | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor Instance: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No actor instance specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
a:Susan
decides to make a game(NFC:start
sword) so she starts the game, selecting Collect the Golden armor
mission (Choose mission), a:Lyta,
a:Michael
and a:Stephen
decide to join. a:Susan
makes her own team. Then, a:Stephen
creates a new team, and a:Michael
joins it. Then, a:Lyta
joins a:Susans
team several minutes later (UC:Join
game). In the meantime, a:Susan selects Desiderata the Witch as a character, and appears in the battle map near team 1s camp. a:Stephen takes a Conan the Fighter, and is joined by a:Michael as Paul the baptist at the team 2s camp. a:Lyta delayed a bit by a phone call and can join the game only in some minutes. The task is to find the golden armor, which contains golden helmet, chest armor, gloves and a clad. Desiderata has a spell book, woodstock and a knife in the beginning. She UC:Moves (Walk) on and spots Ystarayon, a magic plant in the bush. She picks it up (Gather magic grass) and adds it to her magic equipment, learning the spell curse. But as she picks it up, a Wolf Runs on her (UC:Search adventurer), and starts biting, but she kills the beast (Fight enemy) with several hits with her woodstock. She loses some life points. Then she spots golden helm, and tries to get close to it, but gets a shot from a hidden bow, which makes her life points dangerously low. She Runs on (Run) and spots a magic spring (religious place), where she drinks (Eat) and so can restore some hit points. During the same time, Conan and Paul the baptist UC:Move on. Conan has full leather armor on him, and metal helm, while Paul the baptist has only a leather jacket. Conan carries a knife, short sword and a shield, while Paul the baptist has a pike. They see the river and behind it golden gloves. But the small bridge is raised, and as they approach it, a huge Bear appears (UC:Search adventurer), protecting the bridge. Conan takes out his sword (Arm Self) and a shield, and starts a fight (Fight enemy), while Paul the baptist prays, healing Conan's wounds (Heal character). They manage to kill the monster, and then both Paul the baptist and Conan lower the bridge, and pick up (Pcikup item) an artifact. Paul the baptist starts chat session locally to Conan (UC:Chat with players) and they discuss, how they go on. The artifact is finally picked up by Paul the baptist. In the meantime, a:Lyta joins the game (UC:Join game), selecting Brunhild the Fighter as character. She gets another equipment, meaning a battleaxe, knife and armored vest. She chats with Desiderata (UC:Chat with players), and they decide to meet at the big tree near the mountain. As Brunhild Run (Run) to rendezvous, she finds a four-clover, but she cannot Cast spells so she takes it (PickUp Item), to bring it to Desiderata. Paul the baptist and Conan decide to split and search, one to the north and one to the south, and meet in 5 mins. Paul the baptist spots Desiderata and Brunhild, and a golden clad. He calls Conan and attacks Brunhild from behind with his pike (Fight enemy), causing damage to her, but Desiderata casts a curse spell on him (Bewitch people), which makes him moving very slowly, so Brunhild finishes him off with her axe. He looses his artefact, and can't fight any more. So he has to return to his camp to refill his live energy. Desiderata and Brunhild now have three artifacts, and pick up the fourth finally. They need to bring it to a hut over the mountain. They UC:Move (Walk) along the road there, but Conan waits for them, and attacks (Fight enemy). His sword destroys Brunhilds battleaxe, and her knife can't cause enough damage to him. Desiderata has no mana, and therefore can't help Brunhild, who is out of action now. So Desiderata attacks Conan with a woodstock, and hits him badly, but then she is out of action too. Conan however has very low hit points now. Desiderata and Brunhild use public chat (UC:Chat with players) to call Conan bad boy as he attacked girls. He continues his way in the meantime, but attacked by the wolves (UC:Search adventurer), who put him out of action. But Paul the baptist is cured by the time, and finds the items on the road, picks them up (PickUp Item) and carries them to the hut, thus completing mission. |
||||||||||||||||||||||||||||||||||||||||||||||||||
4.2.7. Rescue of Angelina | ||||||||||||||||||||||||||||||||||||||||||||||||||
Instantiated Use Case: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Play SWORD | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor Instance: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No actor instance specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Paul the baptist, MacDuff and Conan are Adventurers
in a game. They try to get an overview and Walk around (UC:Move)
for a short to discover their area. Then the characters start Walking towards
each others by orientating using the Overview map. While Walking they try
to pickup as many items (UC:Use
item with inventory) as possible. Suddenly MacDuff finds a big gold
nugget(UC:Use
item with). Meanwhile Conan passes a small village. MacDuff notifies
his mates about (UT:Communicate
with other players using UC:Chat
with players) his finding. Conan invites him to come to the village
and MacDuff agrees. Meanwhile Paul the baptist is struggeling(UC:Move)
through the deep forest and finds an ancient spell on a clearance (UC:Use
item with), while MacDuff and Conan are exchanging (UC:Hand
over item) the gold against an powerfull hammer in the village. Suddenly they are attacked by an Dragon (UT:Hunt for adventurers). So Conan must protect MacDuff and himself (Use item (sword)with Dragon) by fighting the Dragon. Because Conan was hit twice by the fire he has lost energy, and he reports that to Paul the baptist (UC:Talk with Players through a headset) to get Paul healing him. They agree on meeting at the water fall, which both see one the Overview map. MacDuff decides to Walk around by himself. Although he is not strong, he has no fear of wild creatures. And so he is struggling through deep forest, when he is suddenly detected (Hunt for adventurer) by a mob of Orcs. They try to hit him (Fight enemy) him but he is quick and gives them bottles of alkohol (UC:Use item with orc) and they fall asleep. As fast as possible he walk (UC:Move) away and suddenly stands in front of a castle. He alerts his mates (UC:Chat with players), who tries to join him as fast as possible. While MacDuff was treated by the Orc mob, Conan and Paul has met at the waterfall, where Paul the baptist tried to Create religious place (UC:Use item with place) to get Conan healthy again. Then they get the message from MacDuff to join him at the castle. While Walking there, Paul the baptist discovers a hidden door in a tree with the objective of coming to the castle. Conan Walks there. After a short while he arrives there, and the three Adventurers find the door closed. So Conan use the hammer to open the door (UC:Use item with door), but nothing happens. So they deliberate on that matter using their headsets (UC:Talk with Players through a headset). And overcome, that Paul should try using the spell (UC:Use item with door) he found to open the door. But the door is strong and still resists. But when Conan treats it with his massive hammer (UC:Use item with door), it can't stand that any more. So they can enter the castle. After Walking around for a short while there is another wall made of stone where the hammer from Conan has no effect (UC:Use item with wall). Now MacDuff has an idea to push the stones while Paul the baptist is reading the spell (UC:Use item with spell), he found. Now the wall goes up like a door and the Adventurers can enter the room of the princess and rescue her. |
||||||||||||||||||||||||||||||||||||||||||||||||||
4.2.8. Resume yesterday's game | ||||||||||||||||||||||||||||||||||||||||||||||||||
Instantiated Use Case: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No use case specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor Instance: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No actor instance specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
The next day, a:Susan bumps into three of her friends (a:John, a:Lyta, a:Michael) on her "U-Bahn" ride to campus and is stranded at the "Frttmaning" stop, due to an arena construction closeby. They decide to pick up the game they dropped the day before. They open up Sword and play until the train arrives on campus. | ||||||||||||||||||||||||||||||||||||||||||||||||||
4.2.9. Talk to John | ||||||||||||||||||||||||||||||||||||||||||||||||||
Instantiated Use Case: | ||||||||||||||||||||||||||||||||||||||||||||||||||
Chat with players | ||||||||||||||||||||||||||||||||||||||||||||||||||
Initiating Actor Instance: | ||||||||||||||||||||||||||||||||||||||||||||||||||
No actor instance specified. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Flow of events: | ||||||||||||||||||||||||||||||||||||||||||||||||||
a:Susan
sends a message to a:John:
"Where did you enter the game?" He replies "at the graveyard". She asks him to meet her at the waterfall. |
||||||||||||||||||||||||||||||||||||||||||||||||||
5. Glossary | ||||||||||||||||||||||||||||||||||||||||||||||||||
Now there exists too versions of REQuest, one shows the game
world in detail, and the second one shows the System Design as it is considered
by the Object and Dynamic Model. As basis for the Analysis the second one is used. |