1
0
Fork 0
mirror of https://github.com/imjasonh/terminus synced 2026-07-06 22:12:35 +00:00
terminus/README.md
Jason Hall c6509acf63 update readme
Signed-off-by: Jason Hall <jason@chainguard.dev>
2025-09-24 09:29:27 -04:00

2.1 KiB

Terminus

A multiplayer 3D first-person shooter you can play in your terminal. Players connect via SSH to experience real-time multiplayer FPS action with wandering NPCs.

Current status:

Example Screenshot

Vision

Terminus is a multiplayer terminal-based FPS inspired by Wolfenstein 3D. Players connect via SSH and experience real-time 3D multiplayer gameplay rendered using colored ASCII characters and ANSI escape codes. The game features dynamic lighting, projectile physics, player visibility, wandering NPCs, and multiple maps - all running at 30 FPS in your terminal.

Quick Start

# Build and run SSH server
go build
./terminus                # Default maze.map on port 2222
./terminus cave.map       # Open caverns map

# Connect from another terminal
ssh -p 2222 localhost

Controls

  • W/A/S/D - Move and strafe
  • Q/E - Turn left/right
  • SPACE - Shoot fireballs (visible to all players)
  • ESC - Exit

Multiplayer Features

  • SSH Server: Connect via ssh -p 2222 localhost
  • Player Sprites: See other players as large green @ symbols
  • Shared Projectiles: Fireballs shot by any player are visible to all
  • Wandering NPCs: Blue sprites that move randomly around the map
  • Up to 10 Players: Concurrent multiplayer support

Current Status

  • Phase 1 Complete: Local single-player with raycasting engine, projectile system, and dynamic lighting
  • Phase 2 Complete: SSH multiplayer server with player visibility and shared world
  • Phase 3 Complete: NPC system with wandering AI and multiplayer synchronization
  • 🔮 Future Enhancements: Combat system, advanced enemies, and interactive elements

Technical Features

  • Raycasting Engine: True 3D perspective with Z-buffer depth testing
  • Dynamic Lighting: Fireballs cast light on nearby walls
  • Sprite System: Players, NPCs, and projectiles rendered as 3D sprites
  • Thread-Safe: Proper mutex protection for multiplayer state
  • Real-Time: 30 FPS gameplay with delta-time movement
  • Map System: Support for multiple map layouts