Crate gemini_engine
source ·Expand description
Introduction
Gemini is a monospaced ASCII rendering engine, capable of 2D and 3D rendering. This is a loose port of GeminiEngine which was made in Python but was scrapped due to performance limitations.
IMPORTANT: You HAVE to use a monospace font in the terminal for the engine to render the view properly.
Go to elements for a quick start guide.
Crate Structure
This library is made up of three main crates:
gameloop, which handles the gameloop. See thegameloopdocumentation to see how to structure the usual Gemini project.elements, which handles the printing of various objects to aView, the central object in a Gemini project.elements3d, which handles everything 3D-related. Objects thatelements3dconverts to a 2d object will then be printed to the screen by aView
Modules
- Gemini’s core elements module. This and the
viewmodule make up Gemini’s core rendering pipeline. - Gemini’s implementation of 3D rendering. Experimental
- The gameloop is one of Gemini’s most important features. If you read the Quick Start guide, you’ll have seen that the example there didnt have a fully written gameloop. When you begin building larger projects with Gemini, this is what your code should look like
Macros
- You can use the
fps_gameloop!macro to avoid writing a lot of boilerplate code. Take this block of code from a program written with gemini