From a79718f471afc8ec163cf22bb4beafdfdc59a665 Mon Sep 17 00:00:00 2001 From: Fabien Chouteau Date: Sun, 19 Jan 2020 22:52:03 +0100 Subject: [PATCH] Add GESTE v1.1.0 --- index/ge/geste.toml | 58 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/index/ge/geste.toml b/index/ge/geste.toml index ac4101b5..317dbb32 100644 --- a/index/ge/geste.toml +++ b/index/ge/geste.toml @@ -4,11 +4,69 @@ website = "https://github.com/Fabien-Chouteau/GESTE" authors = ["Fabien Chouteau "] 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"] +