Git Product home page Git Product logo

dungeon-generator's People

Contributors

brendensatake avatar dependabot[bot] avatar rookirk avatar seijiemery avatar yashvsolanki avatar

Watchers

 avatar  avatar

dungeon-generator's Issues

Cleanup

  • setup_phaser.js: remove scene.init
  • remove unused code: utils.js, generator.js, example_room_generator.js

Make isometric renderer rotateable

  • Make renderer capable of rendering a rotated view of the current map.
  • Would involve changing rotations of each tile and basically doing flips on the map arrays.
  • Should be part of camera controls, not passed explicitly into renderer...? (but could start w/ that)

Add top down renderer

  • Use /Angle assets instead of /Isometric assets
  • will need a new separate / renderer impl
  • add arg to render: render({ ..., renderer="isometric" }) or render({ ..., renderer="topdown" })
  • or just render({ isometric: true })

add js tools for working with 2d arrays

  • Add array data type + utility functions
class Array2d {
members:
    values: Array<number>
    width: <number>
    height: <number>
methods:
    constructor (width: <number>, height: <number>)
    forEach (fcn: (value: <number>, i: <number>, j: <number>) -> ())
    fill (fcn: (i: <number>, j: <number>) -> number)
    // anything else you think would be useful...
}```

- Refactor existing code to use this data type
- and add dimension checks and/or error handling...?

Add python map generation support

  • add a flask server
  • add endpoints for generators
  • generate this automatically by detecting python files in src/generators, generating / regenerating flask server...?
  • add requests on js side to hit request data from server + re-render

Add GUI system w/ controls

  • can be very simple
  • will need to research the best way to do this
  • need at least one foldable / collapse-able drawers w/ properties (sliders, numbers, checkboxes, etc) in them
  • make this change generator parameters (width, height, etc...?)

Add CI using github actions

Should install all dependencies listed in README.md
Should run tools/extract_assets.py and tools/rebuild_phaser_renderer.py (and check for errors)
Should add a test script that tests that none of the html files in build/ have 'Error' in them
Should fail CI iff any of these fail

To finish this:

  • make a separate branch + make changes that causes each individual test to fail
  • => should fail CI
  • finished if a PR on all of these branches is failing / blocked

A* pathfinding algorithm

  • A* pathfinding algorithm impl
  • ...and display on the map...? (note: phaser has some draw calls to display isometric cubes, I think. If not, just draw a small eg. circle colored different colors at each point on the grid)

refactor + move renderer impl into src/renderer.js

  • refactor tileRenderer + makeRenderer if / as needed
  • api should be something like render({ width: number, height: number, floors: <array>, walls: <array>, objects: <array>, renderer: "isometric" })
  • should add error checking...? (check that dimensions of floors, walls, etc., match)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.