73 lines
2.7 KiB
TOML
73 lines
2.7 KiB
TOML
[general]
|
|
description = "GEneric Sprite and Tile Engine"
|
|
website = "https://github.com/Fabien-Chouteau/GESTE"
|
|
authors = ["Fabien Chouteau <fabien.chouteau@gmail.com>"]
|
|
maintainers = ["fabien.chouteau@gmail.com"]
|
|
maintainers-logins = ["Fabien-Chouteau"]
|
|
tags = ["game", "nostd", "rendering", "sprite"]
|
|
long-description = """
|
|
|
|
[](https://travis-ci.org/Fabien-Chouteau/GESTE)
|
|
[](https://codecov.io/gh/Fabien-Chouteau/GESTE)
|
|
|
|
GESTE is a sprite and tile 2D render engine designed to run on
|
|
micro-controllers low performance systems. GESTE also provides a basic math and
|
|
physic engine using fixed point arithmetic.
|
|
|
|
## Creating maps
|
|
|
|
GESTE is developed in parallel with
|
|
[tiled-code-gen](https://github.com/Fabien-Chouteau/tiled-code-gen), a tool
|
|
that generates code from the [Tiled Map Editor](https://www.mapeditor.org/).
|
|
|
|
## Examples
|
|
|
|
The crate `geste_examples` contains 3 examples of different game genre:
|
|
- platformer
|
|
- RPG
|
|
- racing
|
|
|
|
## Design
|
|
|
|
### Layers
|
|
|
|
In GESTE, a scene is made of layers. Native layers can be `Sprite`, `Grid` or
|
|
`Text`. You can implement you own type of layers if you want to.
|
|
|
|
- `Sprite` layers display a single tile at a given position
|
|
- `Grid` layers display a grid of tiles at a given position
|
|
- `Text` layers display a text at a given position
|
|
|
|
Layers have a priority which tells in which order they will be drawn on the
|
|
screen.
|
|
|
|
### Rendering
|
|
|
|
The rendering algorithm is somewhat similar to ray casting. Instead of taking
|
|
each objects of the scene and drawing it on the screen, the engine takes each
|
|
pixel and tries to find its color from the different objects of the scene.
|
|
|
|
For each pixel of the area that is being drawn, GESTE will go through the list
|
|
of layers and see if the corresponding pixel inside the layer is transparent or
|
|
not. When a non transparent pixel is found, the pixel is pushed to the screen
|
|
and the procedure starts again for the next pixel. If all the layers have a
|
|
transparent pixel, the background color is used.
|
|
|
|
The more layers to go through, the more time time it will take to render a
|
|
pixel.
|
|
|
|
"""
|
|
|
|
project-files = ["geste.gpr"]
|
|
|
|
licenses = ["BSD 3-Clauses"]
|
|
|
|
["1.1.0"]
|
|
origin = "https://github.com/Fabien-Chouteau/GESTE/releases/download/v1.1.0/GESTE-1.1.0.zip"
|
|
origin-hashes = ["sha512:55da4926a318a664e798131b094711d8eef151c0ff905ae13fbc5d2c116b1c7724d936b6e5a37ace5b72c49980b7c6ae8549a261501b861e4d5af5101931efef"]
|
|
|
|
["1.0.0"]
|
|
origin = "https://github.com/Fabien-Chouteau/GESTE/releases/download/v1.0.0/GESTE-1.0.0.zip"
|
|
origin-hashes = ["sha512:d87e6472c6b2bda224926fb69809202f9ef8cb644322e55e6e618ac1634458c22b6a3253f558082f9aae9fcd5ebc46e74f4c9b8c57ea353f8fa9ad6812cf31fc"]
|
|
|