Standard Vanilla Typescript SPA built with webpack.
npm run build- runs webpack in watch mode to compilesrcintodist.
Server serves dist to users
Standard NodeJS environment
npm run build- build a dist foldernpm start- runs theindex.tsin nodejs
All type definitions are stored under /shared. Server delivers client to user. Client sends post request to /join to join game server, and connects via WebSocket to the address returned by the server.
Maps are created with Tiled. Use the pirates.tsx tileset and create a map of any set size with the following settings:

Size is optional. Server will merge all layers into terrain for world. Load the .tmx file into the server. Pirates does not support rotation at this time.
Maps have a corresponding .json file that includes crew options, ports, and other configurations for the map.
A .env and pirates.config.json file is provided in the repo, it's used as a template and/or as default values
Due to license issues, all sounds are owned and stored by Josh Grift. Access to audio is provided by an endpoint specified in a production .env file.
- Build
docker build . --tag joshgrift/pirates:next - Run
docker run -p 8081:8081 -d --rm -ePORT=8081 -eURL=127.0.0.1 joshgrift/pirates:next - Visit localhost:8081
latest- Latest releasenext- Latest push the master
- Emotes
- Quests
- AI Ships
- Clans
- Global Clan Score
- Clan territory
- Clan war
- Clan rank
- Skins?
- Unlock emotes?
- Unlock skins?
- Sound Emotes?
- Private Servers?
- Web RTC with players nearby?
- Ship/Terrain Assets - Kenney.nl
- Building Assets - Kenney.nl
- Emotes - Kenney.nl
- Font - dtinth
- Inventory Items - cheekyinkling (Shikashis)
- Characters - illustmaker
- Map Builder - Tiled