OC Development Methodology (part 2)

Welcome back! When last we left our super hero (villain) we had looked at the basic requirements for land and denizens in the forms of a generation engine and an Artificial Intelligence Engine, respectively. One major item lacking at this point that is required for any adventuring type game is a full story. We know the outline of the story: swept away pre-death to new planet (moon), open gates and create a new world all while surviving. If arriving on the new planet is the start and opening the last gate to form the land beyond is the end, then we are definitely missing all the parts in between.

While the concept of meeting strange and exotic creatures and killing them is a good filler for any story arc, the essential chapters – creating a cohesive and immersive storyline – need to be written. A little side track here, if you have ever been the game master for demanding role players (and what good role player isn’t demanding?) then you know the amount of time and work required to create a simple campaign that your players will enjoy. For what amounts to 10 hours of actual game play for the players might take weeks in preparation time for a good game master. And when you are talking weeks of immersive video game play for a single player, who lack the distraction and entertainment provided by other players, you could easily be talking months of preparation time.

For Omega Connection, some of this preparation time is handled through the generation engine, where it is hoped a rich vibrant world will be steadily unveiled; and in the AI engine where computer played characters are brought to life and provide a complex and interesting level of interaction. The rest of the preparation time required resides in the subplots, quests and mini-quests that help to spur a character on and create a video game that continues to be fun long after taking your first tentative steps. All of this is possible to write and include in a static world video game, and were it feasible I would happily take breaks away from programming or creating 3D meshes in order to create that beautiful set of scripts which would guide the player from beginning to end, as well as provide diversion for the parts in between; but it is not feasible.

Omega Connection is a dynamic world, a dynamic setting that could be drastically changed at any time throughout the game by the player’s actions. It is impossible to hardcode in a quest that says, “Bring this message to Princess Engorgedbutt over in Everlasting City” when there might not be an Everlasting City or even a single princess existing in game! Effectively, the subplots, quests and mini-quests all need to be as dynamic as the rest of the game. Enter the quest engine.

The quest engine will accomplish this through a few different methods. The first, and easiest, will involve a bounty board in each town, related to the happenings in and immediately surrounding that town. Basically these are your mini-quests. A party of orcs moves in near a farm and, poof, bounty. Simple enough.

The second method is all about interacting with the generation and AI engines. We already know there might not be a Princess Engorgedbutt anywhere in the game, but there will always be some computer controlled characters located some place along a computer generated landscape. And each of these characters have things they like and things they do not like. In a nutshell, the quest engine’s job will be to match up higher level AIs with actions the player might be able to perform for them. Find one of these characters and you might walk away with a quest.

The third method is about the subplots within the game, and this method I am keeping to myself (I did use the word villain above). There is a plan for dynamically creating diverse and interesting subplots, but some things are best saved until they can be seen in action.

Calling the quest engine thoroughly designed for our purposes, we can now produce a nice top-down hierarchy for design, allowing for that easier to follow bottom-up hierarchy for development, which looks something like this:

  1. Omega Connection Online
    1. Game definition
  2. Omega Connection Multiplayer
    1. Client/Server networked architecture
    2. Various engines moved to server piece
  3. Omega Connection
    1. Design Elements
      1. Story line
        1. actors
          1. screen writing
          2. models
          3. voices
          4. sound effects
        2. events
          1. art work
          2. special effect concepts
          3. sound effects
        3. places
          1. art work
          2. models
          3. sound effects
    2. Development Elements
      1. User Interface
        1. rendering engine
      2. Generation Engine
        1. Landscape types
        2. Building types
        3. Roadway types
        4. Generation rules
        5. Trap spot-checker (?)
      3. AI Engine
        1. Simple tasks (pathfinding, flocking)
        2. Character interactive AI
        3. Complex AI
          1. Needs
          2. Wants
          3. Desires
          4. Motivations
        4. Character AI prioritizer
      4. Quest Engine
        1. Bounty tracker
        2. Quest generation
          1. Landscape interface
          2. AI interface
          3. quest scripting
        3. Subplot generation

Nice, simple and clean for the most part. I will periodically delve into different aspects of the various design or development areas while I bounce around between tasks or as a persistent thought gets stuck in my head. Until then, dream big.