dek / Multiplayer Systems Engineer
I create networking, rendering and gameplay systems for multiplayer games / MMORPGs. Below is a selection of my work, most of which has been on Hordes.io. If you feel like I could help you with a project, please reach out to me via email. I am also on X / Twitter and GitHub.
Real-time Networking
Navigation Mesh Generator + Pathfinding
3D Renderer (Open World)
Combat Engine
World Editor
Game Tooling
MMORPG Systems
Backend / DevOps Systems
Asset Pipeline
Moderation Systems
===
Real-time Networking
Created a dynamic tick rate netcode system to handle spike loads while maintaining a playable experience for players:
- 3D movement and combat (🎞️ Video: Basic movement and spell usage)
- Stable, large scale encounters: (🎞️ Video: PVE Bossfight, 🎞️ Video: PVP Skirmish)
- Selective visibility (faction-based visibility, ghost mode)
- Bucket-based culling (🎞️ Video: Proximity based net data)
- Dynamic tick rate adjustments for net data
- Diff checker for state change detection
- Data serializer and schema generator
Navigation Mesh Generator + Pathfinding
Custom navmesh generation and baking, allowing for seamless navmeshes in large open world spaces without size limitations.
- Large scale open world navmesh generation (📷 Image: Mob Navmesh Overview)
- Seamless transitions for indoor spaces/caves (📷 Image: Indoor / Outdoor Transition)
- Triangulation post-processing for low memory consumption (🎞️ Video: Navmesh Post Processor)
- Support for different actor types (large vs. small monsters, NPCs, bot players)
- Chunk-based processing for parallelization
- Octree for efficient "nearest triangle" queries
- Long-distance hierarchical + A* pathfinding (🎞️ Video: Pathfinding)
3D Renderer (Open World)
A custom-built WebGL 3D renderer for an MMORPG (Hordes.io), optimized for typical high-load situations, e.g., many moving entities as well as large open worlds with full freedom of movement. This renderer achieves 144+ FPS in the browser on consumer-grade hardware.
- Large Environment Streaming (🎞️ Video: Large Forest with 2 Biomes and Ocean)
- Frustum-based culling (🎞️ Video: Debug Frustum Cull)
- Seamless distance-based LOD terrain (🎞️ Video: Terrain LOD)
- Prop batching for drawcall reduction (📷 Image)
- Effect system (🎞️ Video: Effect with particles, ribbon + UV texture shift)
- Foliage + Terrain System (🎞️ Video)
- Underwater Scenes & Texture Based Water Depth Effects (🎞️ Video)
- Day / Night Cycles (🎞️ Video)
- Real-time cascaded shadow maps
- Seamless biome transitions (📷 Image)
- Pre-baked vertex lighting (📷 Image)
- Custom 3D file format with lossy compression
Combat Engine
- Line-of-sight testing (🎞️ Video: LOSing Pillars)
- Quadtree optimized querying for AOE spells
- Buff system: stacks, timers, event triggers (🎞️ Video: Spell Reflect Buff)
- Spell system: spell points, spell modifications, passives, etc. (🎞️ Video)
- RPG Stats: HP / Def / Block / Crit % / Haste % / MinD-MaxD (📷 Image)
- Spells vs. Environment sliding / collisions (🎞️ Video)
- Stuns, status effects, disorientation (🎞️ Video: Blind CC server-sided path takeover)
- Mouse-raycast vs. environment (🎞️ Video: Spell Placement)
World Editor
A fully featured 3D world editor in the browser allowing the creation of large open worlds as well as placing monsters + real-time network connection to the game server. Features:
- Terrain height & texture map editing (brush + mask based) (🎞️ Video: Heightmap Editor)
- Prop placement + manipulation
- Placing water bodies & sloping (🎞️ Video: Water Editor)
- Area / Tile ID editing / Hole placement (🎞️ Video: Tile ID Editor)
- Spawn, Node & Path editing (🎞️ Video)
- Debug visualizations: chunks, prop colliders, elevation, walkability, nav-mesh (🎞️ Video)
- "Movie mode" to record and play back pre-set camera paths with hidden UI
- Automatic reloading of changed assets
- Multiplayer editing: (🎞️ Video 1, 🎞️ Video 2)
Game Tooling
Multiple editors for quick editing of MMORPG content as well as getting comprehensive overviews over already existing content. Automatic compilation of all data into a single binary file for clients to read.
- Foliage Editor (🎞️ Video)
- Buff Effect Editor (🎞️ Video)
- Projectile Editor (🎞️ Video)
- Particle Editor (🎞️ Video)
- World Overview + Editors (🎞️ Spawn + Path editor, Navmeshes)
- Terrain & Biome Set creator
- Sound & Sound Sets
- Loot & Drop rate management
- Table inspector: quick insights + fuzzy search into the entire game's content
MMORPG Systems
A complete MMORPG database with several systems and atomic transactions using PostgreSQL.
- Trading: Auction House / Merchant System for player trading (📷 Image: Merchant UI)
- Items: Inventory, Stash, Upgrading (🎞️ Video: Blacksmith Upgrading)
- PVP: Fame Steal System, ELO based Arena, Prestige System (📷 Image: Prestige System)
- PVE: Boss Kill Analysis, Class Performance Analysis, Reward Systems (📷 Image: Boss Logs)
- Social: Chat, Friend System, Party, Clan Systems
- Economy: Player farming behavior, Economy logging and analysis
Backend / DevOps Systems
Various systems useful for running live service / multiplayer games. I've worked with common backend tools for scaling and delivery.
- Single writing + multiple read-only DB connection
- Tested up to 80M transactions per day
- Low frequency + high frequency selective database backups
- Transactional emails & Marketing/Newsletter system
- Stream integration: Twitch streamer in-game display
- UI Localization allowing for community members to contribute
- Player feedback poll collection & analysis/visualization
- Discord bot: allow players to look up items and player gear + alert moderators
- Daily & Weekly automated maintenance tools
- Test runners for simulating organic player load and behavior
- NGINX reverse proxy and load balancing
- Cloudflare CDN for cache utilization
Asset Pipeline
Content pipeline which allows for tracking of asset MD5 hashes for quick diff checks and automatic re-bundling. The primary use of this system is to ensure a consistent post-processing step for all assets, normalizing export settings and allowing a non-destructive creative workflow without having to manually re-export files. When an asset is saved by a designer, the game files are exported into output formats with the correct compression settings.
- Auto resize, crop, encoding of textures in DXT / ASTC / AVIF formats
- Compiling and updating of texture atlases
- Compiling minimaps from world data
- Post-processing of alpha textures (foliage, etc.) for improved MipMaps
- Automatic reloading of assets in 3D editor, improving the creative process
- Audio file volume normalization and OGG / WAV compression
- Lossy compression of geometry into custom 3D file format
Moderation Systems
Created a moderation platform for staff members, allowing moderating player accounts. Systems include:
- Chat log analysis
- Merchant / Auction house activity
- Player account management locking
- Permission system for fine-grained access control
- Player report system
- Neural network-based chat sentiment detection
- Moderation logs