StendhalDesign: Difference between revisions

From Arianne
Jump to navigation Jump to search
Content deleted Content added
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 enter village in entry point
* Player moves to Farm zone
* Player talks with Sheep seller
<pre>
<pre>
Player: Hi
Player enter village in entry point
Player moves to Farm zone
Seller: Greetings! How may I help you?

Player: buy Sheep
Seller: Do you want to buy a Sheep for 50 coins?
Player talks with Sheep seller
Player: yes
Player: Hi
Seller: Thank you! Bye
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
</pre>
</pre>
* 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
<pre>
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
</pre>
* Player spend money in new Sheep and equipment
*# Armor
*# Weapon
*# Healing potions


===Sheep seller's user case===
===Sheep seller's user case===
<pre>
FOREVER do:
FOREVER do:
* Listen to Player
Listen to Player

* If listen "Hi":
If listen "Hi":
** Seller says "Greetings <Player>!"
* If listen "Buy Sheep" from Player:
Seller says "Greetings <Player>!"

** Seller says "Do you want to buy a Sheep for 50 coins?"
* If listen "yes" from Player:
If listen "Buy Sheep" from Player:
Seller says "Do you want to buy a Sheep for 50 coins?"
** If Player money - 50 > 0:

*** set Player money=Player money - 50
If listen "yes" from Player:
*** Duplicate Sheep
*** Make Sheep follows Player
If Player money - 50 > 0:
* Say bye to Player
set Player money=Player money - 50
Duplicate Sheep
Make Sheep follows Player
Say bye to Player
DONE
DONE
<pre>


===Sheep buyer's user case===
===Sheep buyer's user case===
<pre>
FOREVER do:
FOREVER do:
* Listen to Player
Listen to Player

* If listen "Hi":
If listen "Hi":
** Seller says "Greetings <Player>!"
* If listen "Sell Sheep" from Player:
Seller says "Greetings <Player>!"

** Estimate Sheep value related to Sheep weight
If listen "Sell Sheep" from Player:
** Seller says "Do you want to sell buy a Sheep for <estimated price> coins?"
Estimate Sheep value related to Sheep weight
* If listen "yes" from Player:
** set Player money=Player money + <estimated price>
Seller says "Do you want to sell buy a Sheep for <estimated price> coins?"
** Destroy Sheep
* Say bye to Player
If listen "yes" from Player:
set Player money=Player money + <estimated price>
Destroy Sheep
Say bye to Player
DONE
DONE
</pre>


===Sheep's user case===
===Sheep's user case===
<pre>
* Sheep is in Farm
* Player buys Sheep
Sheep is in Farm
* Sheep seller duplicates Sheep
Player buys Sheep
* Sheep follows Player
Sheep seller duplicates Sheep
* If Sheep finds food:
Sheep follows Player

** Sheep moves to food
** Sheep eats food
If Sheep finds food:
** Sheep gains weight
Sheep moves to food
* Player sells Sheep
Sheep eats food
* Sheep dissappear
Sheep gains weight

Player sells Sheep
Sheep dissappear
</pre>


===Wolf's user case===
===Wolf's user case===
<pre>
* Wolf moves
* If Wolf sees Sheep:
Wolf moves
** Wolf attacks Sheep
If Wolf sees Sheep:
* If Wolf is attacked:
Wolf attacks Sheep
** Wolf attacks Attacker
If Wolf is attacked:
Wolf attacks Attacker
</pre>



== Entities ==
== Entities ==

Revision as of 09:03, 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 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

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
<pre>

===Sheep buyer's user case===
<pre>
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 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 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.