Cytoplane Design Outline

From Superluminon

This was my second serious Game Design Document I've ever made. I'm rather fond of it and consider a personal project, however, I am not currently putting any time towards it at the moment. If you're interested in this project, contact me.
- Alex Trujillo 8 December 2007 (MST)

Cytoplane
The Immune Response of a Nation

Contents

Game Overview

The game has similar elements to city-building and strategy games. The player will build, manage, and control a Cytoplane, a fictional artificially-constructed cell.

This game will be developed to be both entertaining and educational. It will be designed in such a way that it can be professional enough in appearance and adhere to precendents and standards set by other scientific software of its field, so that it can be used within an academic setting. However, it will also be educational in that it provides this information in a more accessible manner than most professional applications. Finally, gameplay will be designed to be fun so as to engage the player to learn more about what they're doing in order to play the game better.

Setting

It is the year 2047. As the world enters a new age in which microbiology plays a significant role in warfare, your nation was forced to form the National Biological Defense Initiative to take an active stance against external biological threats.

Concept

The player will build and direct a special artificially-constructed cell called a Cytoplane. The military draws an analog between a Cytoplane and a warship: depending on its configuration, it could be similar to a carrier, cruiser, or destroyer, to name a few configurations.

The player will be able to build a cell from basic building blocks. These would involve the construction of individual organelles.

The most advanced technology the NBDI has developed to-date is the Macheolus. It is a nanotechnological assembler designed specifically for biological systems. It will be the command center of the player's Cytoplane. It contains no information of its own; it must be directed by the operator (the player) and intercept and interact with the RNA instructions within the cell.

Development of your Cytoplane is in a war-game scenario. The growth of the organism is tracked and the steps that went into creating the Cytoplane will be used to culture a vast army of billions of cells to perform the same tasks that you were put to. This has no bearing on gameplay, but this is how the player's work is explained. Perhaps in a later stage of this game, this sort of mass-warfare would be implemented, however, it is not the main focus.

Rather, the game will focus on the creation of a single cell, and depending on game performance, the outcome of the project is given to the player at the end of the mission.

Game Mechanics

There are several objectives within this game.

Construction

Much as cities have their buildings, vehicles, and roads, the Cytoplane has its proteins. The player will mark locations on an organelle's lipid membrane for the overall type of protein that should be placed there, much how zoning works within SimCity. The player won't have direct interaction with which proteins are placed; more advanced proteins will have to be developed as the cell develops.

Development

There will be tech trees that determine the player's options in constructing and directing their cell. In order to ascend these trees, one must develop certain parts of the cell, working within a set framework with certain rules.

A tech tree is a way to illustrate the progression of development from one set of primitive methods to more advanced ones in a sort of flow chart.

Different methods of biological function could be experimented with and elaborated on through these tech trees, from both an evolutionary standpoint, as well as efficiency.

Operations

Things such as the citric acid cycle must be simulated within this game. Levels of materials such as amino acids, sources of energy such as sugars, as well as development of organelles and supply of enzymes and ribosomes will be managed by the player.

Warfare

Once the cell develops capabilities of an immune cell (as this is a war-game, after all), the objective will be introduced and the Cytoplane must destroy or interact with this objective.

Phagocytosis

One of the more simple objectives might be to gather resources, or to destroy a bacteria by engulfing it in pseudopods.

Antibodies

A more advanced method of targeted defense are antibodies. If a player chooses to build their cell similar to a carrier, they will wish to create many antibodies.

Views

It is necessary that this game be 3D for the reason that it is easier for the player to understand where they are inside the cell. For example, they can see an overview of the cell that can be rotated about the cell's center. To zoom into an organelle in order to work on it, they will mouse over it to highlight it (the highlight consisting of a special wireframe mesh) and then double-click to zoom in. If the organelle was clicked once, it would display an isometric cross-section relative to the player's viewport. Since it was clicked twice, it would do this, as well as zoom into a part of the organelle's cross-section. The player then can rotate (using the middle mouse button) around the organelle, zooming in and out, with the center-point for rotation being the average center of organelle vertices.

The player will also be able to overlay extended views of a cell. These will be colored and attempt to follow what other scientific programs have done in terms of layout, color, and function.

Concentration Views

The concentration of certain solvents and other basic nutrients and wastes of a cell would be shown as an option in the views panel.

