You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
HikeMap User 8f4df77906 Add 150 POI geocaches and fix dropdown styling 4 weeks ago
.claude Fix: Complete resolution of JavaScript syntax errors 1 month ago
.well-known Add PWA and push notification support for mobile app deployment 1 month ago
build-tools Fix tap-to-navigate on Chrome mobile and PWA 1 month ago
docs Add RPG combat system with multi-monster battles and server persistence 1 month ago
mapgameimgs Add stats sync engine, grocery geocaches, and cart wranglin' prefix 1 month ago
mapgamemusic Add inactivity logout system and combat SFX 1 month ago
output Add APK to repository for easy distribution 1 month ago
sfx Add inactivity logout system and combat SFX 1 month ago
.gitignore Add APK to repository for easy distribution 1 month ago
APK-INSTRUCTIONS.md Fix tap-to-navigate on Chrome mobile and PWA 1 month ago
BUILD_APK_INSTRUCTIONS.md Add PWA and push notification support for mobile app deployment 1 month ago
CLAUDE.md Fix class skill names, add targeting modes, music autostart, WASD auto-enable 1 month ago
Dockerfile Add stats sync engine, grocery geocaches, and cart wranglin' prefix 1 month ago
FIX_ATTEMPTS.md Fix: Complete resolution of JavaScript syntax errors 1 month ago
README.md Add documentation and fix data persistence race condition 1 month ago
SKILLS.md Add documentation and fix data persistence race condition 1 month ago
admin.html Add 150 POI geocaches and fix dropdown styling 4 weeks ago
animations.js Add stats sync engine, grocery geocaches, and cart wranglin' prefix 1 month ago
artwork_todo.md Add inactivity logout system and combat SFX 1 month ago
database.js Add location-restricted monster spawning system 1 month ago
default.kml Force popups to render above everything with maximum z-index 1 month ago
docker-compose.yml Add inactivity logout system and combat SFX 1 month ago
geocaches.json Add 150 POI geocaches and fix dropdown styling 4 weeks ago
google-chrome-stable_current_amd64.deb Fix: Complete resolution of JavaScript syntax errors 1 month ago
icon-72x72.png Add PWA and push notification support for mobile app deployment 1 month ago
icon-96x96.png Add PWA and push notification support for mobile app deployment 1 month ago
icon-128x128.png Add PWA and push notification support for mobile app deployment 1 month ago
icon-144x144.png Add PWA and push notification support for mobile app deployment 1 month ago
icon-152x152.png Add PWA and push notification support for mobile app deployment 1 month ago
icon-192x192.png Add PWA and push notification support for mobile app deployment 1 month ago
icon-384x384.png Add PWA and push notification support for mobile app deployment 1 month ago
icon-512x512.png Add PWA and push notification support for mobile app deployment 1 month ago
index.html Enhance login screen monsters: double count, wandering, transparent card 4 weeks ago
manifest.json Add PWA and push notification support for mobile app deployment 1 month ago
package-lock.json Fix class skill names, add targeting modes, music autostart, WASD auto-enable 1 month ago
package.json Add RPG combat system with multi-monster battles and server persistence 1 month ago
server.js Add location-restricted monster spawning system 1 month ago
service-worker.js Add stats sync engine, grocery geocaches, and cart wranglin' prefix 1 month ago
to_do.md Add inactivity logout system and combat SFX 1 month ago

README.md

HikeMap - Location-Based RPG

A location-based RPG web application where you walk in the real world to explore trails, battle monsters, and level up your character. Also includes GPS track editing tools for trail mapping.

Features

RPG System

Character Creation

  • Choose from 4 races: Human, Elf, Dwarf, Halfling
  • Select your class (Trail Runner with running-themed skills)
  • Set your home base for respawning and skill management

Combat

  • Turn-based battles against MOOP (Matter Out Of Place) monsters
  • Skill-based combat with damage, healing, buffs, and multi-hit attacks
  • Hit/miss mechanics based on accuracy and dodge stats
  • XP rewards and leveling system

Skills & Progression

  • Unlock new skills at levels 2, 3, 4, 5, 6, and 7
  • Choose between two skills at each milestone (both unlock, one activates)
  • Swap your active skill loadout at your home base
  • Class-specific skill names (e.g., "Gel Pack" instead of "Heal")

Home Base

  • Set anywhere on the map as your respawn point
  • 3x HP regeneration when within 20 meters
  • Required destination when defeated
  • Skill loadout management location

Track Editing

  • Draw new GPS tracks directly on the map
  • Reshape existing tracks with rope physics simulation
  • Smooth tracks with a brush tool
  • Smart track snapping at endpoints with auto-splitting
  • Multi-track selection and merge operations
  • 20-step undo/redo history
  • Import/export KML files

Navigation Mode

  • Graph-based pathfinding using Dijkstra's algorithm
  • Automatic trail intersection detection
  • Real-time route recalculation when deviating from path
  • Map rotation to face direction of travel
  • Auto-center on GPS position

Quick Start

docker-compose up -d

Access at http://localhost:880

Local Development

npm install
node server.js

Access at http://localhost:8080

Game Mechanics

Stats

Stat Description
HP Health - reach 0 and you're defeated
MP Mana - used for skills, regenerates while walking
ATK Attack power
DEF Reduces damage taken
Accuracy Affects hit chance
Dodge Chance to evade attacks

Trail Runner Skills

Level Skill Choice A Skill Choice B
1 Kick-ems! (basic) -
2 Brand New Hokas (2x hit) Gel Pack (heal)
3 Downhill Sprint (power) Pace Yourself (defense)
4 Trail Blaze (AoE) Quick Feet (accurate)
5 Second Wind (MP buff) Trail Mix (quick heal)
6 Finish Line Sprint (3x hit) Zone In (accuracy buff)
7 Ultra Marathon (full heal) The Bonk (devastating)

See SKILLS.md for complete skill details.

Monsters

Monster Level Range Description
Sub Par Moop 1 Tutorial enemy
Moop 1-5 Standard enemy
Fancy Moop 1-5 Higher attack
Fanciest Moop 3-5 Stronger variant

MOOP = Matter Out Of Place (litter-themed enemies encouraging trail cleanup)

Technical Details

Architecture

  • Frontend: Single-page app in index.html
  • Backend: Node.js/Express server in server.js
  • Database: SQLite via better-sqlite3 in database.js
  • Real-time: WebSocket for live updates

Dependencies

  • Leaflet.js 1.9.4 (maps)
  • leaflet-rotate 0.2.8 (navigation rotation)
  • Express (API server)
  • better-sqlite3 (database)
  • jsonwebtoken (authentication)
  • ws (WebSocket)

Data Storage

  • User accounts with JWT authentication
  • Server-authoritative game state
  • LocalStorage as offline backup only

Browser Requirements

  • Modern browser with ES6 support
  • HTTPS or localhost for GPS features
  • Location services permission

Documentation

License

[Add your license information here]