0.2.8 • Published 3 years ago

mudjs v0.2.8

Weekly downloads
9
License
MIT
Repository
github
Last release
3 years ago
 ____________________________________
|    _____ _____ ____     __ _____   |
|   |     |  |  |    \ __|  |   __|  |
|   | | | |  |  |  |  |  |  |__   |  |
|   |_|_|_|_____|____/|_____|_____|  |
|        ADVENTURE IF YOU DARE!      |
| An API For Building MUD-like Games |
|        by Caleb Eno ©2021          |
|____________________________________|

npm version Build Status Known Vulnerabilities Coveralls Maintained By License TypeDoc styled with prettier

Current Phase: Early Development

Hello! Thank you for your interest in MudJS. This project is currently undergoing its first phase of early development. MudJS is intended to be an engine of sorts for building old-school style dungeon crawlers.

To be clear: THIS IS NOT CURRENTLY FEATURE COMPLETE

It's under active development in my free time, and I will continue to add features as I can.

What MudJS is (will be):

  • A collection of Data Structures (levels, rooms, stats, players, enemies, interactables, equipment, etc.)
  • Accessor functions to manipulate the data structures (add room, defeat enemy, move player etc.)
  • Utility and Engine functions to advance the gameplay (tick callbacks, save/load, etc.)
  • Some kind of narrative management component (as yet undetermined)
  • Designed with third party plugins in mind (so you can make your own tooling!)

What MudJS is not (won't be):

  • A full game experience
  • A front-end for building games for the engine
  • A front-end for playing games made with the engine

While developing the engine, I am also building a front-end that will demonstrate both how one could build a game with it and what a game made with it would play like. As development progresses, I will provide a link to the interface side.

I'm really excited about this project! If you are too, I'd love to hear from you what your favorite dungeon crawlers are.

comment: <> ([Greenkeeper badge(https://badges.greenkeeper.io/calebeno/mudjs.svg)](https://greenkeeper.io/))

A library for creating old-school dungeon crawlers.

Further documentation to come as development progresses.

Generated documentation: https://calebeno.github.io/mudjs/

comment: <> (### Importing library)

comment: <> (You can import the generated bundle to use the whole library generated by this starter:)

comment: <> (`javascript)

comment: <> (import mudjs from 'mudjs')

comment: <> (`)

comment: <> (Additionally, you can import the transpiled modules from dist/lib in case you have a modular library:)

comment: <> (`javascript)

comment: <> (import something from 'mylib/dist/lib/something')

comment: <> (`)

Contributing

NPM Scripts

Development

  • npm start - Builds project in watch mode

Testing

  • npm test - Run test suite
  • npm run test:watch - Run test suite in interactive watch mode
  • npm run test:prod - Run linting and generate test coverage report
  • npm run lint - Lints code

Building

  • npm run build - Generate bundles and typings, create docs

Committing

  • npm run commit - Commit using conventional commit style

comment: <> (### Excluding peerDependencies)

comment: <> (On library development, one might want to set some peer dependencies, and thus remove those from the final bundle. You can see in Rollup docs(https://rollupjs.org/#peer-dependencies); how to do that.)

comment: <> (Good news: the setup is here for you, you must only include the dependency name in external property within rollup.config.ts. For example, if you want to exclude lodash, just write there external: ['lodash'].)

comment: <> (### FAQ)

comment: <> (#### Array.prototype.from, Promise, Map... is undefined?)

comment: <> (TypeScript or Babel only provides down-emits on syntactical features (class, let, async/await...), but not on functional features (Array.prototype.find, Set, Promise...), . For that, you need Polyfills, such as core-js(https://github.com/zloirock/core-js); or babel-polyfill(https://babeljs.io/docs/usage/polyfill/); (which extends core-js).)

comment: <> (For a library, core-js plays very nicely, since you can import just the polyfills you need:)

comment: <> (`javascript)

comment: <> (import "core-js/fn/array/find")

comment: <> (import "core-js/fn/string/includes")

comment: <> (import "core-js/fn/promise")

comment: <> (`)

0.2.8

3 years ago

0.2.7

3 years ago

0.2.6

3 years ago

0.2.4

3 years ago

0.2.3

3 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.21

5 years ago

0.1.20

5 years ago

0.1.19

5 years ago

0.1.18

5 years ago

0.1.17

5 years ago

0.1.16

5 years ago

0.1.15

5 years ago

0.1.14

5 years ago

0.1.13

5 years ago

0.1.12

5 years ago

0.1.11

5 years ago

0.1.10

5 years ago

0.1.9

5 years ago

0.1.8

5 years ago

0.1.7

5 years ago

0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago

0.0.9

11 years ago

0.0.8

11 years ago