Files for my website bwc9876.dev
at main 30 lines 1.7 kB view raw
1--- 2name: Manhunt App 3summary: Live location tracking and playback for the game "manhunt" 4timespan: 5 from: 2025 6 to: 2026 7tags: 8 - tauri 9 - rust 10 - react 11 - mobile 12links: 13 github: Bwc9876/manhunt-app 14image: ./manhunt-app.webp 15--- 16 17import ExtLink from "@components/ExtLink.astro"; 18export const components = { a: ExtLink }; 19 20This is a side project I've been working on-and-off with for a bit. The idea is a live location tracking app for when you're playing manhunt. 21 22The primary purpose is to display a replay of everyone on a map as the game goes on. Additionally, during the game, hiders' locations can be sent to seekers to keep the hiders on their toes. I also have logic written for a powerup system, but not 100% sure how I want to implement it yet. 23 24I made the bulk of the app in Rust. I'm using [matchbox](https://github.com/johanhelsing/matchbox) for transport. It's a WebRTC implementation so all my netcode is peer-to-peer. There's no real authority after the game starts, I have a concept of "host" in the lobby but that's just for changing settings and starting the game. 25 26I'm proud that so far the peer-to-peer is working out; it means data privacy is easy since location data is never sent to me server. Speaking of my server, I'm using matchbox_signaling to create a signaling server that handles matchmaking players. 27 28The actual app part is made with Tauri. I have a fairly minimal UI made in React; it mostly fetches and displays state from my Rust code where the actual logic of the game is being processed. For the map I'm using [leaflet](https://leafletjs.com/). 29 30Hopefully I'll get this done soon. I'm pretty proud of (some of) the code!