Dev: Strategic Plan

This is the general design direction of the game. New development projects must respect those guidelines. Making changes to the guidelines must be deeply analyzed.

## Player Experience

### Fast-pace combat

* No down time while in combat.
	+ Minimal menu-ing.
	+ Small down-time on death: Easy to revive partner. When eliminated in a quest, offer something to do meanwhile.
	+ Minimal preparation before combat
* Encourage risk taking / aggressive gameplay

### Casual

* Small penalty on death
* Level and gears matter more than talent for solo-related content. (All content but highscore, competition and competitive PvP).
* Possible to grind if lack of talent. **<- Issue right now**

### Repeatable Content

* Content must be as repeatable as possible to minimize development time.
* Repeatable content must have some depth. (Ex: Not killing x1000 the same monster.)
* Repeating content must give unique unreplacable rewards (aka be the only way to get a specific reward). Ex: Highscore stars, emoji. Only giving exp and items is not good.

### Reversible Decision

* All decisions can be changed.
* Content must never become inaccessible.
* The cost to reroll may be high.
* Consequence: For quest storylines that split, must give option to repeat it with other branch.

### Mobile friendly

* All progression-related content must be accessible on mobile. (Note: Cosmetic features don't have to.)
	+ No key feature on right-click or mouseover.
* All interfaces must handle both pc and mobile.

### Story

* Understandable and enjoyable even if skip all dialogues and cutscenes.
* Understandable even if no computer knowledge.
* May contain advanced computer notions, but must not be part of the main story. (Ex: Can be in lore books.)
* Must be expandable. Has no hard ending.
* Small number of characters. Focus on making them feel unique and interesting.
* Characters must be memorable, especially their name. This means easy to say and remember names.
* Story doesn't need to be linear.
* No irreversible storyline split.

### Multiplayer

* Must be enjoyable solo. (Doesn't require multiplayer to be a good game.)
* All content must be accessible solo. (Exception for non-content features such as achievements and highscores.)
* Trading is not mandatory to beat content.
* Best equipment must be obtained by yourself. Prevents secondary account and rwt.
* Encourage trading. (Ex: Common currency.)
* Prevent inflation
	+ Untradable top-tier equip.
	+ Consumable currency.
* Quick and easy to join friends at any time. (Exception for solo content.)
	+ Better to allow joining with reward penalty than to not allow.

### Rage-quitting

* Limit RNG: Being unlucky increases chance to become lucky later. Ex: Pet drop rate.
* No situation where player lose all or win all.
* Prefer incremental progress over luck-based progress.
* PvP optional.
* Must not be able to be harassed by other players even when muted. Ex: Prevent players from doing something.
* Must not be forced to play with someone you don't like.

### Crafting

* Easy to get decent weapon but perfect weapon is very hard
* Entry cost should be very small to encourage early upgrade.
* Allow players to keep equip for a long time. (Allow to level up the equip.)
* Newly found equip must potentially be better than leveled up equip. **<- Issue right now. Reduce max roll if leveled up?**

### PvP

* Less important than PvE
* A PvP update shouldn't degrade PvE.
* Keep PvP for fun. (Linked with Rage-quitting and engine limitation.)
* Allow PvP customization.

## Development

### Fast Development

* Use static analysis as must as possible
* Minimize code using any typing.
* Permit shortcut against OOP, but must be statically validated.

### Fast Maintenance

* Minimize issue tracking overhead
* Stay up to date with new technology
* Support old browser versions only if doesn't affect code structure or performance.

### Performance

* Server performance is more important than client performance
* Do as much work on the client as possible while remaining not exploitable
* Stay up to date with new technology
* Goal is 50 players per server. If not met, gameplay will need to be tuned down.

### Fast Release

* Minimize manual testing by running integrity tests
* Downtime less than 30 minutes are acceptable.

### Database

* Keep the data up to date with the server. (Ex: Removed quests should be removed from database.)
* Data integrity more important than player progress. (Ex: Will not save player progress is corrupted.)