The Chosen Ones - Report1
From EQUIS Lab Wiki
CISC 864 Group Project Report Number 1
Group Name: The Chosen Ones
Members: Edwin Locke, Sean Richards
Due: Friday February 17th 2006
Contents |
Description of the Project
Goal:
The overall goal of our project is to implement the idea of villager happiness (can also be called cheer or faction). This idea provides the game with what may be called an adversary. Players have to be aware of the happiness of each of their villagers. Part of the resources that you gather for your village have to be used to help maintain/increase the happiness of the people that live in your village. When people become unhappy they work less efficiently. If a villager has a happiness that is below a certain threshold, they may consider leaving your village for one that may make them happier.
Changes in game mechanics:
The game is going to have to be modified to take the idea of happiness into consideration. As it stands right now, the idea of happiness (more precisely cheer) is expressed in a document on the wiki, however, there is no implementation of the idea in the actual game. Changes will have to be made to areas of the game in order to support the idea of happiness.
The Economic Model
Number of Villagers:
The number of people that live in the village is a direct result of how your village is laid out and the different resources you have available to those that live in your village. Specifically, village population is controlled by:
The number of dwellings available in the village (is there room for people to live)
The overall happiness of the village (which is a combination of villager happiness and village layout)
Buildings in the village (places for recreation, learning, devotion) (is there something for people to do when not working to increase happiness)
Village future (considers saved resources which may be used to build new buildings or otherwise expand the prosperity of the village)
Villager Well Being:
This involves the fitness of the villager, the hunger of the villager, the energy the villager has.
Fitness and hunger are directly controlled by the buildings that are in the village. For example, a farm building produces food which is consumed by the villagers, controlling their hunger. Each farm can produce enough food to feed X villagers. As long as the player has enough farms, each of the villagers will be fed enough to keep hunger at an appropriate level. Fitness is a product of doing work and having time to go to the Training Hall. As villagers complete manual labour, their fitness is changed (for example when cutting down trees and carrying the load back to the village). The Training Hall will have the effect of keeping the villagers in a state of good fitness.
Villager energy can be measured by the forces from the player of the game. As the player uses the bicycle, a rolling average of their exerted force will be used to calculate the energy of the villagers. A rolling average is used so the effects of short term stopping or resting don't contribute a great deal to the overall energy of the villagers. If no bicycle is being used (for example when we develop and test the game), an energy value can be assigned arbitrarily.
Villager Type:
Villagers in the game have different personalities. Some of the villagers enjoy working more than others, some enjoy going to a pub, some enjoy relaxation, etc. From the point of view of the game, this means that different organizations of a village will have different effects on the different personalities of the villagers. The player of the game will have to balance the different types of buildings and their locations to make all types of villagers happy with the village (and thus want to stay living in that village).
Villager Happiness:
The model of happiness or cheer of a villager. Each of the villagers has a unique happiness value which comes from combinations of factors. A villager that enjoys recreation will have their happiness effected if the village has a Recreation Hall. A villager that enjoys learning would benefit from a Training Hall. A villager that likes to kick back and enjoy a brew would benefit from a pub.
Happiness is also derived from the amount of work the villager has to do. The longer the villager is away from the village (harvesting resources etc), the more unhappy the villager will be. Happiness can be regained by spending time in the village doing something the villager enjoys.
As the overall happiness of a villager decreases, they may consider quitting their job, taking a vacation, or moving to another village.
Villager Productivity:
The productivity of villagers is controlled by hunger, energy, fitness, happiness. The higher the combination of these values, the more productive the villager is. As any or all of these values decreases, the villager becomes less productive. If any of these values reaches zero (0), the villager will not be productive at all.
External Stresses:
As villagers pass other villages, they may be influenced by the happiness of that village. If the villager is very unhappy and they pass a village that is vibrant and full of happiness, this may effect their decision to move away from their old village. There may also be some scouts from other villages that roam around the world trying to convince villagers their home is fun and happy, which may influence villagers to move. The more unhappy a villager is, the more these external stresses can effect them.
Game Balance:
Formulas and functions have to be used to model well being, happiness, productivity etc. It is hard to predict what these values will be. For this reason, we have to spend time testing different variations of weightings for each of the attributes of the villager. As time progresses and we work more on the details, we will be able to formally denote the values for each category and how they interact.
Game Modifications
Game Core:
The core of the game will have to be modified to take the idea of happiness into consideration. Facilities will have to be added to assign happiness to each of the villagers and monitor the happiness of each villager in the game. The core of the game has to be modified so that villager happiness can be modified under certain conditions (conditions include external stress, amount of work, etc).
The proposed changes require the game to be able to handle villages of small and large sizes. The larger villages contain many villagers, which work and live in the village. Pathing of the villagers has to be modified. Our changes would have the villagers walk around the village, while having affinity to certain places. The locations villagers have affinity to are based on their personalities (if a villager enjoys playing games, they would have a higher affinity to the Recreation Hall). This would have the net result of villagers being more likely to go to their favourite location, but still moving towards other buildings in the village. As an example of how this may change the way players play the game: The player of the game may notice s/he has more villagers that tend to enjoy one location more, and thus, may decide to build another building of that type to suit the needs of the village.
Game AI:
The AI of the villagers has to be modified so they are aware of the happiness they currently have and act accordingly. The villagers will be subject to a set of normal actions when they are in a certain happiness state. The player of the game can modify the normal actions of the villagers by assigning them to work on harvesting resources etc. Under certain conditions the villagers will have to make decisions of what to do based on the current state of the game and the state of themselves. For example, when the happiness of a villager reaches a threshold, they will decide if they should go to another village, take actions to make themselves happier, take a vacation, etc.
User Data (Persistence/Storage):
The game will have to know how to remember the happiness of each of the villagers for persistence. These changes should be trivial.
Physics:
No changes to this section of the game are currently proposed.
Interface Manager:
No changes to this section of the game are currently proposed.
Graphics Engine:
No changes to this section of the game are currently proposed.
Sound Engine:
No changes to this section of the game are currently proposed.
Changes in gameplay (from the point of view of the player):
The player has to be much more aware of the villagers they control. Given that the villagers will now have a happiness model associated with them, the player will have to make sure the villagers remain happy and willing to work and live in their village. The user interface will remain unchanged on the whole. Some minor modifications have to be made in order to allow the player to view the current happiness details of the village and the villagers that live in the village. Other small modifications may include some prompts that tell the user when a villager is reaching critical unhappiness, and how they may go about making the village/villager happier.
Art Requirements
The final product of the game will require models for the building types that are in a village. Each building type plays a specific role in the process of playing the game. Given that each type of building does something different, they should be easily distinguishable visually.
- Buildings
- Village Hall (upgrades to Village Keep and then Village Castle)
- Pub
- Training Hall (Increase abilities of workers)
- Recreational Hall (Spa, Relaxation, Games, etc)
- Devotional Hall
- Villager Homes
Our plan is to use placeholder models for all the buildings that we require. It would be too much for the art students to create all the necessary models for the work we are proposing to do. In the long run these models can be created and easily added to our framework.
Project Milestones
Work Phases (including timeline):
- The definition of the buildings and how they influence the economic model of the game (including influences on the villagers): March 3rd 2006
- The Economic Model for the village and the villagers: March 17th 2006
- Villager Types (definition of the different types of personalities and the ratio of one type to another in the game): March 3rd 2006
- External Influences: March 24th 2006
Technology
Game Architecture Changes:
Game Core Changes (CAXGame):
The following classes will need to be investigated/modified
- CAXBuildingManager
- CAXWorldObject
- CAXBuilding
- CAXGameStateManager
- CAXGameState
- CAXInGameState
AI Changes (CAXAI):
The following classes will need to be investigated/modified
- CAXVillagerManager
- CAXVillagerPathManager
- CAXVillagerPath
- CAXVillager
Data Changes (CAXData):
The following classes will need to be investigated/modified
- CAXWorldObjectData
- CAXBuildingData
- CAXVillagerData
Third party software:
No third party software use planned.
Interaction with other groups
We specifically have to be aware of Rob and Banani because they are working on the AI of the villagers as well. We plan to meet with this group to discuss changes we make that may conflict. We will take actions to ensure that both of our changes can be made successfully.