Skip to content

VesperLabs/aether

Repository files navigation

Aether Online

Tests

A Javascript MMO using PhaserJS and SocketIO

⚡️ Install

# Run the install
npm install
# If NPM fails installing canvas pkg
# https://flaviocopes.com/fix-node-canvas-error-pre-gyp-macos/
brew install pkg-config cairo pango libpng jpeg giflib librsvg

🏔️ Environment

# .env file example
DEBUG=false
MONGO_URL= # If blank will go into offline mode. (No saving)
SERVER_FPS=20
SERVER_URL=http://localhost:3000
PORT=3000
ASSETS_URL= # Where to load images from (Leave blank for DEV)
PUBLIC_DIR=../public # Running server loads assets from here
PEER_SERVER_PORT=9000 # Where the server runs the peerjs instance
PEER_CLIENT_PORT=9000 # (Optional) Where the client listens for peerjs

📟 Running

npm run server:watch # run the server locally
npm run client:dev # run the client locally
npm run web:dev # run the wiki locally

🛠️ Tooling

Tilesets

  • Resample down from NearestNeighbor in Photoshop.
  • Tiles need to be 32x32 and extruded to remove edge bleed.
npm install --global tile-extruder
tile-extruder --tileWidth 32 --tileHeight 32 --input ./public/assets/tilesets/clean/grassland.png --output ./public/assets/tilesets/grassland.png

✅ Todo list

Items

  • Suffix / Prefix system improvements
  • Spawned item mods min needs to take max into account

Cosmetic

  • Animated weapons

Systems

  • Trade window
  • Crafting system
  • Doors that require a key or level to pass through
  • Ability to choose from mage-type rogue-type or warrior-type rewards on some quests

Combat

  • More spells that effect movement, (dives, dodges, pushback etc)
  • Back-stab damage
  • Second joystick casts last used attack (mobile)

Performance

  • Predictive hero movement so we do not have to send [x,y] @ 60fps and so other players aren't able to hit you when you are not near them.
  • Multiple Realms because 1000 people in a map will not scale.
  • How to make servers smart about not loading map rooms until a person is actually in them.

Completed

  • Show warning before enemies attack
  • Serverside individual cooldowns for spells
  • Move spell cooldowns to serverside check (Separate cooldowns)
  • Gloves items
  • Map item drops (Mining, Herbs)
  • Negative buffs: (Frozen, Stunned, etc.)
  • Allow critical strikes on spells
  • Ranged weapons 🏹
  • Readable signs objects
  • Hold to aim spells
  • Helmets that can hide hair or face
  • Elemental Damage / Resistances
  • Inventory Bags system
  • Party system
  • Enemy spells
  • Buffs
  • Facial hair is now Whiskers on its own layer seperate from face.
  • Consumables and Food
  • Cooldowns show in UI
  • Attack stamina
  • Fix party system to update stats properly
  • UserSettings minimap (on / off)
  • UserSettings music (on / off)

About

MMO Rpg build with Phaser, Socket.io, React and TS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published