Skip to content

Repository files navigation

Energy Shot

A fast, friendly multiplayer laser-tag arena FPS built with Godot 4 (.NET/C#). No gore, no drama — get zapped, respawn, drop back in.

How it plays

  • Charge-up lasers: hold the trigger to spin up your energy weapon — the longer the charge, the faster, bigger, & meaner the bolt (blue → red). Release to fire a visible laser burst that travels (with a little drop), so shots can be dodged.
  • Punching: with fists out (slot 1), left-click for close-range brawling. Getting punched blurs your screen for a bit.
  • Full-auto ability: press F for 3 seconds of low-damage rapid fire (15 s cooldown).
  • Difficulty handicap: pick Beginner / Intermediate / Expert when you join. Lower tiers get bigger health pools and hit higher tiers harder, so mixed-skill lobbies stay fair.
  • Spawn armor: 5 seconds of invulnerability after every spawn (white glow). Firing or punching cancels it.
  • Spawn room: you respawn in a room above the arena & drop back in when you're ready.
  • Slingshot universal ammo: with the slingshot out & empty, walking onto any world item loads it instead of collecting it — a dropped laser, the boomerang, someone's bread, even the paper airplane. Slung items fly the slingshot's draw-scaled arc & become ordinary pickups again wherever they land.
  • The paper airplane: exactly one in the arena, in slot 6. Thrown, it locks onto whoever was under your crosshair & glides after them — their screen fills with a red ring beeping faster & faster, then they catch fire & pop, strictly single-target, nobody near them harmed. Punch it out of the air to catch it & throw it back. A glide that never lands its target comes down armed: a landmine that picks whoever steps on it, or slingshot ammo for anyone with a slingshot out.
  • The bread ritual: your one-per-life loaf is slot 7. Left-click to eat & you're healed to full — after standing perfectly still for three seconds, rooted, with a reverse meter draining on your screen, the loaf raised to your face, crumbs falling, & a tag over your name telling the whole arena what you're doing. You can't cancel it; anyone who lands a hit on you can, & the loaf is wasted.
  • Death drops everything: weapons, your uneaten bread, & whatever's nocked in your slingshot all land where you fell.
  • Leaderboard, streak & zap messages with appropriately dry humor, low-health vignette, & more.

Controls

Full reference: docs/CONTROLS.md (movement, all 7 weapon slots, abilities, music voting, & hidden mechanics).

Input Action
W A S D / Mouse / Space Move, look, jump
Left mouse Use selected weapon — punch with fists, hold to charge laser / draw slingshot (fires whatever the slingshot is loaded with)
Right mouse Unbound (reserved)
Mouse wheel (up = prev, down = next) / Q / E Cycle carried weapons
1-7 Fists, laser, banana, boomerang, slingshot, paper airplane, bread
Shift / C / V Slide, crouch, first-/third-person
F / G Full-auto burst, dance
Tab Message history
. / , Music vote up / down
Esc Quit dialog

Multiplayer

The easiest way to play: Join Game — the official dedicated server address is pre-filled, so just pick a name & difficulty and jump in. (Releases deploy to the official server automatically when deploy credentials are configured.)

Prefer to host your own? Host from the main menu — UPnP discovers your address; enable UPnP on your router or forward UDP port 55556.

Grab the latest build from Releases — macOS builds are signed & notarized.

Development

  • Engine: Godot 4.7.1 (.NET), C# / net9.0
  • Build: dotnet build
  • Unit tests (gdUnit4): GODOT_BIN=<godot binary> ./addons/gdUnit4/runtest.sh -a tests
  • Automated multiplayer playtest (headless host + 2 clients exercising the full gameplay loop): GODOT_BIN=<godot binary> ./tests/playtest/run-playtest.sh

CI runs both suites on every push/PR; tagging v* builds, signs, notarizes, & publishes releases automatically.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages