StendhalDesign: Difference between revisions
No edit summary |
imported>StephenIerodiaconou No edit summary |
||
| Line 1: | Line 1: | ||
This small doc tries to |
This small doc tries to create an agreement on what stendhal is about and what it needs to include. It considers the existing [[http://arianne.sourceforge.net/wiki/index.php/StendhalObjectives#Roadmap Roadmap]] and tries to give a coherent vision of what we are trying to create. |
||
Please use the Discussion tab (found in the menu at the top of the page) to query about things or make suggestions. |
|||
= Plot = |
= Plot = |
||
Stendhal's plot is to grow |
Stendhal's plot is to grow Sheep by taking them with you to the plains or forest to graze.<br> |
||
The task is not simple |
The task is not as simple as it may sound though, as you will have to protect them from hungry wolves! Use your skill, strength and wit to destroy the attackers. |
||
Lambs must first be bought at a Farm and later sold at the Village when they are plump enough. For each Sheep you sell, when fully grown, you will get extra income. |
|||
You will need to spend money on |
You will need to spend your money on new weapons, armor and healing potions. |
||
As you see Stendhal is a minigame that try to push everything related to RPG: |
As you can see Stendhal is a minigame that will try to push and thus test everything related to a fully blown RPG: |
||
* task |
* task |
||
* actions |
* actions |
||
* areas |
* areas |
||
If Arianne get Stendhal working, the |
If Arianne is a successful platform to get Stendhal working, the only issue is scaling up the result. :) |
||
= Design = |
= Design = |
||
== Idea == |
== Idea == |
||
The whole game area |
The whole game area will look like: |
||
http://arianne.sourceforge.net/wiki_images/Stendhal_Map.jpg |
http://arianne.sourceforge.net/wiki_images/Stendhal_Map.jpg |
||
It is split in 4 different areas to test the |
It is split in to 4 different areas to test the multizones feature of Arianne.<br> |
||
Players need to change zone in order to accomplish their task. |
Players need to change zone in order to accomplish their task. |
||
| Line 135: | Line 135: | ||
== Entities == |
== Entities == |
||
The above user cases |
The above user cases describe the need for the following entities in our system: |
||
* Sheep |
* Sheep |
||
* Sheep seller |
* Sheep seller |
||
| Line 146: | Line 146: | ||
* Healing potion |
* Healing potion |
||
Let's describe each entity |
Let's describe each entity and its attributes and actions. |
||
=== Sheep === |
=== Sheep === |
||
A sheep has the following set of attributes: |
|||
* x |
* x |
||
* y |
* y |
||
| Line 157: | Line 157: | ||
* weight |
* weight |
||
Sheep tasks |
Sheep tasks should be: |
||
* follow |
* follow |
||
* eat |
* eat |
||
The sheeps behaviour is mainly to follow its owner and look for food.<br> |
|||
If Sheep finds food, it will eat.<br> |
If the Sheep finds food, it will eat.<br> |
||
Sheep will runaway if |
Sheep will runaway if attacked by wolves.<br> |
||
=== Wolf === |
=== Wolf === |
||
Wolves have the following set of attributes: |
|||
* x |
* x |
||
* y |
* y |
||
| Line 174: | Line 174: | ||
* atk |
* atk |
||
Wolf tasks |
Wolf tasks should be: |
||
* follow |
* follow |
||
* attack |
* attack |
||
| Line 180: | Line 180: | ||
* chat |
* chat |
||
Wolf behaviour consists |
Wolf behaviour consists of patrolling some assigned areas.<br> |
||
If Wolf finds Sheep, it will attack Sheep.<br> |
If the Wolf finds a Sheep, it will attack Sheep.<br> |
||
If Wolf is attacked, Wolf attacks.<br> |
If the Wolf is attacked, the Wolf returns the attacks.<br> |
||
If Wolf is injured, Wolf will runaway.<br> |
If the Wolf is injured, the Wolf will runaway.<br> |
||
=== Sheep seller and Sheep buyer === |
=== Sheep seller and Sheep buyer === |
||
The buyer and seller have the following set of attributes: |
|||
* x |
* x |
||
* y |
* y |
||
* dx |
* dx |
||
* dy |
* dy |
||
* attending |
|||
* atending |
|||
seller and buyer tasks would be: |
seller and buyer tasks would be: |
||
* patrol |
* patrol |
||
NPC behaviour consists |
NPC behaviour consists of listening to people near them.<br> |
||
If person says "Hi", NPC faces person and |
If person says "Hi", NPC faces person and generates conversation.<br> |
||
=== Player=== |
=== Player=== |
||
The player has the following set of attributes: |
|||
* x |
* x |
||
* y |
* y |
||
| Line 215: | Line 215: | ||
* flock |
* flock |
||
Player tasks |
Player tasks should be: |
||
* move |
* move |
||
* attack |
* attack |
||
| Line 221: | Line 221: | ||
=== Food === |
=== Food === |
||
Food has the following set of attributes: |
|||
* x |
* x |
||
* y |
* y |
||
* quantity |
* quantity |
||
Food will regenerated |
Food will be regenerated every X units of time.<br> |
||
== Pseudocode == |
== Pseudocode == |
||
It is a |
It is a good idea to first write pseudo code of how the design ideas should be implemented, as it will allow us to spot problems that are later harder to solve. |
||
Revision as of 09:39, 4 March 2005
This small doc tries to create an agreement on what stendhal is about and what it needs to include. It considers the existing [Roadmap] and tries to give a coherent vision of what we are trying to create.
Please use the Discussion tab (found in the menu at the top of the page) to query about things or make suggestions.
Plot
Stendhal's plot is to grow Sheep by taking them with you to the plains or forest to graze.
The task is not as simple as it may sound though, as you will have to protect them from hungry wolves! Use your skill, strength and wit to destroy the attackers.
Lambs must first be bought at a Farm and later sold at the Village when they are plump enough. For each Sheep you sell, when fully grown, you will get extra income.
You will need to spend your money on new weapons, armor and healing potions.
As you can see Stendhal is a minigame that will try to push and thus test everything related to a fully blown RPG:
- task
- actions
- areas
If Arianne is a successful platform to get Stendhal working, the only issue is scaling up the result. :)
Design
Idea
The whole game area will look like:
http://arianne.sourceforge.net/wiki_images/Stendhal_Map.jpg
It is split in to 4 different areas to test the multizones feature of Arianne.
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 describe the need for the following entities in our system:
- Sheep
- Sheep seller
- Sheep buyer
- Wolf
- Player
- Food
- Armor
- Weapon
- Healing potion
Let's describe each entity and its attributes and actions.
Sheep
A sheep has the following set of attributes:
- x
- y
- dx
- dy
- hp
- owner
- weight
Sheep tasks should be:
- follow
- eat
The sheeps behaviour is mainly to follow its owner and look for food.
If the Sheep finds food, it will eat.
Sheep will runaway if attacked by wolves.
Wolf
Wolves have the following set of attributes:
- x
- y
- dx
- dy
- hp
- atk
Wolf tasks should be:
- follow
- attack
- patrol
- chat
Wolf behaviour consists of patrolling some assigned areas.
If the Wolf finds a Sheep, it will attack Sheep.
If the Wolf is attacked, the Wolf returns the attacks.
If the Wolf is injured, the Wolf will runaway.
Sheep seller and Sheep buyer
The buyer and seller have the following set of attributes:
- x
- y
- dx
- dy
- attending
seller and buyer tasks would be:
- patrol
NPC behaviour consists of listening to people near them.
If person says "Hi", NPC faces person and generates conversation.
Player
The player has the following set of attributes:
- x
- y
- dx
- dy
- hp
- atk
- money
It has three slots:
- armor
- hand
- backpack
- flock
Player tasks should be:
- move
- attack
- chat
Food
Food has the following set of attributes:
- x
- y
- quantity
Food will be regenerated every X units of time.
Pseudocode
It is a good idea to first write pseudo code of how the design ideas should be implemented, as it will allow us to spot problems that are later harder to solve.