StendhalDesign: Difference between revisions

From Arianne
Jump to navigation Jump to search
Content deleted Content added
No edit summary
imported>StephenIerodiaconou
No edit summary
Line 1: Line 1:
This small doc tries to make a contract agreement about what is stendhal 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 get.
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.


Consider using the Discussion tab to query about particular things or making suggestions.
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 Sheeps by taking them with you to eat on the plains or the forest.<br>
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 because you will have to look after them because hungry wolves will try to eat your Sheep. So be careful and protect your Sheep.
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.


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.
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 getting new weapons and armors and healing potions.
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 problem is just scaling up the result. :)
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 would looks like:
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 multizone feature.<br>
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 shows the next entities in our system:
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 with its attributes and actions related.
Let's describe each entity and its attributes and actions.
=== Sheep ===
=== Sheep ===
It has the following set of attributes:
A sheep has the following set of attributes:
* x
* x
* y
* y
Line 157: Line 157:
* weight
* weight


Sheep tasks would be:
Sheep tasks should be:
* follow
* follow
* eat
* eat


Sheep behaviour is mainly to follow owner and look for food.<br>
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 it is attacked by wolves.<br>
Sheep will runaway if attacked by wolves.<br>


=== Wolf ===
=== Wolf ===
It has the following set of attributes:
Wolves have the following set of attributes:
* x
* x
* y
* y
Line 174: Line 174:
* atk
* atk


Wolf tasks would be:
Wolf tasks should be:
* follow
* follow
* attack
* attack
Line 180: Line 180:
* chat
* chat


Wolf behaviour consists in patrolling some assigned areas.<br>
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 ===
It has the following set of attributes:
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 in listening to people near them.<br>
NPC behaviour consists of listening to people near them.<br>
If person says "Hi", NPC faces person and generate conversation.<br>
If person says "Hi", NPC faces person and generates conversation.<br>


=== Player===
=== Player===
It has the following set of attributes:
The player has the following set of attributes:
* x
* x
* y
* y
Line 215: Line 215:
* flock
* flock


Player tasks would be:
Player tasks should be:
* move
* move
* attack
* attack
Line 221: Line 221:


=== Food ===
=== Food ===
It has the following set of attributes:
Food has the following set of attributes:
* x
* x
* y
* y
* quantity
* quantity


Food will regenerated each X units of time.<br>
Food will be regenerated every X units of time.<br>


== Pseudocode ==
== 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.
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.