Check out new ADDON for ROT.js (roguelike toolkit)

3 favourites
From the Asset Store
DATA+ (Addon Pack)
$11.25 USD
50% off
Data+ is the best Data Management solution for Construct 3. It contains 4 Addons (Plugin & Behavior).
  • https://www.construct.net/en/make-games/addons/189/rot

    This addon is an implementation of the ROT.js library ondras.github.io/rot.js/hp

    This library has alot of features that assist with the creation of rogue-like games.

    CURRENT FEATURES

    • Rng Expressions
    • All Maze Generation
    • Cellular Automata
    • Dungeon Generation
    • FOV
    • Island Detection/Iteration
    • Multiple Tiles for Wall/Floors

    ROADMAP

    • Pathfining
    • Event Queue & Scheduler (needs a bit research)
    • Noise
    • String Generation (Markov process)

    I have tried to take into account several ways, to deal with the generated maps, and have exposed different ways to interact with the map, currently all the generation action require a tilemap object, and the map is generated using the 0, 1 tileIndex of the tilemap (0 == floor tile, 1 == wall tile)

    **UPDATE: now there are Add floor/wall tiles actions that let's you specify multiple tiles that will be chosen at random from the list of weighted values you pass.

    In the future i might add the same generation actions without the need for a tilemap, and have them just expose the data structure, which would require the user to populate the map using event. as of now this can be accomplished but there is the extra overhead of the population of the tilemap.

    The included example project, is the project i used to test everything was working as expected, it has some comments, but every single expression,action,condition is used, and demonstrates some basic usage, and logs everything to the console.

    Also i have test this plugin pretty well, but if you stumble on to a bug or some unexpected behavior let me know and i'll check it out.

    ** UPDATE : added FOV action

    ** UPDATE : added Island Detection/Iteration, Island detection actions, let you iterate over isolated section, useful as a room replace to cellular automata.

  • Thank you! I've already used rot.js with construct 2

    risingpixel.itch.io/html5-dungeon-toy

    but finally someone made a C3 plugin :)

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Wow really excited for this. Does it use the c3 runtime now its enabled by default?

  • Yes this specific plugin is only available with the C3 runtime. I think there was another plugin that used rot.js for the c2 runtime.

  • Published Update 1.3, update include FOV actions, Islands Detection, And Multiple Wall/Floor Tiles in Generation.

    Example projects :

    FOV Exmaple

    https://github.com/armandoalonso/C3Plugins/blob/master/addons/examples/rotjs_fov_test.c3p

    Island Example

    https://github.com/armandoalonso/C3Plugins/blob/master/addons/examples/rotjs_islandtest.c3p

    Tile Example

    https://github.com/armandoalonso/C3Plugins/blob/master/addons/examples/rotjs_tile_test.c3p

  • Getting better and better thanks.

  • Looks like there is a bug when trying to get expressions using the dictionary popup.

    Error report information

    Type: unhandled exception

    File: editor.construct.net/r126/main.js, line 81, col 166338

    Message: Uncaught Error: instance variables not supported

    Stack: Error: instance variables not supported at r.ǃgJ (https://editor.construct.net/r126/main.js:81:166344) at ǃgJ.next () at Object.ǃoin (https://editor.construct.net/r126/main.js:177:55671) at Object.ǃD$ (https://editor.construct.net/r126/main.js:177:59337) at Array. (https://editor.construct.net/r126/main.js:177:51909) at Object.ǃrYT (https://editor.construct.net/r126/main.js:2:204643) at Object.dispatchEvent (https://editor.construct.net/r126/main.js:2:202682) at Object.ǃqqg (https://editor.construct.net/r126/main.js:2:464879) at HTMLElement. (https://editor.construct.net/r126/main.js:2:468820) at HTMLDocument. (https://editor.construct.net/r126/main.js:2:199416)

    Construct 3 version: r126

    URL: editor.construct.net/r126/index.html

    Date: Mon Nov 19 2018 16:09:17 GMT-0500 (Eastern Standard Time)

    Uptime: 323.1 s

    Platform information

    Browser: Chrome

    Browser version: 70.0.3538.102

    Browser engine: Blink

    Browser architecture: 64-bit

    Context: webapp

    Operating system: Windows

    Operating system version: 10

    Operating system architecture: 64-bit

    Device type: desktop

    Device pixel ratio: 1

    Logical CPU cores: 2

    Approx. device memory: 8 GB

    User agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36

    C3 release: r126 (beta)

    Language setting: en-US

    WebGL information

    Version string: WebGL 2.0 (OpenGL ES 3.0 Chromium)

    Numeric version: 2

    Supports NPOT textures: yes

    Supports GPU profiling: yes

    Supports highp precision: yes

    Vendor: Google Inc.

    Renderer: ANGLE (AMD Radeon HD 7480D Direct3D11 vs_5_0 ps_5_0)

    Major performance caveat: no

    Maximum texture size: 16384

    Point size range: 1 to 1024

    Extensions: EXT_color_buffer_float, EXT_disjoint_timer_query_webgl2, EXT_texture_filter_anisotropic, OES_texture_float_linear, WEBGL_compressed_texture_s3tc, WEBGL_compressed_texture_s3tc_srgb, WEBGL_debug_renderer_info, WEBGL_debug_shaders, WEBGL_lose_context

  • Which expression were you calling.

  • It doesn't even get that far. It crashes when I click on the Rotjs icon.

    Guess it could be on the C3 side... using todays beta.

    Also, seems like the for each room is not working:

    dropbox.com/s/tcae7j0xoq20zcy/goinrogue.c3p

  • Okay I will look at this today and see what's up

  • Cool, it does look pretty good so far.

  • So yeah the rot.js library does not assign room Index to the rouge dungeon type generation. I don't think it's supported, I will see if I can find a solution to make it work with that type.

  • Yeah, rooms are bit more complicated.

    On that note, I'm kind of wondering if tying it to tilemaps is the best way to go.

    As is you would need to iterate over all the floor tiles if you wanted to get rid of collision cells.

  • Yah that's on my todo list I'm going to create overloads for each of the generation actions that only populate the data structure. I just wanted to use the new SDK functionality that let's you interact with other plugins. I'm also thinking of a way to support auto tiling based on tile position.

  • Auto tiling would be pretty nice. There's quite a few threads about the bitwise, or "Salt" method on the forum, even a plug or two.

    Might also take a look, or contact Magistross about Easystar.

    construct.net/en/forum/extending-construct-2/addons-29/behavior-easystar-js-pathfindi-96215

    The C3 Pathfinder plug would probably work, but it's a bit quirky for tiles.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)