Crate planetkit [] [src]

PlanetKit

PlanetKit is game programming library with a strong focus on:

  • Mutable voxel-based planets
  • Arbitrarily large universes
  • Modularity and composability.

It is intended as a high-level "batteries-included" toolkit for a relatively narrow set of game styles.

Project status

The project is very young, and in a state of rapid flux.

The API is far from stable, and documentation is sparse at best. In lieu of API stability, if you do use PlanetKit for anything, I'll do my best to help you deal with the inevitable breakage.

I intend to publish the library to crates.io as soon as I have a token example game that uses PlanetKit as any other application would. At the moment, my example application and the library are too tangled for me to honestly call it a library ready for any kind of third party use.

High-level design

PlanetKit's architecture is based on the entity-component system pattern, and uses the Specs crate to implement this. Therefore the primary means of extending PlanetKit and composing different components written for it is through the use of Specs Components and Systems.

I am keeping a close eye on Froggy as a potential replacement for Specs further down the line. This would imply significant API breakage.

Modules

app
camera
cell_dweller
globe
grid
input_adapter
movement
net
render
simple
types
window

Structs

AppBuilder

Builder for [App].

LogResource
Spatial

Translation and rotation relative to some parent entity.

Traits

AutoResource

Resources that know how to ensure their existence using only a reference to a World.