[][src]Crate piston

A modular game engine written in Rust.

This is the core library of the Piston Game engine. The Piston core library reexports the core modules.

If you are looking for a convenient window wrapper, see piston_window.

For examples, see piston-examples.

For more information and an overview, see Piston's README in the core repository.

About Piston as a Game Engine

Piston is a modular game engine with a minimal core abstraction. The core connects input events, window and event loop.

Piston is designed for optimal modularity, making it optional to even use the core modules in many cases. The goal is to have as little abstraction as possible, while making larger libraries as independent as possible. The motivation is to encourage diversity and experimentation with various abstractions, without getting tied up to a fixed set of platforms, abstractions or vendors. You can combine Piston with any other library in Rust's ecosystem. This design has worked very well so far.

For example (a few libraries, there are many more):

  • Image library is standalone from both the core and the 2D graphics library, only connected through the 2D graphics backends.
  • Piston's 2D graphics is optional and can be used without a window backend. The window backend can be used without a 2D graphics backend, and so on.
  • For image processing, see Imageproc.
  • Dyon is a Rusty dynamically typed scripting language, using a lifetime checker without garbage collection.

For more information and an overview, see Piston's README in the core repository.

When writing a library, please depend directly on the core module needed. This makes it less likely that the library will break.

When writing an application, it is acceptable to use the Piston core. To use it you usually need a window backend:

There are a few other window backends as well.

Plus a 2D graphics backend (optional):

There are a few other graphics backends as well.

You will find examples of how to get started in each 2D graphics backend repository.

About Piston as a Project

The Piston project is a huge collaboration across many projects, mainly focused on maintenance of libraries and research. Since this has been going on since 2014, there is too much out there to summarize here, but rougly the project is organized into two open source organizations:

In addition we collaborate across organizations with other projects, mainly:

  • Gfx-rs - everything 3D graphics related
  • RustAudio - everything audio related

In addition there are many other projects and organizations.

For more information and an overview, see Piston's README in the core repository.

Re-exports

pub extern crate input;
pub extern crate event_loop;
pub extern crate window;