So making a dungeon for other people to play and enjoy is great. But the maker doesn't get near as much excitement when he knows about every room, puzzle, monster, etc... I have been trying to figure out how far I can take this modding to make a dungeon more dynamic so even the maker may not know exactly what to expect when he plays.
There are some things I am certain are possible. Use of math.random() to create the varying numbers. With scripting, we can dynamically create objects, place them at random or varying locations. We can do the same for monsters, including varying their health or other attributes too. I am almost sure we can even give monsters varying items to hold. We can set different puzzle solutions (random lever combinations for example...). There is very good potential.
Where the limit of this game modding capability may lie, is in dynamic creation of the levels themselves. Also unknown level control.
Here are some questions. Any help on them would be great:
1) Can we dynamically create layer squares? I am referring to the 3rd editor mode where you can lay down floors, walls, etc... The "spawn" command does not understand any of these tile names. There are a few floors tiles available as assets in mode 2, like "dungeon_floor_1" for example. Maybe that can work but I don't think its the same thing. And I fear too much spawning of assets like these will bog the game down. Is there another way? For example, if you open Dungeon.lua, you will see layer tables for each level. I want to be able to dynamically build these layer objects.
2) Do we have access to the level world coordinates and can we modify them? I am referring to how you define the X, Y and Z of your levels. We cannot seem to get access to these level objects let alone modify them. Wouldn't it be cool if you can vary which level is west of another? You can dynamically change the dungeon layout on each play.
3) If we cannot move a level to a certain X,Y,Z coordinate can we at least make a forest_exit entity go to another level? These things always go to edge of the next level in that direction. I wish we could make it dynamic as to where it goes.
Anyway, like I say, I may be asking too much.