BRUTAL

    Built for games that are hard to make

    Ahwoo's own framework for direct API access. It removes the abstractions between C# game code and the machine underneath.

    Targets
    • WINDOWS
    • LINUX
    • MACOS

    Every package, the same three targets.

    Why BRUTAL exists

    An engine built for every game is optimal for none.

    Contemporary game engines are built with general-purpose solutions in mind, and every system is tuned for the average case.

    Working around the engine is a losing battle. The further a game sits from that average, the more of its development goes into fitting it to the engine's assumptions rather than working out what the game needs and making the foundation serve it.

    Kitten Space Agency makes big demands: how positions are represented, how the renderer works, when memory is allocated. BRUTAL is the framework Ahwoo built so the game can answer those demands itself.

    01

    Built for scale and precision

    Kitten Space Agency simulates positions in 64-bit doubles and renders in floats. The camera stays at the origin, and the game draws objects relative to their context. BRUTAL does not prescribe that approach. It exposes the numerics and the render path, and the game decides what to do with them.

    The game runs a solar system at real distances on that basis. Planets load without pauses, and players move between vessels with no loading screen.

    02

    A framework, not an engine

    A traditional engine wraps the machine in abstractions that make the common case easier and cap what a game can reach. BRUTAL exposes the APIs directly to game code instead.

    For graphics that means the full Vulkan API surface and the tooling around it. You write the renderer.

    The bindings follow each API as it is designed, so existing Vulkan knowledge transfers unchanged.

    03

    Control where it matters

    Because the framework is Ahwoo's own, a team building a game on it can investigate and fix problems at any depth of the stack rather than waiting on an external engine's roadmap.

    BRUTAL exposes complexity instead of hiding it, and it allows unsafe code. There are no guardrails to fall back on.

    04

    The interop layer at the core

    BRUTAL's interop layer lets the languages in a project call each other. In Kitten Space Agency that is C# game code calling native C++ for plugins and the Vulkan bindings. The framework's math, string and memory libraries are built to minimise allocation, because C# allocation limits how far a game can scale.

    BRUTAL binds a best-in-class library where one exists, and implements the rest itself: job scheduling, string localization, process monitoring and logging. Packages ship through NuGet, so a project installs only the systems it uses, and each package updates separately.

    BRUTAL runs on .NET 10, the current release.

    05

    Open to mods

    Games built on BRUTAL are ordinary .NET applications, so a mod uses the same language as the game and loads the same way. Kitten Space Agency compiles at runtime rather than ahead of time, so mod code can load into a running game. How far mods can reach is the game's decision.

    BRUTAL in action

    Kitten Space Agency is the first game made from scratch using BRUTAL alone.

    It runs a real solar system at real scale, at time warp up to 90 days of simulated time per real second. You can download it today.

    Captured in Kitten Space Agency
    Kitten Space Agency running on BRUTAL
    BRUTAL by design

    The name is a warning.

    BRUTAL is built for projects where performance and control matter more than convenience. It is difficult to use, and for most games an established engine is the better choice.

    Availability

    Building a game that is hard to make?

    BRUTAL is licensed by arrangement rather than offered as a public download. See it working in Kitten Space Agency, then get in touch.