DinoLand/README.md
2026-03-14 21:12:14 -05:00

2.6 KiB

Dino Land

No-build browser game using plain HTML/CSS/JS/PHP.

Run locally

cd "/Users/lawsonawhittington/.openclaw/workspace/Dino Land"
php -S 0.0.0.0:8000

Open on the same machine: http://localhost:8000

LAN test URL (from another device on your network):

  1. Find your LAN IP: python3 -c "import socket;s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM);s.connect(('8.8.8.8',80));print(s.getsockname()[0]);s.close()"
  2. Open: http://<YOUR_LAN_IP>:8000 (example: http://192.168.1.25:8000)

USB / thumbdrive distribution

Need to run Dino Land from a USB drive on unknown machines (Windows/macOS/ChromeOS)? See: thumbdrive-install.md

Controls

  • Up Arrow: jump
  • Down Arrow: duck
  • Left Arrow: walk backward
  • Right Arrow: walk forward

Gameplay Rules

  • TRex starts with 5 hearts (or 10 hearts in VIP mode).
  • Easy and Medium end with a portal that advances to the next difficulty while preserving score.
  • Moving forward earns score (+1 per forward step unit).
  • Water gaps cause instant death if landed in.
  • Ant collision costs 1 heart; jumping on ants crushes them.
  • Pterodactyls unlock after score > 100 (duck to avoid).
  • Meteors unlock after score > 250.
  • On death: top-10 leaderboard is shown; top-10 runs can be saved.

Leaderboard persistence

  • Backend endpoint: api/scores.php
  • Data file: data/scores.json

Audio / music toggle behavior

  • Music defaults to OFF when no preference exists in localStorage.
  • Toggle preference key: dinoLand.musicEnabled ('1' on, '0' off).
  • First user click on the music toggle resumes/unlocks Web Audio and starts procedural music when turned ON.
  • Music state is context-aware:
    • Title/start screen uses title music profile.
    • Gameplay switches profile by biome (Plains, Desert, Jungle, Snow, and Lava mapped to the Volcano profile).
    • Death screen switches to death music profile.
    • Restart/respawn to start screen returns to title profile.
  • Turning music OFF performs a short fade to mute; turning back ON fades in the current state profile.

Quick verification checklist

  1. Start server and open game.
  2. Confirm score increases while moving right.
  3. Confirm hearts drop on ant / pterodactyl / meteor collisions.
  4. Confirm water causes immediate game over.
  5. Confirm leaderboard loads and score save works.
  6. With a fresh browser profile, confirm music button starts as 🔇 Music: Off.
  7. Click toggle to ON and confirm audible looping background music starts.
  8. Click toggle to OFF and confirm music fades/mutes.
  9. Reload page and confirm toggle state persists.