teratogen

command
v0.0.0-...-e6da677 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 21, 2013 License: GPL-3.0 Imports: 4 Imported by: 0

Documentation

Overview

Teratogen is a survival horror roguelike game.

Write the general documentation here.

- The map has hexagon geometry, but looks isometric due to tricks with the tiles.

- The map geometry is noneuclidean. Map cells may be portals that lead to arbitrary places elsewhere in the game world.

- The overall architecture is based on building the full application out of stateful system objects that refer to each other in an acyclic graph. Each system object generally has a single instance, and takes care of a single aspect of the game, like rendering the world map or running field-of-view computations.

- Animations in the game screen are triggered by game events, but do not affect game events back or block new game events. You should be able to make the game run as fast as you can hit the keys.

- The game assets are embedded into the game executable by packing them into a .zip file and catenating the .zip file into the executable.

Tricky things:

- The sources of randomness should be controllable in the architecture. The game uses psedorandom number generators that are fully deterministic once their seed value is known. Other available sources of partial randomness are the bit values of the memory addresses of objects and the iteration orders for the built-in map data structures. Algorithms that use pseudorandomness should not rely on either. The design ideal is that the game will play exactly the same every time when run with the same random number seed and the same user input.

Directories

Path Synopsis
Package action defines the system for performing complex operations on the game world, such as game character behavior.
Package action defines the system for performing complex operations on the game world, such as game character behavior.
Package app provides a singleton toplevel game application wrapper.
Package app provides a singleton toplevel game application wrapper.
Package archive provides an unified interface to various file storage devices.
Package archive provides an unified interface to various file storage devices.
Package babble implements Bubble Babble encoding and decoding, as specified by http://wiki.yak.net/589.
Package babble implements Bubble Babble encoding and decoding, as specified by http://wiki.yak.net/589.
Package cache provides in-memory storage structures for static assets such as images.
Package cache provides in-memory storage structures for static assets such as images.
display
anim
Package anim contains display logic for transient effect animations in the game view.
Package anim contains display logic for transient effect animations in the game view.
fx
Package fx provides a high-level API for invoking game events that are converted into user interface visual effects.
Package fx provides a high-level API for invoking game events that are converted into user interface visual effects.
hud
Package hud handles displaying onscreen status readouts and messages during gameplay.
Package hud handles displaying onscreen status readouts and messages during gameplay.
util
Package util contains utility functions for the on-screen display.
Package util contains utility functions for the on-screen display.
view
Package view handles drawing the persistent game world on screen.
Package view handles drawing the persistent game world on screen.
Package entity provides interfaces for the game world entities, such as items and creatures.
Package entity provides interfaces for the game world entities, such as items and creatures.
Package factory contains data and utilities for generating game entities.
Package factory contains data and utilities for generating game entities.
Package font reads TrueType font files and renders them into bitmaps that can be used in games.
Package font reads TrueType font files and renders them into bitmaps that can be used in games.
Package fov implements a field-of-view algorithm for manifold maps.
Package fov implements a field-of-view algorithm for manifold maps.
Package gfx provides miscellaneous graphics utilities.
Package gfx provides miscellaneous graphics utilities.
Package mapgen defines the system for generating new game levels and populating them with entities.
Package mapgen defines the system for generating new game levels and populating them with entities.
Package mob defines the types for the creatures in Teratogen.
Package mob defines the types for the creatures in Teratogen.
music
mod
Package num provides miscellaneous numerical utilities.
Package num provides miscellaneous numerical utilities.
Package query defines methods for complex queries about the game world state.
Package query defines methods for complex queries about the game world state.
Package screen defines the toplevel application states for Teratogen.
Package screen defines the toplevel application states for Teratogen.
Package sdl provides partial bindings for the SDL multimedia library.
Package sdl provides partial bindings for the SDL multimedia library.
Package ser provides serialization support for implementing save games.
Package ser provides serialization support for implementing save games.
Package space provides tools for working with a game world with portals.
Package space provides tools for working with a game world with portals.
Package tile provides utility functions for hexagon tile maps.
Package tile provides utility functions for hexagon tile maps.
Package typography handles printing text on a graphical display.
Package typography handles printing text on a graphical display.
Package world defines the structure you want to store when you save the game.
Package world defines the structure you want to store when you save the game.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL