Add GESTE v1.1.0

This commit is contained in:
Fabien Chouteau
2020-01-19 22:52:03 +01:00
committed by Alejandro R Mosteo
parent ba62d654b7
commit a79718f471
+58
View File
@@ -4,11 +4,69 @@ 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 = """
[![Build Status](https://travis-ci.org/Fabien-Chouteau/GESTE.svg?branch=master)](https://travis-ci.org/Fabien-Chouteau/GESTE)
[![codecov](https://codecov.io/gh/Fabien-Chouteau/GESTE/branch/master/graph/badge.svg)](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"]