Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kitnato/neverquest

An irreverent text-based incremental action role-playing game.
https://github.com/kitnato/neverquest

action-rpg browser-game game gamedev react-hooks recoiljs rpg-game typescript

Last synced: 18 days ago
JSON representation

An irreverent text-based incremental action role-playing game.

Awesome Lists containing this project

README

        

# neverquest

_An irreverent text-based incremental action role-playing game._

> - View [gameplay manual](./source/data/manual.md).
> - View [screenshots](#3-screenshots).

## Local set up

To run the app locally from source, you will need to use a command-line interface (CLI).

### Installation

Prerequisites:

- [Git](https://git-scm.com/downloads)
- [NodeJS](https://nodejs.org/en) 18 or later
- NPM 8 or later

1. Open the CLI and change into a suitable directory (e.g. `cd neverquest`).
1. Run `git clone [email protected]:kitnato/neverquest.git`
1. Run `cd neverquest`
1. Run `npm install`
1. Run `npm start`
1. Open [http://localhost:5173](http://localhost:5173) in a web browser.

### Local development

After [installation](#installation), but before committing any changes, do the following:

1. In the CLI, go to the project folder (e.g. `cd neverquest`).
1. Run `npm run prepare`

Now, every time changes are committed, all the relevant code, markup and style linters & formatters will apply any changes automatically.

The linter config can be viewed in `.eslintrc.json` and `.stylelintrc.json`.

## Attribution

- All art assets (SVG icons & images) are sourced from the talented [authors](https://game-icons.net/about.html#authors) of [game-icons.net](https://game-icons.net) under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0).
- Font is [Aoboshi-Regular](https://github.com/matsuba723/Aoboshi), licensed under [OFL-1.1](https://openfontlicense.org/open-font-license-official-text/).
- Monster, item & location names provided by the [LOCRAN](https://github.com/kitnato/locran) system under [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0).
- Written in [TypeScript](https://www.typescriptlang.org) using [React](https://react.dev/).
- UI framework is [Bootstrap](https://react-bootstrap.github.io).
- State management library is [Recoil](https://recoiljs.org).
- Animation library is [Animate.css](https://animate.style).
- Build system is [Vite](https://vitejs.dev).
- Code style & linting is provided by [ESLint](https://eslint.org), and [ESLint Stylistic](https://eslint.style) using [@kitnato/eslint-config-succinct](https://github.com/kitnato/eslint-config-succinct).
- SCSS linting is provided by [Stylelint](https://stylelint.io) and [Stylelint Stylistic](https://github.com/stylelint-stylistic/stylelint-stylistic).
- Automation is provided by [Husky](https://typicode.github.io/husky) and [lint-staged](https://www.npmjs.com/package/lint-staged).

## License

![CC BY-NC-SA 4.0](/public/by-nc-sa.eu.svg?raw=true)

This work is licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-nc-sa/4.0).

## Appendix

### 1. Gameplay objectives

- There is always has something to do
- No arbitrary waiting time, cliffs or walls
- Engaging active gameplay by default
- No need for "skip the grind" mechanics
- Idle gameplay can be unlocked with in-game mechanics
- Incremental progress can always be made
- Little RNG, clear and accumulable paths to upgrades
- No excessive or repetitive clicking
- Decisions are frequent and they have immediate gameplay impact
- High character build variety with a long tail of min-maxing
- Always options to change strategy and try new approaches
- Difficult, but always fair

### 2. Warren Spector's 6+2+1 [questions](https://www.gamedeveloper.com/design/warren-spector-traces-i-deus-ex-i-s-development-back-to-a-game-of-d-d)

1. What's the core idea? Can you describe the core of the game in 2-3 sentences?
- An incremental action role-playing game, focusing on active player engagement, which can be played in any browser on any system. Exploring and fighting through the hostile world yields its secrets, with the only respite being a gradually growing repertoire of goods and services that enhance, expand and upgrade gameplay.
1. Why make this game?
- I want to play it and I can't find anything like it.
1. What are the development challenges?
- The amount of my free time I can dedicate.
1. How well-suited to video games is the idea?
- It is unique to video games since it requires lots of numerical and state-based computation with ephemeral, randomized encounters.
1. What's the player fantasy?
- Ever increasing power and challenge with the freedom to build how said power and challenges are surmounted.
1. What does the player do? (What are the "verbs" of the game?)
- Fight
- Loot
- Level up
- Encounter
- Trade
1. Has anyone done this before?
Clear influences are:
- Diablo, and its sequels - gameplay loop of randomized monster slaying, loot collecting and visiting a town to rest & replenish.
- Dark Souls - difficult one-on-one combat encounters, frequent & normalized deaths and corpse retrieval.
- Progress Quest - the progenitor of all text-focused UI-based incremental games with a swords & sorcery fantasy theme.
- Progress Knight - fantasy incremental game focused on rags-to-riches career progression.
- Kingdom of Loathing - one of the first purely browser-based UI-focused adventure RPGs with an irreverent sense of humor.
- Candybox 1 & 2 - an irreverent UI-based fantasy adventure with 2D world elements heavy on player interaction and with permadeath.
- Crank - user-interaction-driven adventure/mystery game with gradually expanding storyline and gameplay.
- NGU Idle - irreverent UI-based fantasy incremental idle game.
1. What's the one new thing?
- Feels like text-based Diablo/Dark Souls hybrid, but it's funny and a web app.
1. Do you have something to say?
- Browser games with only text and a GUI can be just as engaging and can have similar gameplay depth to traditional video games without relying solely on simple deterministic incremental progress.

### 3. Screenshots

![Screenshot 1](./public/nq-screenshot-1.png "neverquest screenshot start")

![Screenshot 2](./public/nq-screenshot-2.png "neverquest screenshot caravan")

![Screenshot 3](./public/nq-screenshot-3.png "neverquest screenshot ranged")

![Screenshot 4](./public/nq-screenshot-4.png "neverquest screenshot melee")

![Screenshot 5](./public/nq-screenshot-5.png "neverquest screenshot quests")