Skip to content
/ isoNode Public

IsoNode is an HTML5 isometric map engine, originally inspired by jsISO.

License

Notifications You must be signed in to change notification settings

gnzg/isoNode

Repository files navigation

IsoNode

GitHub version GitHub license

Table of contents

Introduction

IsoNode is an HTML5 Canvas isometric map engine, originally inspired by jsISO. It is gradually being translated into Typescript to ease maintenance and debugging.

Features

  • Hitbox logic per tile
  • Keyboard map movement
  • A state store, based on the publisher-subscriber pattern
  • Debug mode

isoNode

Installation

Prerequisites

  • GNU make utility
  • nvm
  • node.js v.14.x (Fermium, LTS)
  • npm v.5+
  • yarn

Windows specific

  • Chocolatey

To compile and watch the source code, the preferred method is to run make watch PORT=<yourPORT> from the project root directory. The development server will then be available via localhost:<yourPORT>.

Source structure

The project source root is app.ts.

Troubleshooting

The dev server does not run due to a webpack related error

Make sure npm version 5+ is used by default via nvm. This can be done via the command nvm alias default 14

Debug mode

Working on the map in debug mode is possible by setting the debug_mode property in the global state object to true, or toggling it in the browser console via window.store.dispatch("toggleDebugMode");

Testing new actions

It is possible to test newly introduced actions via the browser console as they are available via the window object. E.g. window.store.dispatch('updateCanvas');

FAQ

How is type checking set up in isoNode?

Static type checking is accomplished via the typescript and associated npm packages. During runtime, Webpack takes care of *.ts file type checking. TypeScript compiler options are provided in tsconfig.json.

How is drawing accomplished?

Currently, drawing is done layer-wise: Assume we want our map to consist of three height levels - to do so we will create three arrays, each array for a separate height level. Each of these arrays resembles a distinct map layer. Each map layer consists of rows, where a single row is an array of integers, each resembling a tile configuration, which is currently merely the tile's color.

License

isoNode is licensed under the GPL v.3.0 license.

About

IsoNode is an HTML5 isometric map engine, originally inspired by jsISO.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published