Greetings. My preferred moniker is Hextator (and "Hex" is my preferred nickname) and I am relatively new to the Minecraft community. However, I am not new to developing customizations of various games, and starting about 10 years ago I taught myself assembly (starting with ARM/Thumb) to launch into the world of game modification with the intent of developing my own games sometime in the future.
As the title suggests, I'd like to share a Minecraft project I've been working on, having been gifted the game and playing it for just over a year to the point of seeing the release of structure blocks in version 1.10. This project was developed in cooperation with Patricius, who did much of the actual building of generation content. I assisted with this task to some extent, but my greatest contribution to this project was formulating its concept, writing the necessary commands (within the game client) and the dungeon generation program itself, as well as testing Pat's work (and my own) to ensure there were no problems and that the produced content is of utmost quality.
The project is a Python script written to take advantage of the new structure block system to generate "Complete the Monument" style maps as inspired by Vechs. Output of the script is a series of commands to be used in the Minecraft client itself. These commands will, when executed in the correct order as output by the script, teleport the player to specific coordinates and perform "one-command" style command execution of multiple structure block placement and activation commands from a single command block at each location.
- Selecting structure blocks to use from the folder in which they are contained
- Arrange them in a valid pattern based on meta-data contained within the structure's file names and associated plain-text "schematic" files of the same names
- Ensure the arrangement allows for randomized rotation and mirroring of the structures, to take full advantage of the structure block's power to afford great variance of generated dungeons
- Print the series of commands, minimized to as few as possible, to execute within the game client to perform the placement of the associated structures for purposes of generating a CTM style dungeon
The idea works because of that most obvious convenience of making a dungeon out of cubes, which is that they tessellate so well, to generate a dungeon out of structures of "cube shaped rooms". However, using clever building tactics and the "schematic" functionality of the script, a developer of generation content can make the produced dungeons feel far less "cube" shaped, for a more natural experience.
I am including screen shots of some of the more recently successfully generated dungeons, which have been playtested and confirmed to be a reasonably difficult and enjoyable experience. Some of them have been sprinkled throughout the post above to excite you, and more are below:
I would also like to share a short video of an explosive arrow effect being developed for use within the dungeons, being tested within a generated dungeon to demonstrate a more animated preview of what a generated dungeon is like:
Currently, the "schematic" system I mentioned is incomplete, though it is nearly ready for debugging. The initial purpose of schematics was to coerce generation of certain cubes to always be arranged near each other in a particular orientation relative to each other, including rotation and mirroring. However, the system will allow other curiosities as well, such as overriding nearby "allowed biomes" leveraging the power of the script's internal "superbiome" system, or overlaying one cube that is able to mix well onto another cube, producing a third new cube which is different from both the original cube and the one merged with it.
There are plans for a "global circuits" system as well, though this may be beyond the scope of the script. The plan was to simplify the process of including community created "global circuits", meant to add map wide functionality of things like spells and custom items/enemies, in generated dungeons.
Despite the incomplete state of the schematic and global circuit systems, dungeons generated by the script are currently quite playable and can be very large, easily resulting in several hours (ranging from 4 to 8+ in testing, even by us developers who know exactly how to "win") of play. Pat and I haven't even finished the first set of 16 wools which can be generated! There's still the possibly infinite alternate versions of each wool color to change which wools the players must hunt for in each newly generated dungeon and provide a unique experience each time. The experience of each dungeon is already quite unique with even the handful of wools we've already built for, each with its own biome.
I'm excited about this project, in part because it is designed to allow community-driven content. Indeed, builders of any sort could build their own "cubes" and "schematics" to be included in a public repository so that generated dungeons for any server using this system would have the entire Minecraft community's creativity powering the dungeons generated for that server. However, sometime in March, my 2300 USD PC broke beyond repair, and even more money was lost trying to fix it only to find that I couldn't (car broke too so that's cool). I'm extremely tight on money to the point that I am occasionally starved of food, and I'm not sure that I can devote time to this project without some sort of funding to reimburse it.
I'd like to evaluate the community's interest in a project like this and determine if anyone is willing to support it. I will hopefully be able to provide more videos (and I think screen shots are probably in excess at this point, so additional previews will probably all be videos), now that I can actually record them, to give more previews of what is currently possible with this system.
I have a Patreon account (it's also named Hextator) and a PayPal donation link which I have used for people interested in supporting previous work I've done with other games. I am not sure if I would like to release the generator as it currently is, or wait until the last big features are completed and tested, but for the moment I will refrain to gauge responses to this thread.
Hi, I'm the main architect for nearly every bit of the map you'll see. As you can tell, Hextator is the one in charge of the actual hard work; I merely build cubes and design enemies. If you have any questions about those parts, I'd be glad to answer them.
I became busy (read: spent all my free time playing through Pantheon, Ragecraft II and Uncharted Territory 3. For research, of course!) and hadn't been working on the Dungeon Generator.
Then I couldn't work on it because the 1.11 update broke everything wow
Then Firemblemaniac and I finally got around to updating everything for 1.11 and were ready to post an update...and then I got sick. It was so bad at one point I went to the ER to figure out what the heck was wrong with me (and whether I was dying).
Because of all that, I decided not to bother with doing any editing...of this:
Before we started working on updating the generator to work with 1.11 (which mostly took a long time not because of the generator itself being slow to update, but because of all the updates necessary to the demo resources) I had finished adding schematic support.
More information on the schematic system is in the first post, but the gist of it is "you can generate even crazier dungeons". Ones that, for example, have the boss fight in the video above, which is in an area compatible with the generator and able to be generated anywhere within a new random dungeon, so long as it is within the appropriate "superbiome". Superbiomes are, of course, user-configurable rules for generation that can make adjacently generated areas appear cohesive and believable (like a set of user specified...biomes).
I will probably be posting a demo map made using the generator soon, though it will be in its own thread. For the moment, Firemblemaniac and I are working on the finishing touches to make the demo more immersive. I developed a convenient way of embedding scripted "story events" in an extremely small space so I could embed them in generation resources (we call them "cubes"). The way it works lets the events execute properly, regardless of where they load, without requiring a large space for a redstone circuit, or even an area reserved for them in the spawn chunks, to ensure proper interactivity within the generated dungeon. I'll probably post a few videos of the system in action within this thread soon since deciphering what I'm talking about probably isn't as fun as watching TNT explode all over the place.
Here's a video of the schematic shown in the previous video/post as a component of a generated test dungeon:
The generator randomly selected to mirror the schematic. I did not check if it was rotated as well, though it is fortunate that mirroring was successfully tested. More information can be found in the video description.