

I want to share a personal project I’ve been working on for quite some time: Jervis, an open-source Fantasy Football engine that aims to deliver a faithful implementation of the Blood Bowl 2020 ruleset.
Originally, the goal was simple: build an AI for Blood Bowl. But over time, the project has evolved into something broader. A hybrid that includes both a robust rules engine and a brand-new client UI.
I’m well aware that similar projects have appeared in the past, and most (if not all) have fizzled out. So, healthy skepticism is probably warranted. That said, the project is far enough along that I feel comfortable sharing it with the world.
Project links
- Source Code - GitHub
- Web Client: WASM-based, requires a modern browser.
- Desktop Installers: Tested on Windows and Mac. Linux build available but untested.
The core UI flows work, and most common actions are implemented, albeit not fully tested. Expect bugs, weirdness, and inconsistent UI. Documentation (including a list of known missing features) is available here: https://github.com/cmelchior/jervis-ffb/tree/main/docs
For a quick test, open the website, click on "Dev Options" (in the top-right corner), and select "Start Manual Game" (this runs a game in a mode that also allows you to select dice rolls).
Key Features (UX)
- Scalable UI: Will scale to any size, but currently focusing on 16:10 / 16:9 screen formats.
- Full Undo Support: CTRL+Z works at every stage. Even across dice rolls, if the rules permit it.
- Multiple Game Variants: BB11 and BB7 are already supported. The goal is to eventually also support Dungeon Bowl and Gutter Bowl.
- Multiple Game Modes: Hotseat and Peer-to-Peer play are supported, both against human and AI opponents (currently a proof-of-concept “Random” AI).
Key Features (Technical)
- Cross-platform UI: Current builds target Desktop (Windows, Linux, Mac), Web, and iPad. Android support is possible but not prioritized.
- Modular Architecture: UI and rules are fully separated, which enables AI agents and makes the UI pluggable.
- Flexible Action System: Game Actions, like asking for skill usage, can be controlled by the server, or by clients, either automatically or manually.
- Kotlin Multiplatform: Technical foundation enabling all of the above. Probably only relevant if you are a developer.
What is Jervis not?
The aim with Jervis is not to be a team or league editor, only a play client. This also means it needs the capability to import teams from various sources. Right now, only importing from the FUMBBL API is supported.
What is the impact on FUMBBL?
At this stage, none. Jervis is a standalone project, still far from complete. The intention is not to compete with FUMBBL, but to create something that could complement it, whether as an alternative client, an AI agent, or as a broken mess of unfinished ideas on GitHub.
What are the next steps?
The project remains a work-in-progress, with several priorities ahead:
- Expand Rules Support: Expand engine capabilities to handle advanced rules such as Giants and Dungeon Bowl layouts with rooms and features. Focus on challenging rule interactions rather than every skill. Multiple Block and Ball Clone is already supported. This is, in part, because I was hoping BB2025 would drop, which could provide some more guidance for the project.
- UI Scaling: Create a client UI that works seamlessly from iPad to 4K displays. Likely requires a distinct UX for touchscreen vs. mouse/keyboard.
- Timer Support: Implement flexible timer mechanics, handling edge cases like latency and complex actions (e.g., timing out mid-Multiple Block).
- Full Server Implementation: Allow two web clients to play against each other without requiring a desktop host.
- FUMBBL Replay Conversion: Finish a prototype that converts full FUMBBL replays to Jervis format. This is a critical step for training a competitive Blood Bowl AI using reinforcement learning, which currently seems like the most promising approach.
What is the timeline?
This project has already taken hundreds of hours and will require many more. A full rules implementation feels possible next year. A somewhat decent AI will take longer.
If you’ve made it this far—thank you. I’d love for you to give Jervis a try and share your feedback or bug reports.
If people find this interesting, I will probably, in the future, create separate blog posts about specific subjects like how to implement timers or UX trade-offs.
– Ilios