StendhalDesign: Difference between revisions
No edit summary |
|||
| Line 30: | Line 30: | ||
We need to use several use cases to describe our game. |
We need to use several use cases to describe our game. |
||
===Player's user case=== |
===Player's user case=== |
||
Player is an entity that play the game, it can move, chat, attack, heal. |
|||
<pre> |
<pre> |
||
Player enter village in entry point |
Player enter village in entry point |
||
| Line 63: | Line 64: | ||
===Sheep seller's user case=== |
===Sheep seller's user case=== |
||
This seller is a NPC entity that will sell us a sheep to grow it up and make money. |
|||
<pre> |
<pre> |
||
FOREVER do: |
FOREVER do: |
||
| Line 83: | Line 85: | ||
===Sheep buyer's user case=== |
===Sheep buyer's user case=== |
||
This buyer is a NPC entity that will buy us our sheep. |
|||
<pre> |
<pre> |
||
FOREVER do: |
FOREVER do: |
||
| Line 103: | Line 106: | ||
===Sheep's user case=== |
===Sheep's user case=== |
||
Sheep is our key game concept. Sheeps must be grow up to earn money and buy stuff. |
|||
<pre> |
<pre> |
||
Sheep is in Farm |
Sheep is in Farm |
||
| Line 119: | Line 123: | ||
===Wolf's user case=== |
===Wolf's user case=== |
||
Wolf is the compitive entity on Stendhal. They join to attack sheeps and often also players. They can kill a sheep in not a long time. |
|||
<pre> |
<pre> |
||
Wolf moves |
Wolf moves |
||
Revision as of 09:38, 4 March 2005
This small doc tries to make a contract agreement about what is stendhal and what it needs to include. It considers the existing [Roadmap] and tries to give a coherent vision of what we are trying to get.
Consider using the Discussion tab to query about particular things or making suggestions.
Plot
Stendhal's plot is to grow Sheeps by taking them with you to eat on the plains or the forest.
The task is not simple because you will have to look after them because hungry wolves will try to eat your Sheep. So be careful and protect your Sheep.
Sheeps must be bought when small at Farm, and sell later when you grow it at the Village. For each Sheep you sell when it has grow up, you will get an extra income.
You will need to spend money on getting new weapons and armors and healing potions.
As you see Stendhal is a minigame that try to push everything related to RPG:
- task
- actions
- areas
If Arianne get Stendhal working, the problem is just scaling up the result. :)
Design
Idea
The whole game area would looks like:
http://arianne.sourceforge.net/wiki_images/Stendhal_Map.jpg
It is split in 4 different areas to test the multizone feature.
Players need to change zone in order to accomplish their task.
Use cases description
We need to use several use cases to describe our game.
Player's user case
Player is an entity that play the game, it can move, chat, attack, heal.
Player enter village in entry point
Player moves to Farm zone
Player talks with Sheep seller
Player: Hi
Seller: Greetings! How may I help you?
Player: buy Sheep
Seller: Do you want to buy a Sheep for 50 coins?
Player: yes
Seller: Thank you! Bye
Player moves. Sheep follows Player.
Player moves to plains
Player moves around looking for food
Player protect Sheep of wolves attacks
When Sheep is big enough Player moves to Village
Player talks with Sheep buyer
Player: Hi
Buyer: Greetings! How may I help you?
Player: sell Sheep
Buyer: Do you want to sell this Sheep for 73 coins?
Player: yes
Buyer: Thank you! Bye
Player spend money in new Sheep and equipment
* Armor
* Weapon
* Healing potions
Sheep seller's user case
This seller is a NPC entity that will sell us a sheep to grow it up and make money.
FOREVER do:
Listen to Player
If listen "Hi":
Seller says "Greetings <Player>!"
If listen "Buy Sheep" from Player:
Seller says "Do you want to buy a Sheep for 50 coins?"
If listen "yes" from Player:
If Player money - 50 > 0:
set Player money=Player money - 50
Duplicate Sheep
Make Sheep follows Player
Say bye to Player
DONE
Sheep buyer's user case
This buyer is a NPC entity that will buy us our sheep.
FOREVER do:
Listen to Player
If listen "Hi":
Seller says "Greetings <Player>!"
If listen "Sell Sheep" from Player:
Estimate Sheep value related to Sheep weight
Seller says "Do you want to sell buy a Sheep for <estimated price> coins?"
If listen "yes" from Player:
set Player money=Player money + <estimated price>
Destroy Sheep
Say bye to Player
DONE
Sheep's user case
Sheep is our key game concept. Sheeps must be grow up to earn money and buy stuff.
Sheep is in Farm
Player buys Sheep
Sheep seller duplicates Sheep
Sheep follows Player
If Sheep finds food:
Sheep moves to food
Sheep eats food
Sheep gains weight
Player sells Sheep
Sheep dissappear
Wolf's user case
Wolf is the compitive entity on Stendhal. They join to attack sheeps and often also players. They can kill a sheep in not a long time.
Wolf moves
If Wolf sees Sheep:
Wolf attacks Sheep
If Wolf is attacked:
Wolf attacks Attacker
Entities
The above user cases shows the next entities in our system:
- Sheep
- Sheep seller
- Sheep buyer
- Wolf
- Player
- Food
- Armor
- Weapon
- Healing potion
Let's describe each entity with its attributes and actions related.
Sheep
It has the following set of attributes:
- x
- y
- dx
- dy
- hp
- owner
- weight
Sheep tasks would be:
- follow
- eat
Sheep behaviour is mainly to follow owner and look for food.
If Sheep finds food, it will eat.
Sheep will runaway if it is attacked by wolves.
Wolf
It has the following set of attributes:
- x
- y
- dx
- dy
- hp
- atk
Wolf tasks would be:
- follow
- attack
- patrol
- chat
Wolf behaviour consists in patrolling some assigned areas.
If Wolf finds Sheep, it will attack Sheep.
If Wolf is attacked, Wolf attacks.
If Wolf is injured, Wolf will runaway.
Sheep seller and Sheep buyer
It has the following set of attributes:
- x
- y
- dx
- dy
- atending
seller and buyer tasks would be:
- patrol
NPC behaviour consists in listening to people near them.
If person says "Hi", NPC faces person and generate conversation.
Player
It has the following set of attributes:
- x
- y
- dx
- dy
- hp
- atk
- money
It has three slots:
- armor
- hand
- backpack
- flock
Player tasks would be:
- move
- attack
- chat
Food
It has the following set of attributes:
- x
- y
- quantity
Food will regenerated each X units of time.
Pseudocode
It is a nice thing to write first a pseudo code of how the design ideas should be coded, as it will spot problems that are later harder to solve.