This project is created with the main purpose of learning (and perhaps teaching) a little bit of game development, the tools used and the methods applied. This crate is a living document and a platform for experimentation.
This project is created with the main purpose of learning (and perhaps teaching) a little bit of game development, the tools used and the methods applied. This crate is a living document and a platform for experimentation, see sections Background and Progress for the journey. The Tricks and Tips section elaborates on related tools and libraries used. Everything is WIP, expect no release until 2077.
## Prerequisites
## Prerequisites
...
@@ -27,10 +27,27 @@ Tested mainly under win10.
...
@@ -27,10 +27,27 @@ Tested mainly under win10.
-[Tiled](https://www.mapeditor.org/)
-[Tiled](https://www.mapeditor.org/)
-[Piskel](https://www.piskelapp.com)
-[Piskel](https://www.piskelapp.com)
## Documentation
## Related Documentation
-[Cheatbook](https://bevy-cheatbook.github.io/)
-[Cheatbook](https://bevy-cheatbook.github.io/)
---
## Tricks and Tips
### Piskel 0.14.0
Typical workflow:
- Tile sheets:
- Decide on the size of each tile, e.g. 16*16 pixels, 32*32, 64*64 (I believe this is the current maximum for use in `bevy_ecs_tiledmap`).
- Select "Resize" to set the size of the canvas, e.g. 10 * 10 tiles (in the case each tile size is 16, this means 160 * 160). There are some options here to resize, re-position the current canvas if you already started out painting. You may store the default canvas size as well, so a new instance will automatically inherit the setting (new Canvas "+" upper right corner).
- Select "Setting/Grid" grid size "1", and grid setting "16" (matching the size you chose for your tiles). (Grid size is currently limited to 2^n, e.g., 8, 16, 32, 64).
- When working with your tile tile sheet you may want to preview how a tile would look when "tiled"
---
## Background
## Background
Starting from a clean slate (never did any modern games programming, though I was attempting to program games in the early days of the C64 and later Commodore Amiga). For me best way to learn is by doing, experimenting and playing around, so let's dig into it. Rust as language was a natural choice since I work with Rust on a daily basis, both as a researcher/teacher at Luleå University of technology (LTU) and as expert consultant for Grepit AB. In both cases focus is on embedded programming where where we adopt Rust due to language properties (zero-cost abstractions, memory safety, modularity etc.) as well as the excellent ecosystem (building and versioning) together with a very active and welcoming community.
Starting from a clean slate (never did any modern games programming, though I was attempting to program games in the early days of the C64 and later Commodore Amiga). For me best way to learn is by doing, experimenting and playing around, so let's dig into it. Rust as language was a natural choice since I work with Rust on a daily basis, both as a researcher/teacher at Luleå University of technology (LTU) and as expert consultant for Grepit AB. In both cases focus is on embedded programming where where we adopt Rust due to language properties (zero-cost abstractions, memory safety, modularity etc.) as well as the excellent ecosystem (building and versioning) together with a very active and welcoming community.