Skip to content

bobbylight/ZeldaJS

Repository files navigation

ZeldaJS - A Legend of Zelda clone in TypeScript

Build CodeQL codecov Dependency Status Dev Dependency Status

A WIP clone of the Legend of Zelda. This will include a very basic editor as well. Feel free to try it out in its current state.

Licensed under an MIT license.

Hacking

First, check out the project and install all dependencies locally via npm:

git clone https://github.com/bobbylight/ZeldaJS.git
cd ZeldaJS
npm install

To get started right away, run:

npm run serve

The game will be served from http://localhost:8080, and hot deploy any changes.

This game is built with vue-cli. Development is done with npm scripts:

npm run clean          # Cleans build directories
npm run serve          # Runs app for development.  Hot deploys
npm run build          # Builds the application in dist/
npm run test:unit      # Runs unit tests and generates coverage
npm run lint           # Lints files
npm run doc            # Generates documentation
npm run build-electron # Doesn't currently work (broke with move to vue-cli)
npm run pack           # Doesn't currently work (broke with move to vue-cli)
npm run dist           # Doesn't currently work (broke with move to vue-cli)

The source code lives in src/, and is built into dist/. index.html is the game itself, while editor.html is a simple map editor.

Desktop Build

Note: These steps currently don't work. Need to be fixed after the conversion to vue-cli broke them.

A desktop build can be created:

npm run build-electron # Builds desktop resources into build/electron
npm run pack           # Creates unpacked game in dist/
npm run dist           # Creates unpacked game and installer in dist/

This is still a little rough around the edges, but works, at least on windows.

Roadmap

Implemented so far:

  • Game
    • Map loading
    • Basic resource loading, Link sprite movement
    • Music
    • Moving between screens, smooth screen transitions (though only a portion of the map is implemented)
    • Entering and exiting caves
    • Use of sword (Z key)
    • Drop bombs, though they do nothing (X key)
    • Basic enemies that can die
    • Link takes damage from enemies and projectiles, and can die
    • Enemies drop rupees and hearts
  • Editor
    • Screen design, single tile per cell (no burnable bushes, bombable walls, etc.)
    • Select enemies per screen
    • Enter and exit cave and level events

Coming next (in no particular order):

  • More accurate Link getting hit colors
  • More accurate enemy spawning
  • Expanded map
  • Gibdos

About

A Legend of Zelda clone in TypeScript

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published