zbizu
Legendary OT User
What do you think about generating areas such as surfaces or dungeons as other games did before?
Imagine spawning different structures on certain places and changing it without restarting the server.
All we need are good structure spawners and even greater auto-border.
However, I wanted to go one step further.
What if we used seeds so we can get same math.random pattern everytime as in Minecraft?
We can even generate structures, but it's a bit more complicated proccess(it conflicts with auto-border, but it's possible). It works even better with dungeons, imagine the possibilities.
map generator in my evo datapack, test run
(if you have slow internet or limited plan: picture size: 6 MB!)
https://i.imgur.com/Q6vz1d9.gif
So...
What do you think? Do you find a system like that useful?
Goals:
(keep in mind that those are planned features, not promised ones)
Imagine spawning different structures on certain places and changing it without restarting the server.
All we need are good structure spawners and even greater auto-border.
However, I wanted to go one step further.
What if we used seeds so we can get same math.random pattern everytime as in Minecraft?
We can even generate structures, but it's a bit more complicated proccess(it conflicts with auto-border, but it's possible). It works even better with dungeons, imagine the possibilities.
map generator in my evo datapack, test run
(if you have slow internet or limited plan: picture size: 6 MB!)
https://i.imgur.com/Q6vz1d9.gif
So...
What do you think? Do you find a system like that useful?
Goals:
(keep in mind that those are planned features, not promised ones)
Let me know if I missed something mentioned in this thread
miscellaneous:
- improve threading, reduce RAM consumption *Done!*
- make it possible to draw the map identical everytime the same seed is on input of certain config - *Done!*
- move rand to lua and rework math random *Done!*
- use layers instead of some functions to make core more flexible *Done!*
- standarize files structure for both distributions *Done!*
- move initialization to onStartup *Done!*
- lightweight spawn system (tracking monsters existence)
save game:
- function to save in-game objects as structures (requested)
- save maps as otbm (requested, easy to implement)
- dump dungeon data to a file
quests, tasks and riddles:
- daily dungeon mission with reward (requested)
- complex quest with riddle example (requested) - will serve as an example
- chests generator
autoborder:
- 3x3 scanning *Done!*
- use rme brushes *Done!*
- bordering order *Done!*
- fix outer border *Done!*
- test inner border *Done!*
- smooth algorhytm for unstackable borders (like earth brush and port hope wooden tiles) *Done!*
- gray mountain custom border to match every case
bring back features from EvoRPG map generator:
- manual conversion of EvoRPG dungeons to new format
- later - the generator is still missing many important functions
- rework/bring back mapgen management channel (make build command safe, add more commands) (requested)
terrain brushes:
- random grounds *Done!*
- cave (hunt and kill for mazes based algorhythm, using cells for reference)
- firework-shaped cave curves
- tunnels (EvoRPG algorhythm) *Done!*
- mazes (hunt and kill algorhythm in 2d and 3d modes)
- island (split perlin noise to events?)
- mountains (modified EvoRPG cave algorhythm)
single brushes:
- create entry/exit (to do: entry, use structures as spawns) *In Progress*
- details placing
structures:
- premade structures (requested)
- structures with negative offset support
- structured maze (with premade cell chunks)
- stairs/ladders/ropespots/pickholes/teleports/multi-floor structures
- villages / towns (cells highly possible)
mapgen management window(modal):
- open/close map
- generate/remove map
- get players in dungeon
- kick/ban players from the map
- enable/disable map whitelist, manage whitelist
- broadcast message to players in specific dungeon
- broadcast message to players in all dungeons
- set time to end (shorten/extend)
- change monsters spawntime
- temporary rename dungeon
- change seed
- save current state as otbm, send lag warning, split to events if possible
mods support (requested):
- *partially implemented* (to install drop files and restart ot)
rme brushes loader (requested):
- load brushes from XML file *Done!*
- convert brushes to Lua *Done!*
- make it possible to merge basic brushes with extensions
backwards compability with 0.4 (8.6 support): *Done!*
- auto detect tfs branch (0.4, 1.x) *Done!*
- 0.4 compat file *Done!*
- adapt the code to weird lib loading *Done!*
*rejected* multiple instances of a dungeon - not likely to happen until I come up with an idea of perfect map space management (or until someone write multiple instances system for TFS)
miscellaneous:
- improve threading, reduce RAM consumption *Done!*
- make it possible to draw the map identical everytime the same seed is on input of certain config - *Done!*
- move rand to lua and rework math random *Done!*
- use layers instead of some functions to make core more flexible *Done!*
- standarize files structure for both distributions *Done!*
- move initialization to onStartup *Done!*
- lightweight spawn system (tracking monsters existence)
save game:
- function to save in-game objects as structures (requested)
- save maps as otbm (requested, easy to implement)
- dump dungeon data to a file
quests, tasks and riddles:
- daily dungeon mission with reward (requested)
- complex quest with riddle example (requested) - will serve as an example
- chests generator
autoborder:
- 3x3 scanning *Done!*
- use rme brushes *Done!*
- bordering order *Done!*
- fix outer border *Done!*
- test inner border *Done!*
- smooth algorhytm for unstackable borders (like earth brush and port hope wooden tiles) *Done!*
- gray mountain custom border to match every case
bring back features from EvoRPG map generator:
- manual conversion of EvoRPG dungeons to new format
- later - the generator is still missing many important functions
- rework/bring back mapgen management channel (make build command safe, add more commands) (requested)
terrain brushes:
- random grounds *Done!*
- cave (hunt and kill for mazes based algorhythm, using cells for reference)
- firework-shaped cave curves
- tunnels (EvoRPG algorhythm) *Done!*
- mazes (hunt and kill algorhythm in 2d and 3d modes)
- island (split perlin noise to events?)
- mountains (modified EvoRPG cave algorhythm)
single brushes:
- create entry/exit (to do: entry, use structures as spawns) *In Progress*
- details placing
structures:
- premade structures (requested)
- structures with negative offset support
- structured maze (with premade cell chunks)
- stairs/ladders/ropespots/pickholes/teleports/multi-floor structures
- villages / towns (cells highly possible)
mapgen management window(modal):
- open/close map
- generate/remove map
- get players in dungeon
- kick/ban players from the map
- enable/disable map whitelist, manage whitelist
- broadcast message to players in specific dungeon
- broadcast message to players in all dungeons
- set time to end (shorten/extend)
- change monsters spawntime
- temporary rename dungeon
- change seed
- save current state as otbm, send lag warning, split to events if possible
mods support (requested):
- *partially implemented* (to install drop files and restart ot)
rme brushes loader (requested):
- load brushes from XML file *Done!*
- convert brushes to Lua *Done!*
- make it possible to merge basic brushes with extensions
backwards compability with 0.4 (8.6 support): *Done!*
- auto detect tfs branch (0.4, 1.x) *Done!*
- 0.4 compat file *Done!*
- adapt the code to weird lib loading *Done!*
*rejected* multiple instances of a dungeon - not likely to happen until I come up with an idea of perfect map space management (or until someone write multiple instances system for TFS)
Last edited: