SimCiv Project Proposal
This design is obsolete. See the new one.

 

 

Game Name: SimCiv
Development Team: John Davin (jdavin AT cmu.edu)
Game Description:

An alien species on a distant world has just begun to evolve, and you are a visitor (or "god") who can impart your many skills to these naive new creatures. But it will take time to teach new skills and concepts, and you have to choose which qualities you would actually like to promote in this new civilization. The aliens are completely autonomous agents and will behave according to the skills and principles they learn.

As the civilization acquires more knowledge and some level of direction (ie, towards industrialization, or warfare, or enlightenment), the game will announce turning points when the civilization evolves into a new level of advancement.

Development Goals:
  • Create a diverse and evolving world that is different every time the game is played.
  • Develop emergent behaviors. The characters in the world should exhibit learning, evolution, and should have "personalities" (or unique skillsets).
  • Replayability - since the game has many possible strategies and emergent civilizations, it will provide new experiences every time.
Game Features:
  • Character level development:
    Individual characters will evolve independently of each other and will develop unique abilities. They will be autonomous and will have the ability to teach their skills to fellow aliens (in the same way that the god character can teach skills). Their knowledge and skill set will determine their behavior and possible interactions with their co-habitants.
  • World level development:
    Evolution of the civilization to different stages of advancement (eg, Stone age, industrial age, enlightenment, etc). These advancements will take time, and will be considered the main "reward" of playing the game (with the informal goal of the game being to advance your civilization - but as with all sim games, you will be free to sidetrack your civilization or even damage it).
  • Graphics:
    Since this is an alien world, the graphics should be somewhat artistic+unique, and certainly unlike any Earth type environments. Model objects will be used for the aliens and the world may have static objects.
    The appearance (color, size, shape?) of characters will change to provide visual feedback for their level of knowledge or type of ability set. It will be important to have some way of uniquely identifying the characters (eg, names floating above their heads) so that the user can identify with them and keep track of goals.
    Graphics should look nice, but will obviously have less priority than the AI.
Technical Features:
  • Artificial Intelligence:
    Including:
    • behavior selection,
    • flocking (maybe)
    • learning (possibly genetic, or RL based).
    • large set of behaviors and character attributes
  • graphics: only what is necessary to make the game playable and visually stimulating. (aliens will be simple models roaming on a plane, possibly with static objects in the world (water, acid pools, food, buildings?)). Collision detection between aliens so that they can approach each other and interact.
  • Qt-based GUI to provide easier user input, and world state feedback.
Implementation Plan:

Original development:

  • All AI code, though techniques will likely be based on research in the AI field.
  • Graphics code - object collision, camera control, billboard objects maybe.
  • GUI code (but Qt OpenGL wrapper may be based on code that I've written in the past).

Outside Code:

  • Model loading from 3D Studio Max using code posted to class dlist by Ben Hollis, and models obtained from web (maybe).
  • Sound files and texture images will be obtained through Google.
Schedule:
  • March 2: Project proposal completed
  • April 6: Milestone 1 due - world rendered, with characters wandering around, and controls for the player to navigate. Basic GUI in place, along with controls for selecting actions. Characters should have basic AI - pathfinding, and simple behavior selection.
  • April 20: Milestone 2 due - characters should have more advanced AI, should be able to interact with other agents, and civilization advancements should be operational. All of the skills should be implemented.
  • April 31: All major features completed. Begin testing/tweaking.
  • May 3: Project Launch and demo
Gameplay strategies:

There will be virtually unlimited strategies possible, both in terms of what the user teaches the aliens, and who it is taught to. For example, it would be possible to build a warring civilization by teaching warfare skills and emotions such as hostility. Or an intellectual civilization could be built by teaching literacy, artistry, philosophy, etc.

In terms of who is taught, the game user is free to only teach skills to one alien, who acts as a mediator to the rest of the civilization and propagates the knowledge autonomously. Or the game user can individually tutor the aliens, custom tailoring different personalities.

Relevant past work:

This is similar to SimLife, but is different because SimLife only
simulated life, not the development of civilizations. It is sort of like a cross between SimLife and Sid Meier's Civilization.
However, there will be major differences from both of those games:

  • 3-D graphics, with 1st person exploration (SimLife was a 2-D overhead view).
  • Civilization was more of a strategy and world-building game. My game will be more of a character building game, with more nondeterministic behavior.
  • Superior AI (I think SimLife was relatively basic, using genetic algorithms primarily).
  • smaller world - there will be <20 characters; must less than SimLife's hundreds. In SimLife you would of course never identify personally with any particular entities, while this should be possible in my game.

The 15-493 fall 2002 game "Spheres", by Justin Truman (jbt) is slightly similar in that it also focused on behavior-based AI. But my design will be much more open-ended and use different AI algos. The Spheres agents also did not evolve or change during the game I think.