Initial Level Definitions
created: 2025-03-07 04:34:33 UTClast updated: 2025-03-07 06:04:21 UTC
Wanted to write this to show off what the level configuration, or definitions, looked like in the C-version. As I am moving the codebase to C++, I will probably bring over the format, but it may also change down the line.
player:
x: 100
y: 100
map:
rows: 10
columns: 10
file: ./assets/maps/one
textures:
- ./assets/textures/BRICK_3B.PNG
- ./assets/textures/BRICK_1A.png
- ./assets/textures/BRICK_2B.png
- ./assets/textures/light.png
- ./assets/textures/armor.png
sprites:
- x: 500
y: 500
texture: 3
- x: 250
y: 250
texture: 4It is rather self explanatory. The basic things needed for a level are defined in the YAML. First, a player's position. This is in "world" coordinates. Followed by some map data. How many columns and rows along with a path to the map file to be read in by the engine. Textures are just a list of file paths. Last are sprites. Sprite are comprised of world coordinates and a texture number that maps to one of the textures above.
Below is what a map file looks like.
1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 3 1 0 0 0 0 0 0 0 0 3 1 0 0 0 0 0 0 0 0 2 1 1 1 1 1 1 3 3 2 2
The map is just a grid made up of numbers that map to a texture or not a texture. '0' meaning that nothing is there. Any number above '0' should be the number for a texture in the array of textures.