Giter VIP home page Giter VIP logo

boken2-rpg's People

Contributors

danieloaks avatar

Watchers

 avatar  avatar

boken2-rpg's Issues

Vuex store upgrades

We need to have two separate versions:

Engine version

This being updated means that Boken2 has changed internally, and we need to rework data to match. Maybe we changed how we store locations or something else. These updates are written by the engine devs, and interact with the store directly.

Game-data version

This being updated means that the game has changed, perhaps they renamed an attribute or combined a few perks or done something else. These updates are written by game programmers, probably just give 'em a textbox and ask them to type in code... Not nice but honestly given how much can change it's probably the only way to do it. Probably best to only let them use the mutations/getters that we expose to do this, rather than letting them have at the store directly (because the layout of that will change significantly under the hood.

Keyboard shortcuts

Pretty self-explanatory, every button should have a keyboard shortcut

datastores

key:values stores:

  • static game data store (contains all game data, locations, npcs, dialogue, scripts, etc etc, attributes that are possible, etc.
  • dynamic state store (contains all running data, this is what's saved when the user creates a save).

data-store is json. when you insert a value, that value gets put through valueInDatastore = JSON.parse(JSON.stringify(value)) to ensure it actually can survive the process -- if it can't then it'll break right away when it's used next rather than only breaking after saving and loading a save-file (because that would be hell to debug).

do we need any other stores? how does this work with editing game and all? map out how this works in a normal game-playing flow, while developing a game, etc.

New game flow

When players start a new game, show them the default new game flow (set of screens where they setup their character). The game can also specify a pretty character-creation path, basically a list of mainContent text, and on each page they can choose which element of character creation to show there, e.g. something like:

"text": "Welcome, traveller, play tell what is your name?",
"charCreation.showName": true,

use relative asset paths without vue-loader and webpack throwing a fit

every time I try it spits this out at me on the build stage:

Module not found: Error: Can't resolve './assets/buttons/game-editor.svg' in '...\boken2-rpg\src\pages'

so I can't use relative paths for my assets. when I really want to, because relative paths are great. there's like two separate places to configure webpack/vue-loader/etc to ignore this stuff and I've tried both and neither are working for me. get out of my src= URLs vue-loader+webpack for the love of christ, no, bad build helper.

Stats calculation

"Stats get calculated from the player's level, attributes, items, and perks" - but how? Just typing in a string could work, though I really wanna avoid having to do eval() calls or something similar. Maybe look for inspiration from the dice roller goshu bot, see if I can use some similar lang-parsing methods?

We only need to 'calculate' the base value, that is Level + Attributes - items and perks will get their modifications applied in the Vuex store probably as a list alongside each stat on player.stats

Blind accessibility

Can we push text directly to NVDA/etc? When using a screen-reader, we might want to act as much as possible like a text adventure, perhaps...

Resources:
https://stackoverflow.com/questions/58368101/how-can-i-get-a-screen-reader-to-stop-treating-an-html5-game-like-a-document
http://www.blindcomputergames.com/howto/howto-screen-readers-design.html
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA
https://developer.mozilla.org/en-US/docs/Glossary/Screen_reader
https://a11y-guidelines.orange.com/web_EN/exemples/speak/index.html

When I'm testing this, eyes closed + NVDA and make sure I'm able to navigate everything appropriately.

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.