Fast-paced multiplayer top-down shooting game for js13k 2022 competition
kb
submission source-code in js13k
branchStart game, share the link and wait friends to play:
W A S D
/ โ โ โ โ
to moveShift
to slow down movingE
to to PICK weapon on the map or DROP your current weaponSpace
to jumpR
to reload weaponQ
to switch secondary weapon slotDROP
button to pick weapon on the map or drop your current weaponRELOAD
button to reload the weaponSWAP
button to swap the secondary weapon slotAt spawn each Player or NPC has 10hp
(hit points). You are able to get extra 10sp
(shield points) on top of that.
Kill opponents ๐ | ๐น | ๐คก | ๐ค | ๐ | ๐ฆ | ๐ | ๐ฐ | ๐ฆ | ๐บ | ๐ต | ๐ฆ | ๐ญ | ๐ฆ | ๐ธ to score FRAG
and get 5cr
Kill NPC ๐
| ๐ | ๐ท | ๐
๐ป to score FRAG
and get 1cr
Destroy objects ๐ข | ๐ฆ | ๐ชฆ to get items
hp
hp
cr
(credits)cr
(credits)sp
(shield-point)am
(ammo-magazine)Tap 4 times on the main game logo to unlock dev-mode and dev-settings.
AudioContext
support is required (available from Safari iOS 14.5, April 2021)NodeJS
v18 or higher is requiredNPM
v7 or higher is required for workspacesCode for Music generation in runtime created by author. Some instrument samples are picked from ZzFXM example song Depp
Emoji Font Twemoji Mozilla is used for cross-platform emoji rendering. Game is able to work without e.ttf
file, but some icons are incorrect rotation angle, or different at all. But game should be playable anyway.
2D graphics rendering is started from js13k-2d and highly rewritten for what I need.
Sound Effects - ZZFX.
First of all, install dependencies:
npm i
Use start
script to build and watch for changes, run local server (localhost:8080)
npm start
To deploy the game run the build
script and then start the server
# build only
npm run build
# run server
node server.js
packages/tools/src/config.ts
file. It provides types and some good utilities to compose the final configuration.packages/client/assets/config.json
by running npm run config
.npm start
or npm run build
- scripts will copy packages/client/assets/config.json
to public/config.json
, it will be loaded by the game and will be used for all global configuration.If you need some new option from the code to be exposed in config.json
, please create the issue.