Accepting Managed Website Clients
MENDOLA.TECH
Fully Managed Websites + Custom Software Solutions
Selected engineering work: systems, automation, and practical builds that ship.
BASE: Florida, USAEMAIL: rob@mendola.tech

Work: Case Studies & Open Source

PORTFOLIO

Selected work across managed websites, custom software solutions, open source, and practical systems engineering.

Open Source

PUBLIC

Case Studies

FIELD NOTES

Technical breakdowns of real challenges solved.

Eidolon

60 FPS in the Browser

Challenge

Building a full 3D isometric action-RPG that runs smoothly in web browsers—including mobile devices—without native code or plugins.

Solution

Built with Three.js using a chunk-based streaming architecture—only loading and updating entities within the player's active 3x3 chunk grid. Optimized GLTF assets to 500-2k triangles per model. Implemented instanced rendering for repeated objects, frustum culling, and draw call batching to keep GPU overhead minimal.

Result

Achieved consistent 60 FPS target on desktop and mobile browsers with smooth gameplay and responsive controls.

Three.jsWebGLGLTFJavaScript
Eidolon

Scalable Multiplayer via Delta Compression

Challenge

Initial multiplayer implementation sent complete world state to every connected player on each tick, causing bandwidth to scale linearly with player count and limiting concurrent sessions.

Solution

Rewrote the Go server to track per-player entity snapshots and transmit only changed fields. Added GZIP compression with pooled writers to eliminate allocation overhead. Prioritized updates by proximity—nearby entities update at 20Hz, distant entities at 5Hz.

Result

Reduced per-player bandwidth by ~80%, increasing theoretical player capacity from ~50 to ~250 concurrent players on the same server hardware.

GoWebSocketDelta CompressionGZIP
Eidolon

Spatial Partitioning for O(1) Collision Queries

Challenge

Naïve collision detection checked every entity against every other entity—O(n²) complexity that degraded rapidly as world population grew beyond 100 entities.

Solution

Implemented a spatial hash grid partitioning entities into 50-unit cells. Collision queries now only check entities in adjacent cells. Added separate tracking for movable vs static entities to skip unnecessary recalculations.

Result

Collision detection dropped from O(n²) to O(n), supporting 500+ simultaneous entities with sub-millisecond query times.

GoSpatial HashingGame Physics
Eidolon

Procedural Loot System with Deterministic Scaling

Challenge

Needed thousands of unique items without hand-crafting each one, while ensuring loot felt rewarding at every level and preventing stat inflation from breaking balance.

Solution

Built a composable item generator with base types, rarity tiers, and affix pools. Stats scale via formulas tied to item level and rarity multipliers. Rarity distribution uses weighted random selection (Common 50%, Rare 30%, Epic 15%, Legendary 5%).

Result

System generates 10,000+ unique item combinations. Level 1 and level 50 items feel proportionally powerful without manual tuning per tier.

JavaScriptProcedural GenerationGame Design
Eidolon

Real-Time Party System with Selective Broadcasting

Challenge

Party features (health bars, positions, shared XP) required frequent updates, but broadcasting to all connected players wasted bandwidth and leaked information.

Solution

Implemented party-scoped message channels. Party state changes broadcast only to party members via ID lookup. Added leader transfer on disconnect and automatic disband when empty.

Result

Party updates use <1% of total bandwidth. Supports unlimited concurrent parties with zero cross-party data leakage.

GoWebSocketMultiplayer Architecture