For example, when a lysosome is selected, a pH gradient might be shown around the organelle. Proton gradients, distribution of amino acids, sugars, and others, could be selected from a Views panel.

Selection Views

Since there are so many different types of molecules, selection of a protein might yield the location of other proteins of its type inside the cell in a desaturated color. Selection views are different than concentration views since the concentration is shown as gradients (or in other, more academic views, isolines), while the selection view identifies individual selections as points (or in 3D renderer terminology, static particles).

Some examples of progression of isolating a single molecule might be:

  • Views Panel -> Basic Molecule Type Selection (Amino Acid) -> Specific Selection (Arginine)
  • Views Panel -> Macromolecule Type Selection (Protein) -> Specific Selection (Lipase)

When selecting a component of a larger structure inside the Views panel, all instances of that component will be shown, regardless of what it is bonded to. For example, if the ribonucleoprotein was selected, 35% of all ribosomes would be highlighted, while the ribosomal RNA would not be, or would be highlighted in a desaturated color to show the relation.

The highlight would be Phong shaded so as to provide a better sense of depth, and improve graphics quality.

Design Considerations

The game will be complicated, and efforts to reduce the learning curve will be taken, through tutorials and tips, much as other games have.

SimCity has an interesting dynamic that will be emulated within Cytoplane. SimCity was about urban planning, yet its players didn't generally notice that as much as they felt that they were building a city. The player didn't need a degree in urban planning to make the city, nor did they need to understand all the associated complexities. What they understood were the simple game mechanics.

Priorities:

  1. Create a game that is entertaining
  2. The game will also be educational
  3. It will also adhere to the scientific principles it's based on

These priorities will be followed in that order.

Technical Overview

In the interest of time and portability, the Python language will be used for the development of this software. There are several scientific libraries written in Python as well. In order to provide a fully 3D, interactive environment, the Python bindings to the Ogre3D rendering engine will be used, Python-Ogre. Ogre3D is a popular, well-documented engine, and the Python bindings have doc strings for each function and a decent API reference.

The Python language is not very fast, and it is not the intention to create the next Folding@Home software. Instead, keeping things simple and fun, while also providing the optional depth that would befit a biologist and/or power gamer, would be key to development of this game.

Technical Overview

It is important that individual tasks of the software be broken down and identified.

Particles

Points where a molecule lies within a cell are represented by particles. These particles will need to:

  • Respond to user input; highlighted, selected
  • Have information such as molecule type associated with them-- They will represent visually a basic building block of a macromolecule. The program will still keep track of the chemical make-up of this molecule through molecule data, however.
  • Be displayed graphically within the 3D interface
  • Have direction, so when chained in a certain order, then folded, the direction will be kept track of
  • Form associations with other particles
  • Change position dynamically within the cell, while also maintaining their association with other particles using a skeleton system

Particles will not represent individual atoms within the primary display of the cell. The representation will be taken one step up, where they will represent amino acids (for proteins), sugars (for carbohydrates), nucleotides (for nucleic acids), etc. The molecules will be detailed by textures for that particle.

In respect to the renderer itself, particles with the billboard property will be textured with the molecule as rendered by Python chemistry software.

Resolution-Independence

An innovative aspect of the game will be its procedural aspect. Since much of the graphical game assets will be molecules, it may prove to be worthwhile to distribute information on the molecules and not renderings of them. The player's computer can then compile a library of molecules on their own computer, or, if fast enough, could possibly render them in near real-time, and cache them in memory.

Initially, molecules will be pre-rendered, as this is a low priority, however. The molecule rendering system can be implemented to hand off the renderings to the Ogre engine later.

Roadmap

Version 0.0

0.0 is not so much a version so much as it is a preparation phase.

  • Learn Python programming (syntax, functions, etc)
  • Develop and learn about software architecture
  • Experiment with game design using pygame's simpler graphics features
Note: Due to the simple 2D interface of pygame, some aspects of gameplay may not have to be implemented inside of Python-Ogre until later.

Version 0.1

  • Implement Python-Ogre renderer
  • Integrate pygame with Python-Ogre
  • Focus on creating rendering system

Version 0.2

  • Add code for game engine
  • Add basic game data, such as molecule data

Version 0.3

  • Implement scripting and events system
  • Add game scripts such as those for organelles, which add rules to the game

Version 0.4

  • Add procedural elements: textures, placement of molecules (much like procedural cities), etc
  • Add more art and fine-tune graphics