Update Design Doc: `level` tool

master
Ashley N. 2023-09-07 21:31:40 +00:00
parent c19b2f6e90
commit 5fd5c7f12f
1 changed files with 5 additions and 5 deletions

@ -25,13 +25,10 @@ The string property `reskit-layer` set on a Tile Layer indicates which layer sho
Tile layers without `reskit-layer` set are ignored by the `level` tool. If no tile layer is specified using the `reskit-layer` property, or you use a setting invalid for the selected system, you will receive an error on the command line. Tile layers without `reskit-layer` set are ignored by the `level` tool. If no tile layer is specified using the `reskit-layer` property, or you use a setting invalid for the selected system, you will receive an error on the command line.
## Collision Map ## Collision Map
The boolean property `reskit-collision` set on a Tile Layer to `true` indicates which layer should be used for building the tile collision map. Any non-zero item placed indicates a tile which the player is not permitted to pass through. How you implement this is up to your game engine - reskit will simply save the collision map in a `.bin` file as an artifact (`collision.bin`). The boolean property `reskit-collision` set on a Tile Layer to `true` indicates which layer should be used for building the tile collision map. Any non-zero item placed indicates a tile which the player is not permitted to pass through. How you implement this is up to your game engine - reskit will simply save the collision map in a `.lvc` file as an artifact (`collision.lvc`).
If no layer is defined with `reskit-collision` you will receive a warning on the command line. Generally most maps should include collision data - it is NOT auto-generated! If no layer is defined with `reskit-collision` you will receive a warning on the command line. Generally most maps should include collision data - it is NOT auto-generated!
### Format of the Collision Map
The collision map is just an array of 8-bit unsigned integers laid out with the same tile dimensions as your visible layers. 0 is a free area, while 1 is a collision area.
## Entity-Component System ## Entity-Component System
Reskit assumes a best-practice entity-component engine design and the objects defined in your .tmx file effectively serve as the entities. By adding a property `reskit-component[x]` to each object, where x is the index of the component in an array, you can attach various components to the target object/entity. Each component may have various properties you choose to define, which can be formatted as Tiled property `reskit-component[x].y`, where x is the index of the component and y is the property name for that component. If multiple object layers are defined, reskit will collapse all of them into a single layer. Reskit assumes a best-practice entity-component engine design and the objects defined in your .tmx file effectively serve as the entities. By adding a property `reskit-component[x]` to each object, where x is the index of the component in an array, you can attach various components to the target object/entity. Each component may have various properties you choose to define, which can be formatted as Tiled property `reskit-component[x].y`, where x is the index of the component and y is the property name for that component. If multiple object layers are defined, reskit will collapse all of them into a single layer.
@ -57,7 +54,10 @@ health = {
## .bin Format (Tiles) ## .bin Format (Tiles)
This is a system-specific binary format of tiles formatted for your target system. Normally you would take this data and DMA it to the video display hardware in your homebrew. This is a system-specific binary format of tiles formatted for your target system. Normally you would take this data and DMA it to the video display hardware in your homebrew.
## .lvl Format ## .lvc Format (Level Collision)
The collision map is just an array of 8-bit unsigned integers laid out with the same tile dimensions as your visible layers. 0 is a free area, while 1 is a collision area.
## .lvl Format (Level)
The .lvl format is output by the `level` tool. It is a binary format ideal for use on a 8-bit or 16-bit game console. All coordinates use (0,0) upper left as an origin. The .lvl format is output by the `level` tool. It is a binary format ideal for use on a 8-bit or 16-bit game console. All coordinates use (0,0) upper left as an origin.
### Entity Data ### Entity Data