[WGEN] The Dungeonator - A Procedural Dungeon Crawl Generator [v0.0.3 Preview Now Available!]

Discussion in 'WIP and Development Status' started by Timberjaw, Feb 26, 2011.

Thread Status:
Not open for further replies.
  1. Offline

    HSAR

    Looks like it's working well!
     
  2. Offline

    dak393

    didn't want the video to end >.> looking good :)
     
  3. Offline

    Timberjaw

    Some more progress (image gallery continuing from http://timberjaw.imgur.com/dungeonator_wip#BWSop). Performance is pretty bad. The server seems to be generating chunks just fine, but the client is unable to handle it for some reason. It may be related to lighting updates, which are probably unusually extreme based on the data set I've put in the library (torches everywhere!). Hopefully that means this is a worst case scenario.


    Glitchy Library Test
    [​IMG]

    1-Room Library
    [​IMG]

    1-Room Library
    [​IMG]

    2-Room Library
    [​IMG]

    2-Room Library (Interior)
    [​IMG]

    I've been trying to get a good video of the current generator, but I'm not having much luck. Any video tool and/or codec suggestions are welcome. I've been using CamStudio and a variety of codecs, but I'm getting lousy quality and lousy framerate (though my in-game framerate is ok).

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 10, 2016
    TAT, dak393 and Professor29 like this.
  4. Offline

    dak393

    I use my built in quicktime screen recording >.> not much help past that but your screenshots look very cool. Glad to se progress on this :)
     
  5. Offline

    loganwm

    I used Fraps to record some high quality video from Minecraft [albeit, in 30 second chunks due to the free version limitations.]

    Here's how it turned out qualitywise after compression (Filesize: roughly 22.4 mb):
    http://www.youtube.com/watch?v=U9jjCC_RICc
     
  6. Offline

    Timberjaw

    @loganwm Fraps seems to work pretty well. $37 is a bit steep though.
     
  7. Offline

    loganwm

    Use the free version. The watermark and the 30 second limitation can be worked around relatively easily.
     
  8. Offline

    dak393

    wow too of my favorit WIP plugin devs in one thread :p Ya most people I know use fraps
     
  9. Offline

    TAT

    I also use Fraps, I even have 5 licenses for it xD
     
  10. Offline

    Timberjaw

    @TAT why the heck would you have 5 licenses for Fraps? Just curious.
     
  11. Offline

    HSAR

    I'm sure if you wanted to give an IP address on limited distribution we could find some people to try and get a video up. I'm running FRAPS myself, and it works pretty well (apart from the huge filesizes I end up with, bloody AVI).
     
  12. Offline

    TAT

    Just to be sure I got enough for all my computers xD (and in case a friend wanted to borrow)
     
  13. Offline

    Timberjaw

    v0.0.2 PREVIEW version is now available for download.

    Warning: This is a preview build for people interested in getting an early look at the Room Editor and basic world generation features. It may trash your world(s). It may crash your game. It may unexpectedly eat up all of your memory and max your CPU(s). It has certainly done all of the above to me on multiple occasions. Use at your own risk!

    Now that that's out of the way, if you're still interested, you can download it here: v0.0.2-PREVIEW.

    Getting Started:
    Full notes are available below, but here's a basic Getting Started guide. This assumes you're an OP and running CraftBukkit RB 1000 or higher. You'll also need Graham Edgecombe's JNBT library (place it in your libs/ folder).
    1. Place dungeonator.jar in your plugins folder. Please please please run this on a test server, preferably one for this purpose only.
    2. Start your server. You should see some startup messages related to initializing the database, data store, etc.
    3. Join. You'll be in what seems to be a normal MC world. You can start walking to reach newly generated (Dungeonator) regions, but they'll just be flat right now because you haven't created any tiles (rooms).
    4. Run "/edit new" to initialize the Room Editor.
    5. Place some blocks.
    6. Run "/edit save name:MyFirstRoom library:true" to save your creation.
    7. Place some more blocks (you can run "/edit new" again to reset the editor if you want).
    8. Run "/edit save name:MySecondRoom library:true" to save your creation.
    9. Start walking! You should soon encounter newly created chunks built from your saved rooms.
    Things That Work + General Notes:
    • Chunk flattening - the plugin does not currently include ANY tiles (rooms). By default the Dungeonator will simple flatten all new chunks. Note that this does NOT include the starting chunks. You'll have to walk a bit to get out of the normal MC chunks.
    • Named arguments for commands. This means you can specify command arguments in any order, e.g. "/edit save library:true name:MyName" OR "/edit save name:SomeName library:false". Arguments can be boolean values, integers, floats, strings, or comma-separated lists of these data types.
    • Permissions are NOT supported. Everything is based on OP status.
    • Dungeonator currently places OPs in a simple god mode.
    • I set my view-distance=4 in server.properties for performance reasons. I'm still working on performance issues, so you may want to try this if you're noticing a lot of generation/loading lag. In the long term this may be worthwhile anyway since most if the dungeon interior will give relatively short LOS.
    • /edit new - initialize the Room Editor. Arguments: flatten (bool, default true), hint (bool, default true). I highly recommend simply using "/edit new" and leaving the arguments at their defaults; I have done almost no testing of the Room Editor without flatten in particular.
    • /edit save - save the contents of the Room Editor to the tile folder (plugins/dungeonator/tiles/). Arguments: name (string, required), library (bool, default false), path (string, defaults to the tile folder). I recommend leaving 'path' alone for now. Use 'library:true' when you're ready to add the saved room to the database (for use in the generator).
    • /edit load - load a saved tile into the Room Editor. Arguments: name (string, defaults to a timestamped generic name), path (string, defaults to the tile folder). I recommend leaving path alone. Note that the *.nbt file extension will be automatically added to names, so you don't need to specify it when saving/loading. Important: you MUST run "/edit new" before loading a room.
    • /edit exits - specify exit (doorway) locations for the current room. Arguments: reset (boolean, default false), delete (string list, default null), add (string list, default null). Doorways are specified by their compass directions. Valid directions are: N,NNE,ENE,E,ESE,SSE,S,SSW,WSW,W,WNW,NNW,U,D. Long names (northnorthwest, down, east, etc) are also accepted. Example: "/edit exits delete:n,ssw add:west,u" will remove the north and south-southwest exits, and add exits to the west and up. Important: this command is essentially useless right now. Exit data will be stored in the saved tile, but will be ignored by the generator (for now).
    • /edit teststack - flattens an adjacent chunk and randomly selects tiles from the test library to populate it. The test library includes all rooms you've saved in the current session. Arguments: none.
    Things That Don't Work + General Warnings:
    • Doorway matching. The generator assigns rooms randomly to each generated chunk. It will not pay any attention to doorway locations, so you may see a lot of dead ends if you have tiles with few exits.
    • You can't remove individual tiles from the library without manually accessing the database. If you delete the database, it will be recreated (empty) on next startup with no tiles. The actual tiles folder will be unaffected.
    • Don't delete a tile from your tile folder without also removing it from the library. I assume the results will be bad. Note that unless you've specifically added the tile to the library, its presence in the tile folder does NOT mean it's in the library.
    • Don't get too attached to your tiles. In all likelihood they will NOT work in future versions of the Dungeonator. Backwards compatibility is not a priority for me at all at this stage.
    Feedback:
    Let me know what you think!
     
    dak393 likes this.
  14. Offline

    dak393

    AWESOME! will try it out now!!!
    getting errors :(
    on start up:
    Code:
    19:51:49 [SEVERE] Error occurred while enabling Dungeonator v0.0.2 (Is it up to date?): org/jnbt/Tag
    java.lang.NoClassDefFoundError: org/jnbt/Tag
        at com.aranai.dungeonator.Dungeonator.onEnable(Dungeonator.java:136)
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:126)
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:878)
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:272)
        at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:162)
        at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:146)
        at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:284)
        at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:271)
        at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:148)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:335)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: java.lang.ClassNotFoundException: org.jnbt.Tag
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:36)
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:24)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        ... 11 more
    
    attempted command "/edit new" :
    Code:
    org.bukkit.command.CommandException: Unhandled exception executing command 'edit' in plugin Dungeonator v0.0.2
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:129)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:320)
        at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:713)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:677)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:670)
        at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:33)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:85)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:451)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: java.lang.NullPointerException
        at com.aranai.dungeonator.Dungeonator.onCommand(Dungeonator.java:172)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
        ... 12 more
    
     
  15. Offline

    Timberjaw

    @dak393 So...when I said it had no dependencies...I lied. Oops.

    You'll need the JNBT library. Credit to the fine Graham Edgecombe for JNBT. Place the jnbt jar file in your libs folder.
     
  16. Offline

    dak393

    ok cool gonna test it again now :)
    Edit: looks like same errors :(
    Edit: grabbed every dependency I had in my main folder in an act of desperation and still no luck XD

    So anyone else have any luck with this?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 10, 2016
  17. Offline

    Timberjaw

    @dak393 Where did you put the jnbt file?

    To elaborate: it looks for jnbt-1.1.jar in the libs/ folder.
     
  18. Offline

    dak393

    /Users/****/Desktop/Test_server/lib
    also tried renaming (to jnbt.jar) and re-downloading to no avail
     
  19. Offline

    Timberjaw

    @dak393 should be libs, not lib.
     
  20. Offline

    dak393

    :confused: ok will try that everything else worked in lib...
    Edit well seems to be working XD testing now
    @Timberjaw soo I created a few rooms saved them and well its not auto generating the rooms I walk (even into a new chunk and nothing happens)

    Getting this:
    Code:
    21:16:34 [INFO] Call to getOrCreateChunk(10,30)
    21:16:34 [INFO] Call to getChunkAt([email protected],9,29)
    21:16:34 [INFO] Cache hit for /Users/DAGR/Desktop/Test_server/plugins/Dungeonator/tiles/Number2.nbt
    21:16:34 [INFO] Cache hit for /Users/DAGR/Desktop/Test_server/plugins/Dungeonator/tiles/Number2.nbt
    21:16:34 [INFO] Cache hit for /Users/DAGR/Desktop/Test_server/plugins/Dungeonator/tiles/Number3.nbt
    21:16:34 [INFO] Cache hit for /Users/DAGR/Desktop/Test_server/plugins/Dungeonator/tiles/Number2.nbt
    21:16:34 [INFO] Cache hit for /Users/DAGR/Desktop/Test_server/plugins/Dungeonator/tiles/Number2.nbt
    21:16:34 [INFO] Cache hit for /Users/DAGR/Desktop/Test_server/plugins/Dungeonator/tiles/Number3.nbt
    21:16:34 [INFO] Cache hit for /Users/DAGR/Desktop/Test_server/plugins/Dungeonator/tiles/Number3.nbt
    21:16:34 [INFO] Cache hit for /Users/DAGR/Desktop/Test_server/plugins/Dungeonator/tiles/Number3.nbt
    21:16:34 [INFO] Cache hit for /Users/DAGR/Desktop/Test_server/plugins/Dungeonator/tiles/Number3.nbt
    21:16:34 [INFO] Cache hit for /Users/DAGR/Desktop/Test_server/plugins/Dungeonator/tiles/Number3.nbt
    21:16:34 [INFO] Cache hit for /Users/DAGR/Desktop/Test_server/plugins/Dungeonator/tiles/Number2.nbt
    21:16:34 [INFO] Cache hit for /Users/DAGR/Desktop/Test_server/plugins/Dungeonator/tiles/MyFirstRoom.nbt
    21:16:34 [INFO] Cache hit for /Users/DAGR/Desktop/Test_server/plugins/Dungeonator/tiles/Number3.nbt
    21:16:34 [INFO] Cache hit for /Users/DAGR/Desktop/Test_server/plugins/Dungeonator/tiles/Number3.nbt
    21:16:34 [INFO] Cache hit for /Users/DAGR/Desktop/Test_server/plugins/Dungeonator/tiles/Number2.nbt
    21:16:34 [INFO] Cache hit for /Users/DAGR/Desktop/Test_server/plugins/Dungeonator/tiles/MyFirstRoom.nbt
    
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 10, 2016
  21. Offline

    Timberjaw

    @dak393 That's completely normal. It means things are working. :)

    getOrCreateChunk() and getChunkAt() are the two calls per-chunk to the generator.

    Cache hits in the tiles folder means that it's used a cached (in-memory) copy of a tile instead of loading it from file every time.
     
  22. Offline

    dak393

    Ok perfect :) glad its working although its not auto generating. Should it be in your guide you say to just walk and it should generate...
     
  23. Offline

    Timberjaw

    @dak393 What are you getting when you explore new areas?
     
  24. Offline

    dak393

    I believe just that "error"
    Edit: well now I'm walking around and getting nothing in the log at all =/
     
  25. Offline

    Timberjaw

    @dak393 Pick a direction and walk in a straight line. If you've added rooms to the library, you'll eventually reach a wall of rooms. You might reach some flat mossy cobble first (which is an area generated before any rooms are added).
     
  26. Offline

    dak393

    I walk and all that happens is I reach the wall created by the flattening of the chunk even if I dig into the next chunk I get nothing =/ O and did you know that the base of your generation is not as low as it could be?
     
  27. Offline

    Timberjaw

    @dak393 Keep walking through the flat area.

    The flattened area is around +8 I think. The normal chunks (with stacked rooms) start at 0 however.
     
  28. Offline

    dak393

    Ok just walked straight hit the wall then mined for about 200 blocks XD I'll keep trying but I'm not even getting the code in my log from last time
     
  29. Offline

    Timberjaw

    @dak393 What wall? :confused: Are you below the flattened area or something? Screenshots would be helpful.
     
  30. Offline

    dak393

    ok I'll take some screenshots got THIS After I logged in with no idea what caused the wall of text. tried to reproduce with no luck

    http://cl.ly/3U3G1P3n033g2V2B2k0p
    http://cl.ly/2H3e0h3v252S3k0i140J
    http://cl.ly/1J2w2f3c3Y0I403G1a04
    http://cl.ly/1j1N3u0D3n3I0A0E3C2S
    http://cl.ly/3z0E0y1e2824073O3v3T
    http://cl.ly/45440g1d0I3e3c3E2v2v

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 10, 2016
Thread Status:
Not open for further replies.

Share This Page