simplest possible "terraria-like": (placeholder name libreworld, a pun on "open-world")
- `libreworld-gen [options] > world.bmp`
-> libreworld writes a bitmap to stdout
-> one byte per pixel, but only ~10 materials are actually used during worldgen
- air
- dirt
- stone
- sand
- snow
- wood
- leaves
- a couple types of ore
-> rest of the palette is for craftables.
- `libreworld-play [options] player.scm world.bmp`
-> loads player.scm (you'll see) into world.bmp
-> now the game handles all the important stuff like loading chunks, letting the user deform the world (with structural diffs), spawning and managing entities, and of course actually rendering the world as tiles rather than pixels.
-> things like "material "chest" occupies its own block and two blocks to its right" is defined here
-> things like "sand falls" and "water flows" is also defined here
- `player.scm`
-> inventory, equipment, whatever else is defined here
game core implemented in c, with performance non-critical parts and extension, config, modding, etc. implemented in s7 scheme. "business model" (to borrow a term from non-gratis software) is basically luanti: depend on community to make extensions that play nice with each other.
- `libreworld-gen [options] > world.bmp`
-> libreworld writes a bitmap to stdout
-> one byte per pixel, but only ~10 materials are actually used during worldgen
- air
- dirt
- stone
- sand
- snow
- wood
- leaves
- a couple types of ore
-> rest of the palette is for craftables.
- `libreworld-play [options] player.scm world.bmp`
-> loads player.scm (you'll see) into world.bmp
-> now the game handles all the important stuff like loading chunks, letting the user deform the world (with structural diffs), spawning and managing entities, and of course actually rendering the world as tiles rather than pixels.
-> things like "material "chest" occupies its own block and two blocks to its right" is defined here
-> things like "sand falls" and "water flows" is also defined here
- `player.scm`
-> inventory, equipment, whatever else is defined here
game core implemented in c, with performance non-critical parts and extension, config, modding, etc. implemented in s7 scheme. "business model" (to borrow a term from non-gratis software) is basically luanti: depend on community to make extensions that play nice with each other.