Repository navigation
01 Basic User Interface Usage
BattleDrome is a bit unique, as such there are some different behaviors to what we would normally expect in a web application. (specifically due to the blockchain being involved in EVERY interaction, there is no "webserver" doing anything except for serving basic HTML/CSS/JS files)
In addition it's an Alpha, as such the UI was not a top priority. Smooth 100% top-notch UI/UX design was simply not something we wanted to focus on, preferring to get the underlying core mechanics and back-end working first.
The UI was meant to be "good enough" to service the Alpha, and relatively easy to improve upon going forward.
This means there are some minor considerations on the speed of things, and how it works we need our players/users to be aware of:
Basically everything you do can be classified into "reads" (something that reads information or data from the blockchain, such as viewing the name of a warrior, or attributes, etc) and "writes" which is where you take any action that results in a change on the back-end (creating something new, buying something, upgrading something, changing a value, practicing, joining events, etc).
Reads do not require an actual "transaction" to happen. They simply read data from the Web3 API in order to populate the values in the Javascript based front-end. However these types of interactions still suffer from a few performance issues:
- X
Writes on the other hand do require an actual transaction. These will pop up Metamask (or your browser plugin of choice) to confirm the transaction details. They will cost gas. Etc. But most importantly, they will take time to complete, as they require at least a single network confirmation of the transaction (which can only happen at the EARLIEST in the next block, which is AT LEAST 10-15 seconds away usually).
In addition you should be conscious of the gas prices being set. It's important to set low gas prices to keep the transactions affordable, only pay larger gas prices if you absolutely need the transaction to happen fast.
The BattleDrome UI is made up around a concept of "Cards". The Cards hold key information on their front, and methods of interacting with them on the back.
X
Because the BattleDrome application is 100% decentralized, it is purely a collection of client-side HTML, Javascript, and CSS files, combined with some data files (JSON) which define the ethereum smart contracts that will serve as the back-end.
When we roll out an update (which we will do periodically during the alpha), the result will be that your browsers cache may hold outdated versions of these files.
If you encounter any kind of wierd behavior, please following the below steps:
- Write down exactly what you have encountered, take screenshots, note the warrior, their attributes, weapon and armor types, what was happening at the time, and the most recent successful change you made.
- In Metamask, go to settings and Reset Account (this will reset metamask's internal cache of transaction history, etc)
- Flush the browser cache
- Close the browser entirely
- Re-open the browser, and open http://app.battledrome.io
- Unlock metamask (or recover from recovery phrase if needed).
- Attempt to re-create the issue, see if it's gone away
- Report the issue here on Github in the issues section: