Luomu's Recent Forum Activity

  • Well. There seems to be some problem with the entrance/exit coordinates. It's because of this internal calculation in JBDungeon that the initial size you enter is multiplied by 2 plus 1 tile. I didn't want to confuse users with this so if you set size 10 the plugin sees it as 5 and the generator in turn multiplies it again... but the end result is that the start/exit coordinates are unreliable.

  • HI

    Is there any way to set an entrance to these dungeons? or get the entrance from the generated map or something like that?

    se actions "Set starting point" for entrance and "Set ending point" for exit. I'll add it to the example today...

  • What's the license on this baby?

    'm a big fan of the "do whatever you want" license. Jamis Buck's dnd generator is public domain so I would feel guilty for being more restrictive.

  • <img src="http://paahdin.com/projects/dungeongen/img/compact.PNG">

    Between last weekend and this weekend I made an Easy To Use Dungeon and Maze Generator plugin. See Completed Addons for release.

  • This plugin can easily build a maze or a "dungeon" (called so for RPG traditions, you do not actually have to imprison dudes there). Based on Jamis Buck's dnd-dungeon. We used this system in a game called

    Subscribe to Construct videos now

    a long time ago, but I did not release the plugin as it was quite messy. I have now after a week's of work recreated the plugin, but better.

    Download zip (990 KB). Contains plugin, example .cap and exe.

    Source code

    <img src="http://paahdin.com/projects/dungeongen/img/maze.PNG">

    This is a basic maze. Yum, I picked a chocolatey color scheme.

    <img src="http://paahdin.com/projects/dungeongen/img/expanded.PNG">

    This is a maze with rooms, aka dungeon. It's built "expanded" to get thicker walls and better door placement.

    The normal workflow is as follows:

    • Set object mapping
    • Set parameters
    • Generate
    • Build to layer

    If you want more control over the process, you need to build to layer yourself using events or Python.

    Parameters--

    Size: dungeon width/height in tiles. Actual size can be +-1 tile to accommodate walls.

    Tile size: Width/height of one tile in pixels

    Seed: Number to base the randomization on. Same number = always same result.

    Randomness: 0 - very straight corridors, 100 - lots of twists

    Sparseness: 0 - very tight density, 100 - very sparse density

    Dead end removal: percentage of dead ends the generator does its best to remove.

    Room count: max/min.

    Room dimensions: max/min height/width in tiles.

    Expressions available for all of the above. In addition you can fetch tile type (rock, tunnel, room) at pos x/y, room top left x/y, bottom right x/y and a thin wall type between two tiles (none, wall, door).

    For mazes (and other game purposes too) you can se the starting point and goal point of a maze.

    Build to layout:

    The dungeon is built to the layer of your choosing.

    Build to layout (expanded):

    To ensure all walls are at least one tile in size and to allow better door placement, the map size is epanded to x2 + 1 tiles. All corridors stay one tile wide.

    Set object mapping:

    Set (sprite) objects to use with the "build to layer" action. There's only rock, tunnel, room, (thin) wall and door tiles.

    That should be all, see the example .cap and experiment!

  • Since the "thin walls" were sort of tricky, I added a "build to layout (expanded)" action that enlarges your maze so that all walls are at least 1 tile width. It makes door placement better too. As before, the "build" actions are not mandatory but you can loop + build the blocks with events, or Python.

    <img src="http://paahdin.com/projects/dungeongen/img/fatwalls.PNG">

    Almost done with this I would say.

  • With the the latest version of Construct(0.99.93) you can reference a newly created object in python like so:

    System.Create('Sprite',1,0,0)
    objRef=SOL.Sprite  #this gets the reference of the new Sprite. 
    
    objRef.x=400
    objRef.y=300
    objRef.angle=30
    objRef.skewy=20[/code:1w1dg6o9]
    

    Excellent! Any caveats to this? I assume you can do

    System.Create('Sprite', 1, 0, 0)
    objRef = SOL.Sprite
    objRef.x = 300
    System.Create('Sprite', 1, 0, 0)
    objRef = SOL.sprite
    objRef.x = 600
    [/code:1w1dg6o9]
  • Imagemagick is the all-purpose command line tool for graphics manipulation:

    http://www.imagemagick.org/script/index.php

    You only have to type

    [quote:32gntlah]

    convert large.png -crop 32x32 tiles.png

    And it will split your large.png into 32x32 pixel tiles01.png, tiles02.png etc.

  • Updated download. I added things like "get tile at" and "get wall between two points" so now you don't have to use the "auto-build to layout" feature.

    Here is the plugin in use with the example platform "game". Guide the little guy from start to finish.

    <img src="http://paahdin.com/projects/dungeongen/img/grassfloors.png">

    Silent Cacophony, if you (or anyone else) would like to modify the generator to be more varied, that would be welcome

  • Do you have to use external files for this plug to work?

    es, that is one of the main ideas. I guess you could use the resource plugin to unpack files on the fly. I could probably also add "Set string..." type action but it could get confusing with complex patterns.

  • I wish I had a better algorithm. JBDungeon is a classic but it hasn't really changed since 2003. It has problems like one-dimensional (or zero thickness) walls that look good on paper but are tricky to get right for games. This web-based one is nice but it is not publicly available.

    Anyway, this is not going to be a gigantic project but the goal is simplicity... it fits Construct.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Some progress with walls and doors...

    <img src="http://paahdin.com/projects/dungeongen/img/wallsdoors.png">

Luomu's avatar

Luomu

Member since 7 Jan, 2009

Twitter
Luomu has 1 followers

Trophy Case

  • 15-Year Club

Progress

15/44
How to earn trophies