
👉 GnollHack is an ambitious open-source project that bridges the gap between decades-old legacy C code and modern cross-platform development paradigms, serving as a rare and powerful showcase of .NET MAUI's capabilities in game development.
🏆 Engineering Achievements
GnollHack is not just another application; it is a profound technical achievement that demonstrates the true power and flexibility of modern .NET. For CTOs, technical leads, and senior developers looking to understand the limits of cross-platform UI frameworks, GnollHack stands as a testament to what is possible when legacy architecture meets state-of-the-art tooling.
- Legacy Modernization at Scale: We have successfully integrated NetHack's sprawling, multi-decade C codebase into a modern C#/.NET environment. This proves that vast legacy systems can be preserved, modernized, and distributed across contemporary platforms without rewriting the core business logic from scratch.
- .NET MAUI as a Game Engine: While .NET MAUI is traditionally seen as a framework for business apps, GnollHack pushes it to the edge. We utilize .NET MAUI to drive a complex, highly-interactive 2D game, proving its viability for high-performance, non-standard UI requirements.
- Advanced Cross-Platform Architecture: From a single unified .NET codebase and native bridge, GnollHack seamlessly targets Android, iOS, Linux, macOS, and Windows. This represents a massive reduction in platform-specific technical debt and maintenance overhead.
- High-Performance Multi-Threading: To maintain high frame rates while executing complex game logic, GnollHack implements a sophisticated multi-threaded architecture. The native C game loop is completely decoupled from the MAUI UI and the hardware-accelerated Skia rendering threads, showcasing advanced synchronization and thread-safety patterns in .NET.
- Ecosystem Integration: By integrating SkiaSharp for GPU-accelerated 2D rendering and FMOD for professional-grade audio middleware, GnollHack exemplifies how smoothly .NET MAUI can orchestrate industry-standard native libraries to deliver a rich multimedia experience.
- Grounded Agentic AI & Automated Evaluation: Through the Gnoll Overseer, GnollHack integrates an optional agentic AI advisor directly into the client, pairing frontier models with structured live game snapshots, C source code indexing, and dual-wiki retrieval, backed by GnollBench, a dedicated multi-provider evaluation harness that grades accuracy, penalizes dangerous hallucinations, and measures speed and cost.
💻 Technologies Behind GnollHack
📱 UI Framework: .NET MAUI
(Originally Xamarin.Forms)
GnollHack is one of the very few games developed with .NET MAUI, which is primarily a cross-platform app creation framework. GnollHack extends the boundaries of .NET MAUI by implementing a fully fledged 2D game. .NET MAUI allows GnollHack to run on Android, iOS, and Windows. On Linux and macOS, the same .NET MAUI app runs on Avalonia UI.
.NET MAUI allows us to quickly and effectively develop a complex UI for GnollHack, using a multitude of premade controls, such as text entries, multiline text boxes, in-game web views, and dynamically sizing layouts.
🎨 Graphics Drawing Engine: SkiaSharp
GnollHack utilizes the highly effective SkiaSharp, which is built upon Google's Skia graphics drawing engine, to draw its graphics in a fast and battery-efficient way. SkiaSharp offers a developer-friendly API to draw bitmaps, shapes, and text on a canvas, which can be GPU accelerated.
🎵 Sound Middleware: FMOD
GnollHack integrates FMOD — a commercial cross-platform audio library — on all platforms as sound middleware, which is a major technological advancement, exemplifying that FMOD can be integrated with .NET MAUI for playing sounds and music.
🧩 Native C Code Integration
GnollHack integrates a native C library based on NetHack's source code into modern frameworks. This native C library integration works on all supported platforms.
⚡ Multi-Threaded
GnollHack runs on two or three threads depending on the operating system (not counting FMOD threads). This allows GnollHack to run at high performance but requires us to implement several thread-safety features.
🤖 Agentic AI & Benchmarking: Gnoll Overseer and GnollBench
The Gnoll Overseer is an optional full-stack AI advisor built on ASP.NET Core (Web API + SignalR) and Angular. Rather than relying on ungrounded language model output, it executes structured tools over live client game snapshots, an in-memory C lexer and source index for both GnollHack and NetHack, exact monster/item/artifact definitions, and Lucene.NET wiki indexes — with configurable spoiler guardrails and encrypted/ephemeral chat modes. See Technological Overview of Gnoll Overseer.
To keep advice trustworthy in a permadeath game, GnollBench evaluates candidate models against the production Overseer prompt and toolset using a multi-provider AI grading panel, an automated source-grounded claim verifier, and strict comparability rules across intelligence, latency, and cost. See Technological Overview of GnollBench.