openvibers/afresume Commits

Fix marquee animation scoping; expand HoboQuest with engine + codebase technical depth

OP OpenVibers committed 17 May 2026 · b508907ff5 · 3 files, +33 −9


Changes

ddiff --git a/src/components/Marquee.astro b/src/components/Marquee.astro
iindex f8da774..977d478 100644
---- a/src/components/Marquee.astro
++++ b/src/components/Marquee.astro
@@@ -2,7 +2,7 @@
const tech = [
"Python", "TypeScript", "Node.js", "SQL", "Anthropic", "OpenAI", "Machine Learning", "Electron", "React", "Vue",
"Lua", "C#", "Linux", "NGINX", "MongoDB", "Redis", "FFmpeg", "Excel", "PHP", "TamperMonkey",
-- "WebRTC", "PostgreSQL", "OAuth2 / OIDC", "Microservices", "Event-Driven Architecture", "WebSockets",
++ "WebRTC", "PostgreSQL", "OAuth2 / OIDC", "Microservices", "Event-Driven Architecture", "WebSockets", "Canvas API",
];
---
<div class="marquee" aria-hidden="true">
@@@ -11,7 +11,7 @@ const tech = [
</div>
</div>
--<style>
++<style is:global>
.marquee {
overflow: hidden;
border-block: 1px solid var(--border);
ddiff --git a/src/content/experience/04-openvibe.json b/src/content/experience/04-openvibe.json
iindex 6b1257c..ebf83aa 100644
---- a/src/content/experience/04-openvibe.json
++++ b/src/content/experience/04-openvibe.json
@@@ -6,7 +6,7 @@
"bullets": [
"Sole architect and engineer on OpenVibe — a 15-microservice open-source platform kernel: distributed event bus, OIDC/OAuth2 identity provider, capability contract registry, media object store, live-streaming ingest and restream, real-time chat, billing ledger, AI/search backbone, and realtime infrastructure. Self-hosted alternative to Twitch + YouTube + Patreon + Discord. 16 phases documented; 11+ fully implemented with cutover runbook and migration tooling complete.",
"Built and operated HoboStreamer from scratch — a full live-streaming platform with WebRTC SFU, HLS, multi-destination RTMP restream (OBS → Twitch/YouTube/Kick simultaneously), auto-recorded VODs, clip detection, real-time chat with custom emotes, voice channels, stream analytics, comprehensive moderation tools, and an integrated browser game for viewers. Fully open source.",
-- "Built HoboQuest — a persistent server-authoritative browser MMORPG: 512×512 tile open world, 7 skill systems, PvP, dungeons, base building, daily quests, leaderboards, and a collaborative pixel canvas. Integrated live into HoboStreamer so viewers play alongside the broadcast.",
++ "Built HoboQuest — a browser MMORPG with a custom isomorphic game engine: wrote all game logic once in shared.js, compiled to both server and client via a custom MD5-diffing compiler. Source Engine-style lag compensation (client-side prediction + server reconciliation) drives the real-time multiplayer. Server-master.js orchestrates 4 independent game instances with distinct rulesets (PvP world, social hub, farm island, ship minigame). Custom Canvas 2D rendering engine with SAT collision detection. Open-world survival: building, combat, NPC AI, 7+ skills, inventory/crafting/bank, bus fast travel. In-game scratch card and slot casino; mobile touch and gamepad input. Integrated live into HoboStreamer — viewers watch and play in the same session.",
"Maintained hobo.tools — central SSO and OAuth2 identity network across 14 interconnected services, including shared auth, service registry, image processing, maps, audio, and cross-domain session management."
],
"stack": ["TypeScript", "Node.js", "Express", "SQLite", "PostgreSQL", "WebRTC", "WebSockets", "Redis", "OAuth2", "OIDC", "FFmpeg", "Lua", "C#", "React", "Vue"],
ddiff --git a/src/content/projects/hobo-quest.mdx b/src/content/projects/hobo-quest.mdx
iindex bec92ee..e0df231 100644
---- a/src/content/projects/hobo-quest.mdx
++++ b/src/content/projects/hobo-quest.mdx
@@@ -1,16 +1,40 @@
---
title: "HoboQuest"
category: "hobo"
--summary: "Browser MMORPG and real-time collaborative pixel canvas — no downloads, no pay-to-win, just open a tab and play."
--tech: ["TypeScript", "WebSockets", "Canvas API", "Node.js", "PostgreSQL"]
--role: "Founder / Engine & Gameplay"
++summary: "Browser MMORPG with a custom isomorphic game engine, Source Engine-style lag compensation, and 4-instance server architecture — no downloads, open a tab and play."
++tech: ["JavaScript", "Node.js", "WebSockets", "Canvas API", "Express", "isomorphic compiler", "lag compensation", "Canvas 2D physics"]
++role: "Founder / Engine & Gameplay Engineer"
year: "2023–Present"
image: "/assets/img/projects/hobo-quest.png"
--links: { "live": "https://hobo.quest" }
++links: { "live": "https://hobo.quest", "github": "https://github.com/HoboStreamer/www.Hobo.Quest" }
featured: true
order: 12
---
--A persistent browser MMORPG and collaborative canvas running at [hobo.quest](https://hobo.quest). The MMORPG is a full open-world survival RPG in the browser: 512×512 tile world, 7 skills (Combat, Mining, Woodcutting, Fishing, Crafting, Building, Cooking), PvP, dungeons, base building, daily quests, and leaderboards — all server-authoritative with client-side prediction.
++A persistent browser MMORPG built on a custom-engineered isomorphic game engine — no Unity, no Godot, no game framework. Everything from the physics and collision system to the multiplayer protocol was written from scratch.
--The canvas is a separate 512×512 real-time pixel art board for collaborative art and territory battles. Integrated live on HoboStreamer so viewers can play together during broadcasts.
++**Custom isomorphic compile pipeline.** All game logic lives in a single `shared.js` file containing conditional compilation blocks (`/*IF_SERVER*/.../*IF_END*/`). A custom `compiler.js` transforms it into `server.js` and `public/client.js` — the same physics, entity, and world state logic runs on both sides, preventing desyncs by design. MD5 change detection skips unnecessary recompiles.
++
++**Source Engine-style lag compensation.** Real-time multiplayer uses client-side prediction with server reconciliation — the same methodology used in Counter-Strike and Valve's Source Engine. Movement and combat feel instant for the player while the server remains authoritative over all state.
++
++**Multi-instance server architecture.** A `server-master.js` orchestrator spawns four independent game-server processes (ports 9000–9003), each running a different map with its own ruleset:
++- Default world — PvP enabled, player building enabled
++- Central city — social hub with vendors; PvP disabled
++- Farm island — resource farming; PvP enabled, building disabled
++- Ship minigame — dedicated activity instance
++
++**Canvas 2D rendering engine.** Built a custom Canvas 2D rendering layer (`lib/c2d.js`) with a full 2D separating-axis theorem (SAT) collision detection system, polygon/circle collision, voronoi region edge detection, and frame-accurate hit resolution — no third-party physics library.
++
++**Open-world survival systems.** Tile-based 512×512 open world with:
++- **Building**: place and upgrade walls, doors, beds, tool cupboards, campfires, barbed wire
++- **Combat**: melee knockback, ranged pistol, arrows with ballistic gravity arc, NPC aggro with patrol/attack telegraph/hit flash
++- **Skills**: Woodcutting, Mining, Herbology, Attack, and more — persistent per player
++- **Economy**: inventory, crafting recipes, equipment slots, bank system, bus system for zone travel
++
++**In-game casino.** Scratch card and slot machine minigames with a credit balance system, SoundManager 2 audio integration, and server-validated game state.
++
++**Cross-platform input.** Mobile touch controls overlay (tap/joystick buttons) with runtime touch detection, plus gamepad detection with a controller configuration UI. Desktop WASD + mouse.
++
++**Integrated with HoboStreamer.** The game is embedded live in the streaming platform — viewers watch and play simultaneously, with chat bridged between the game and the stream.
++
++The collaborative pixel canvas is a separate 512×512 real-time art board for territory battles and group art, also accessible from [hobo.quest](https://hobo.quest).