Tribes expansion

From PSwiki
Jump to navigation Jump to search

(Go back to the main GSoC 2011 page)

Disclaimer

This idea has been already selected by some people. You are welcome to pick it up anyway, but in this case we suggest you to also submit another proposal for a second PlaneShift idea. You can submit as many proposals as you want for one organization.

Current status

Please read the main Tribes concept document. This document outlines the concept behind tribes implementation in PlaneShift.

Now consider that the following elements are already completed:

  • The concept of "Home", where the tribe spawns and where the tribes member return for bringing food/resources
  • The concept of harvesting around the home location
  • Food to support the expansion of the tribe
  • Maximum number of members and reproduction, the tribe can spawn new members on a simple formula

You can see some details of the implementation in the following pages: Tribes, Behavior Operations, Behaviors and Reactions.

Skills needed

Our server and client are all coded in C++ and the database is MySql. For this project C++ knowledge is needed with some knowledge of mysql. Also the NPC behaviours are defined in XML files, so some basic knowledge of XML is needed.

What's missing

Behaviour:

Keep a list of goals with priorities. The goal with the highest priority will be executed. After successful completion of a goal this priority will be lowered, so other goals will be executed. Possible goals for now are:

  • Grow in number (mate)
  • Build/enhance village size or quality
  • Gain wealth
  • Expand non aggressively (if other tribes are found, they stop)
  • Expand aggressively (if other tribes are found, attack)

In addition:

  • Be able to evaluate what’s needed to accomplish a goal, splitting it into subtasks.
  • Be able to give the subtasks to members to achieve the goal. For example if goal is grow in number, it should send input to members to seek food, then to build houses, then to mate.
  • Execute some random actions like sitting down for resting, looking around, waiting few seconds.
  • React to other NPCs nearby and stop walking to look at the nearby creature (just for few seconds, then restart walking).

Artificial intelligence in collecting materials:

  • Building materials – required by the tribe to support expansion, a small population can survive without the need for a distinguishable home but a large one cannot.
  • Raw materials – used by the tribe to craft and trade allowing it to actively participate in the economy, increase wealth, tools quality, weapons. These are the actions needed for NPC to use natural resources:
  • Dig or search for resources along the movement paths
  • Know which tool is needed for digging/harvesting
  • Remember a location when they find a resource
  • See objects that lie on the ground, so can be picked up and used

Building villages

This is the most important part of the tribe system. The tribe should be able to :

  • Keep a list of houses/buildings which can be created by the tribe
  • Keep a cost associated to the creation of each building and the resources needed
  • Have a function associated to each building, which can be just sleeping, or can be a forge to make items, or a well, to get water.
  • Be able to build and spawn houses/buildings in a predefined area
  • Keep a list of houses/buildings which are owned by the tribe
  • Use those buildings for their primary function

Building caves

Tribes should be able to dig the ground/walls and build caves. They can then use those areas to live and to hunt.

  • Keep a list of building blocks the tribe can use to create the dungeon
  • have an algorithm for creating a dungeon from the building blocks
  • know the cost in terms of resources
  • know the time needed to create each block
  • spawn one block or multiple blocks
  • (to be evaluated) collapse the geometry of multiple blocks to create a single piece for performance reasons. This requires some CS internals knowledge and we need CS help.