Fast-paced multiplayer top-down shooting game for js13k 2022 competition
- 🎖️ 7-th place winner!
- 🥇 1-st place in Server category
- 🥉 3-rd place in Mobile category
- Check out 13 game post-mortem
- Check out initial 13
kb
submission source-code injs13k
branch
Start game, share the link and wait friends to play:
- The latest release is available on 🚪iioi server
- Online Players stats
- Move Mouse to aim and look around
- Push Mouse button to shoot
- Use
W A S D
/↑ ← ↓ →
to move - Hold
Shift
to slow down moving - Press
E
to to PICK weapon on the map or DROP your current weapon - Press
Space
to jump - Press
R
to reload weapon - Press
Q
to switch secondary weapon slot
- Use Left Joystick to walk-run-jump
- Use Right Joystick to aim-shoot (Move around aim-shoot zones to trigger some weapons like Pistol)
- Use
DROP
button to pick weapon on the map or drop your current weapon - Use
RELOAD
button to reload the weapon - Use
SWAP
button to swap the secondary weapon slot
At spawn each Player or NPC has 10hp
(hit points). You are able to get extra 10sp
(shield points) on top of that.
- Player kills neutral NPC to gain +1 score.
- Player kills another Player to gain +10 scores.
Kill opponents 💀 | 👹 | 🤡 | 🤖 | 🎃 | 🦝 | 🐙 | 🐰 | 🦌 | 🐺 | 🐵 | 🦊 | 🐭 | 🦍 | 🐸 to score FRAG
and get 5cr
Kill NPC 🍅 | 😐 | 🐷 | 🎅🏻 to score FRAG
and get 1cr
Destroy objects 🛢 | 📦 | 🪦 to get items
- ❤️ Heart: pick to restore 1
hp
- 💊️ Pill: pick to restore 2
hp
- 🪙️ Coin: pick for 1
cr
(credits) - 💎️ Diamond: pick for 5
cr
(credits) - 🛡️ Shield: pick to add 1
sp
(shield-point) - 🧱️ Ammo Magazine: pick to add 1
am
(ammo-magazine)
- 🔪 Knife (melee)
- 🪓 Axe (melee)
- 🔫 Pistol (trigger)
- 🖊 Machine-gun (auto)
- ️✏️ Heavy machine-gun (auto)
- 🪥 Shotgun (bouncing, scatter)
- ⛏ Crossbow (high velocity)
- 🔌 Plasma-gun (bouncing, auto)
- 🧵 Rail-gun (piercing)
- 🧣 Uzi (tracer bullets, rapid fire)
Tap 4 times on the main game logo to unlock dev-mode and dev-settings.
- Good, low-latency network connection is required for each playing client
- Fast mobile device or desktop to not lag other clients
- WebAudio
AudioContext
support is required (available from Safari iOS 14.5, April 2021) - WebGL context is required
- Modern JS syntax support
- Checked in the latest Chrome, Safari, Firefox on iOS, Android and Mac.
NodeJS
v18 or higher is requiredNPM
v7 or higher is required for workspaces
Code 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
- Recommended way to change global game configuration is via
packages/tools/src/config.ts
file. It provides types and some good utilities to compose the final configuration. - Generate
packages/client/assets/config.json
by runningnpm run config
. - Run
npm start
ornpm run build
- scripts will copypackages/client/assets/config.json
topublic/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.