Giter Site home page Giter Site logo

dungeonsrevenge's People

Contributors

s-wirth avatar wmadden avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

dungeonsrevenge's Issues

Feature: inventory system

Goal: track what creatures are carrying and allow the player to use and drop items

TODO:

  • State
    • Items in inventory
    • Maximum slots in inventory
  • Inventory screen operations
    • New state to control screen visibility
    • Keyboard shortcut to activate screen
    • Show screen
    • Hide screen
    • Button to activate screen (for mobile)
  • Allow viewing carried items
    • List items
  • Keyboard control
    • Track focussed item
    • Keyboard shortcut to use focussed item
    • Keyboard shortcut to drop focussed item
  • Touch control
    • Button to use item
    • Button to drop item
    • Button to close screen

Increase test coverage

At the moment we have some basic tests which mostly prove that the testing system works. Bugs are creeping into the system and we really need more thorough tests - particularly for the GameState object.

I think a good approach would be to add coverage reports that are parsed by something like Istanbul, save them as artifacts in CI, and fail the build if coverage drops below a certain threshold. To enforce the rule, it'd be good to restrict deployment to CI, except Firebase is such a dick with its auth tokens.

  • Add test coverage to Karma
  • CI
    • Fail build if coverage drops (if we can do that) or is below a preset threshold
    • Set up continuous deployment
    • Restrict deployment to the CI user?
    • Make CI print instructions for generating a new auth token if the Firebase token expires

Mobile performance

TODO:

  • Try rendering a table instead of absolutely positioned divs
  • Try combining adjacent, equal tiles into the same div (e.g. a 4x4 floor area would be one div with a repeating background instead of 16 divs)
  • Try using SVG instead of divs
  • Try using imgs instead of divs
  • Try only rendering the things in view

Feature: event log

Goal: show messages describing recent actions

TODO:

  • State
    • Add Immutable.List of log messages
    • Method to add a new message
  • UI
    • Component to render list
    • Animations

To Do

Project setup:

Plan:

The foundation of the game is OK, but it's not fun yet. It'd be a lot more fun with more to immerse you, like an explanation of new kinds of enemies, some decoration in the dungeon, and generally better effects in the normal interactions (fighting, walking, using items). And it really needs to persist between refreshes.

  • Bugfixes
    • Enemies should not kill each other when wandering
    • If you click on the stairs it continues moving to the original coordinates of the stairs on the previous level
    • Can't tap on potions to move there
  • Background music
  • Better dungeon appearance
  • Zoom
  • Complete movement algorithm
  • Persist game state between refreshes
  • Add some way to inspect things

New features:

  • Letter movement controls
  • Needs some way to inspect things
  • Better zoom support
    • Shouldn't zoom UI, only dungeon
    • Should use pinch events
  • Movement algorithm
    • If you click a potion it should go there
    • If you click a creature it should follow the creature instead of going to its original position
    • If your path becomes blocked by a creature it should abort
    • If a new creature becomes visible it should abort
    • It should stop after traversing stairs up or down
    • Allow clicking on empty space
    • Don't use information unavailable to the player to calculate the path
  • Directional item effects
  • Targetable item effects
  • Game mechanics
    • Harder boss
    • Model progressions:
      • Player stats
      • Enemy difficulty
    • Enemies should get stronger with each level
    • Different kinds of enemies
    • Hunger / food
    • Health regeneration
  • Audio
    • Background music
      • Normal levels
      • Boss levels
    • Action noises
  • Animations
    • Pulse the health and XP bars when they change
    • Show the XP bar reaching the end instead of decreasing when you level up
    • Transition between top level screens
    • Show creatures attacking
    • Show health increasing when you use a healing potion
    • Character animations (walking etc)
    • Potion consumption
  • Persist game state between refreshes
  • Character screen
  • Help screen
    • Hints on visible UI showing keyboard shortcuts (on desktop)
  • Weapons
  • Armor
  • Wands
  • Potions
  • Inventory
  • Character classes
  • Level groups
  • Side branches
  • Gold!
  • Treasure chests
  • Identification of items (potions, wands, etc)
  • Cursed items
  • Secret passages
  • Scrolls
  • Unlockable elements
    • E.g. new character classes or improvements to character classes (like Pixel Dungeon)
  • Record of past attempts (hall of fame)
  • Stats at end of game
    • Monsters killed (by type)
    • Challenges achieved
    • Score breakdown

Feature: better game mechanics

TODO:

  • Enemies:
    • Damage
    • Health
    • New type: mutant rat
  • Player
    • Progressions:
      • Health
      • XP required
      • Damage
  • Potions
    • Amount healed
    • Spawn rate

Tiles on boss level are not rendered correctly

screen shot 2016-03-20 at 12 30 15 pm

I suspect this is something to do with the SubdividedDungeonMap on the oddly-shaped boss level. There are 8 divisions (in X and Y directions) but not an evenly divisible number of tiles.

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.