Last update: 2025-03-18.
NOTE: I’m in preproduction.
1. Overview
(updated: 2025-02-25)
1.1. Game Name: Ninefox Gambit Visual Novel: Calendrical Heresy
1.2. Tagline: burn it down with math
(with apologies to Liozh Dia!)
1.3. Team (lol)
- Yoon Ha Lee (howdy): game design, game writing, narrative design, coding/development, 2D art, 2D animation, music
- [???]: sound design, mixing: I could learn enough to handle these at a basic level (I’m supposed to work on mixing anyway), but do I want to? What will the budget extend to if I want to hire someone?
- voiceovers: budget for 1-2 voice actors (preferably two, one for Cheris and one for Jedao). I cannot do voiceovers. This is optional and I can sort that out later.
This is doable in 2-3 years, depending on other factors.
I have to say that DIY for a bunch of this saves money for a largely solo indie passion project!
1.4 Budget
Realistically? I’m using hardware/software I already have lying around and/or what I can download readily. Everything else is, comparatively, pocket money except if I decide to add voiceovers down the road, in which case I’m looking at a ballpark floor of $6,000 USD at union rates.
2. Game Overview
(updated: 2025-03-18, especially 2.2, 2.5)
2.1. Game Concept: A visual novel (VN) with tactical battles (either autobattler or turn-based, with bonus number theory, abstract algebra, and cryptanalysis) to gate story content. (I was exposed to the RSA cryptosystem at an impressionable age, as the capstone to a terrific abstract algebra course in undergard taught by Prof. Lou Billera at Cornell U.!)
I prefer some amount of crunch to hold my interest and rarely get into games that are purely narrative in focus, although those can be very successful (see Appendix D).
Setting and story based on NINEFOX GAMBIT and Machineries of Empire (my books, my IP, no issue there), but alternate universe (AU).
Themes include the ever-popular war is hell and possibly less popular math is beautiful and powerful and is full of consequences.
2.2. Goals
Important: I do not expect to profit or make back costs. It would be nice, but I am self-funding this for the joy of learning/creating, as a passion project.
career goals
- narrative design and game writing. This is where I have the most experience: game writing for Godfall (Counterplay Games), Winterstrike (Failbetter Games, StoryNexus), Legend of the Five Rings CCG Story Team (and some RPG-related writing) with Alderac Entertainment Group, Moonlit Tower IF in Inform (XYZZY Award for Best Writing, 2002). Non-game-wise, I’m a novelist (Ninefox Gambit, Dragon Pearl, Moonstorm) and I’ve written comic scripts for Marvel (Doom’s Division #1-5, forthcoming starting March 2025; “EpĂ©e Is Truth” in X-Men: The Wedding Special #1).
- game music composition. I’m in an M.A. for media composition at ThinkSpace Education (on intermission); see Deuce of Gears music [Bandcamp] and “Ninefox March III” (mp3, proof of concept in Dorico + NotePerformer although I’m working on a full mockup; PDF score in C).
- 2D animation. Further proof of concept forthcoming. I’m a hobbyist. See this first-pass rough animatic/animation of Cheris (animated GIF, should load quickly-ish).
- 2D art: see Deuce of Gears Art for digital art. (I also do traditional media, mostly watercolor, ink, and/or mixed media, but digital makes more sense for this use case.)
- game design. Ninefox Gambit TTRPG (with Marie Brennan, from Android Press); micro-TTRPGs at https://yhlee.itch.io/; Winterstrike (Failbetter Games, for their now-discontinued StoryNexus platform); Kismet: Local Customs, a commissioned micro-TTRPG for Layla Lawlor’s webcomic Kismet.
personal goals
- Stress relief and fun with a personal hobby project where I can learn new things and go at my own pace. (I am very ill.)
- Compose game music (vertical implementation and dynamic layers) and learn game audio implementation in Unity + WWISE or some other platform (also exploring Godot and Defold).
- Complete an indie game project scoped so that I can handle it as an indie on a relaxed development schedule so that I understand the entire production pipeline.
- Ninefox Gambit AU extending the world, character, and storylines in a way that leverages the interactive format. I have 100,000 words of random unpublished hexarchate fragments (a novel’s worth!) but they are not novel-shaped or even story-collection-shaped. I’d like to use some of that material!
2.3. Target Audience
I anticipate a narrow audience for this project. This game is not expected to earn back when I spend on tools or time; that’s not its function for me. What I want is to work on a personal project that brings me joy. (Fortunately, I have secured the tools I need.)
I foresee the audience consisting of:
- (a) readers who enjoyed Ninefox Gambit and would enjoy additional (sometimes) AU content for the world, setting, and characters.
- (b) visual novel gamers who are willing to try a random one based on some book they’ve never heard of.
I suspect (a) is likelier and (b) is marginal, and of (a), I’m looking at the subset of people willing to try a VN at all.
Based on this, I want to lean on
- character dynamics and interactions, particularly for Cheris and Jedao;
- “new” world, story, character content for people who are loosely familiar with the books, fleshing out intriguing details;
- making the VN and game components accessible to people who aren’t necessarily huge on videogames or VNs (or math).
- evocative visuals and music.
2.4. Game Flow Summary

2.5 Look and Feel
overall
- typical visual novel interface (cf. default Ren’Py output, although I’m not using Ren’Py at the moment).
- 2D graphics with text. I don’t want to wrassle 3D graphics; I don’t have experience in 3D models. A 2D art style will support the vibe.
visual style
- ink and wash vibes
- fantasy stylization with sci-fi elements
- limited color: My art goes to pieces if I try to use more than two accent colors, so let’s lean into that! Also, saves time.
- congruent with the animated music video (AMV) WIP.
animation clip WIP:

[note to self: add more concept art thumbnails]

3. Technical Specifications
(updated 2025-03-18)
3.1. Technical Form
- Visual novel with 2D graphics. Currently exploring either Defold (still looking at audio solutions), Unity + Naninovel + Ink or Godot + Dialogic or Dialogue Manager.
- “hand-drawn” ink and wash style (raster): Procreate for sprites, background, static art; TVPaint 12 Pro for 2D animation.
- music: Cubase Pro 14 and a number of VST libraries I frankly refuse to disclose to y’all. :3 Game audio implemented in Wwise, FMOD, or some other solution depending on the game engine.
This saves certain Yoons from dealing with hitboxes, meshes, polygon counts, and all things 3D. Did I tell y’all the time I was lucid-dreaming (a bit) and thought to myself as I admired a beautiful pastoral scene on a sunny day, “Wow, this dream has a terrific polygon count”?
3.2. View
The narrative component is a VN, a.k.a. a glorified choose-your-own-adventure (CYOA) slideshow.
Battle component: flat “cards” with shaders for clarity, cf. Yomi, Balatro, or Star Realms. Have I mentioned lazy?
3.3. Platform
Release platforms:
- Mac because I’m on macOS.
- Windows because my music rig is a Windows box.
I’m not super motivated to add Linux support right now (if it’s possible with this combination of tools; haven’t checked). Can revisit later.
- web-based text-only release (speculative) based on narrative scripting in Ink. This would require a text-based workaround for the tactical battle component, but simplify UX considerations.
I’m interested in exploring a free web-based release as an optional goal. I don’t know if this is technically feasible via Unity. Cursory reading of documentation suggests that Unity can export for web but it doesn’t necessarily run well.
My suspicion is that graphics handling on a glorified CYOA slideshow (especially at lower resolutions for 2D) won’t cause much performance hit running in a browser, but dynamic audio might. On the other hand, VNs don’t tend to have complex dynamic audio with spatialization is my impression?
The biggest issue from a technical implementation standpoint is that there’s a high probability that a web-based game will attract people attempting to play on mobile devices. It’s not that I hate mobile devices! But optimization and layout/format become different design desiderata. At minimum, I’d have to look into browser handling and save files (if any). I know save files are possible but have not looked into implementation.
I doubt this will see enough traffic that bandwidth/web hosting costs will become significant. The game has to exist before this matters.
I suspect the model I’ll land at, if possible, is:
- actual goal: releases for Mac and Windows, distributed via https://yhlee.itch.io/ so hypothetical payment processing is someone else’s problem. As someone in both ecosystems (Windows desktop, Windows pen computer, Mac laptop), I’d rather just let people pay once for both (if payment is going to be a thing). Fortunately, the game has to exist before I need to care about this.
- if possible: optional goal: free text-only web-based release implemented in Ink. Again, the likely issue will be designing for mobile browser support or battle UX across device types.
3.3. Languages and Frameworks
3.4.1. What I’m using
- Unity and C#
- Naninovel visual novel extension for Unity. As of the current version, I’ve paid for access to the source code in case I need to adapt the code base. I suspect this is unlikely, but I’m curious!
- Ink for narrative scripting middleware.
- WWISE for game audio middleware (Unity integration and tutorial).
3.4.2. Other options I’ve examined, in case I need to pivot
ChoiceScript (Choice of Games). For choice-based narrative. Limited input handling (by design). The command-line debugging tools are great, but there’s no game audio (also by design). Choice of Games has licensing terms regarding content, which likely preclude its use for certain Ninefox-typical content.
Godot. This is free and open-source. I have only lightly investigated it. Right now there does not appear to be a VN library/extension/etc. with feature parity with what exists for Unity.
Inform 7. Interactive fiction (parser-based text adventures). Free and open source. Amazing for parser IF, with a number of extensions. Graphics support exists; audio handling barely exists as it’s a niche use case for this genre. I love it, though, and it has a terrific IDE with a great interpreter and a slick “skein” tool.
Ink from Inkle Studios. This can be used either for straight-up CYOA-style text adventures and/or narrative scripting in a larger project. Limited input handling, not designed to deal with audio or graphics, due to its primary functiona s middleware for narrative scripting or prototyping. I love this and hope to use it in some other project; it has a lovely IDE with a great interpreter.
Monogatari VN engine. The name is a bit hard to search. XD Free, MIT license. Looks like it may be a tenuously documented WIP. I do want to play with it and see how it goes, though! I’m not sure how extensive or robust its audio/multimedia handling is.
Narrat. Specifically designed for CRPGs with Disco Elysium vibes, free, MIT license. The developer notes that if one wants extensive customization away from Disco Elysium vibes, one may want a different game engine altogether. The command-line setup is probably not as user-friendly for newcomers. Uses Howler for audio support.
Ren’Py with Python extensions. Dedicated VN engine, popular in English-language VNs. Free and open source. WWISE integration via API via Python. This would be my second choice, except I want the hybrid game option.
Texture. Hypertext games. Extremely cool conceptually and some neat ideas around the UX. Limited input handling. I’m not aware of support for audio, and I suspect video/graphics support is limited. The deal-killer for me, unfortunately, is that the “click and drag” method of linking items would be RSI hell within 15 minutes.
Twine, which has multiple versions. Great for visual thinkers and newcomers to choice-based/hypertext game formats. Can also be great for prototyping; Lifeline (mobile game) was prototyped in Twine! Exports, essentially, to a webpage, which you can host wherever (or play locally in a browser). Extending its capabilities is possible but requires JavaScript. Does not handle graphics or audio gracefully; I’m not aware of WWISE or Fmod compatibility. The deal-killer for me is that I can’t deal with the visual “mind map” for branching while debugging.
Unreal Engine. I haven’t looked closely at this, but c’mon, this is wildly overkill for strictly 2D games, let alone VNs. 🙂
3.5 Devices
- Desktop/laptop computer.
- I’d have to weigh mobile support carefully just from a visual interface standpoint, which can be a problem for future!Yoon. (Future!Yoon already has regrets.)
4. Gameplay
Ah, the important section. Let me get back to you as I’m still fussing with a paper prototype.
5. Mechanics
The other important section. I will leave you with this tantalizing troll excerpt:
5.12. Cheats and Easter Eggs
NO YOON HA THIS IS NOT URGENT!!!
6. Story and Narrative
[Transfer notes from elsewhere.]
7. Game World
From Ninefox Gambit but world elements need to be adapted for a visual medium.
[more]
8. Characters
WHAT DO YOU MEAN I HAVE TO THINK ABOUT CHARACTERS
8.1. Cheris
8.2. Jedao
9. Levels
(updated 2025-02-18)
9.0 preamble: extensible design
Note: excerpted from this post.
One positive of having a goal, as opposed to being process-oriented personally, is that the goal provides a clarifying lens. I can organize my learning and/or planning and/or work around: Does this get me closer to the end product?
I prefer goals that are more ambitious in scope—there is no rush like bringing a twenty-year plan to fruition—but I probably only have one more twenty-year plan in me at best because, y’know, human lifespan. So I want to set a target that’s high enough to feel ambitious yet is theoretically within my grasp with hard work.
This is where extensible design comes in: I want to leave room in the plan to expand the project in ways that are doable, if it serves the project and/or my goals, as well as room to shrink the project where I see scope creep or obstacles that I’m not able to surmount with my current resources and/or knowledge and/or skill. This will shift over time, and that’s okitty!
My experience from writing is that the best way for me to do this is by editing structure. For narrative, I’m looking at a structure that can be made more or less fractally complex. If you’re creating a 5,000-word short story that’s in some sense encapsulating two hours of television, you’re not “cutting spare adjectives” anymore. You have to change the narrative structure. This is a real example from a work-for-hire job I did in short-story-izing the four-episode Umbara Arc from Star Wars: The Clone Wars, by the way! (For starters, I chopped everything down to a single POV, Rex, because 5,000 words was a hard limit and there was no room for anything else.) One reason my first IF (interactive fiction) game, Moonlit Tower, was a tower: if I had time, I could add more levels; if I didn’t, I could get away with fewer. (As fantasy settings, dungeons also have this property!) Or one can structure an episodic story with mini-arcs. But if one’s going to do this, I want to plan in the accordion nature of the structure right from the beginning.
That’s one reason I enjoy this kind of work: designing, manipulating, and revising this type of overarching structure is something I’m comparatively good at seeing and that I love digging into. A visual novel can be technically scoped up or down as well as narratively scoped up or down in ways that feel satisfying and play to my strengths.
9.1. Prelude + Training Level
NOTE: Use this as the test case achievable MVP vertical slice proof of concept.
10. Interface
Important, but VN-typical interface handling will do the heavy lifting around UX design here.