Welcome to my GitHub profile! I enjoy building tools and prototypes that connect systems programming with game development.
A selection of repositories that showcase what I like to build.
๐ ChatWire
Language: Go | Complexity: High
A robust bridge between Discord and Factorio servers, manages servers and empowers moderators. A part of M45-Science github organization (Website). Active since 2017.
Lines of Code: ~14k
Highlights:
- Discord bot development: DiscordGo
- Custom game-server and game-mod updaters. Download API, Mod API
- Go concurrency and goroutines
- Process control and system integration
- WebSockets and HTTP APIs
- Live logging and diagnostics
๐ ONI-SeedView
Language: Go | Complexity: Medium
Web (web assembly) map seed viewer for the game 'Oxygen Not Included' using Ebiten. Fetches seed data and renders an interactive map with detailed info.
Try it here Lines of Code: ~4.6k
Highlights:
- Game data parsing
- Rendering with Ebiten
- Interactive seed exploration
- UI scale can be adjusted
- Can export high-res printable maps
- Touch controls for mobile
- Available as an alternate viewer on MapsNotIncluded.org
๐ฆ goXA
Language: Go | Complexity: Medium-Low
Custom archiving utility with a compact format.
Lines of Code: ~5k
Highlights:
- Custom archive structure
- Checksums, many compression types
- Preserve file permissions, mod times
- Offers forward error correction
- Threaded compression options
๐ ๏ธ Factorio SoftMod (for M45-Science)
Language: Lua | Complexity: Medium-High
Lines of Code: ~7.5k
Highlights:
- Localized to several languages
- Player menu with vote-banish system for player-based moderation.
- No game mod download needed
- Can be updated mid-game via careful use of scenario scripting
- Dynamic GUI generation
- Permission-based commands
- Player permissions management
- Logging of player actions
๐ดโโ ๏ธ PixelPirates
Language: Go | Complexity: Medium-Low
Retro sailing and exploration prototype.
Play online Lines of Code: ~5.7k Blog post about this project
Highlights:
- Custom real time music synthesizer.
- Use of Perlin Noise for procedural generation of sky.
- Runs well in-browser using web assembly.
- Can imort sprite sheets from Aseprite
๐น๏ธ goMMO
Language: Go | Complexity: Medium-Low
Client-side MMO prototype demonstrating basic networking. Implements a small world simulation and WebSocket communication for testing.
Lines of Code: ~3.9k
Highlights:
- WebSocket networking
- Custom low-bandwith binary networking protocol
- Use of linear interpolation for smooth movement and frame-rate, even with base rate of 8 updates per second.
- Uses hashmap map-chunk system for efficiency
- Caching of serialized game data to significantly reduce CPU needed in busy areas
Language: Go | Complexity: Medium-Low
Minimal server browser for Factorio with a web interface. Polls servers on a schedule, caches results, and serves a simple index page.
Live Demo Lines of Code: ~1.3k
Highlights:
- RESTful HTTP handling
- Server polling and caching
- Front-end/back-end integration
- Uses matchmaking API
๐ซ FactBanSync
Language: Go | Complexity: Medium
Synchronizes ban lists across multiple Factorio servers. Contains a CLI merge tool and lightweight web API for centralized management.
Web Interface Lines of Code: ~1.6k
Highlights:
- Data synchronization
- CLI tool design
- JSON processing
- Lightweight web server
๐ GoRecoverBlurText
Language: Go | Complexity: Medium Attempts to recover blurred or pixelated text using brute-force comparison that is surprisingly effective. Lines of Code: ~330
๐ golang-frac
Language: Go | Complexity: Medium Fractal visualizer and generator with WebAssembly support.
Lines of Code: ~300
Highlights:
- Complex number math
- Ebiten graphics engine
- WASM build pipeline
๐น goMarketMadness
Language: Go | Complexity: Medium A tribute to a childhood type-in economic sim.
Play it here Lines of Code: ~1.8k
Highlights:
- Simulates TUI of TI-99/4a
- Game loop and economic modeling (brownian noise)
- Event-driven simulation
Thanks for visiting!