I would so love the color images from the book. I took that picture with my phone and ran it through a paint.net sepia filter. I want to use the “map of the realm” and different sections to show maps ala images. Like a map of the realm.
edit - The making of this game is going to be the example/sample game that goes in my documentation. I’ll be uploading the project file in complete form and then the individual parts used to build the game along with the documentation. I’m excited to use the export, import, renumber, and recode functions in the system to demonstrate how to make and use reusable code and objects.
I’m wrapping up a very powerful feature set. It is the ability to write reusable code and objects. My example exports code and objects from one game and imports them to another, Cloak of Darkness.
The code and object are complex. The object is a book. The book has 73 lines of custom game logic. The logic allows reading the book in the game. A menu presents the chapters of the book and these can be selected to read. Each chapter has multiple pages of text, 3-4, which are paginated through. Finishing a chapter returns the logic back to the main book menu. Pressing enter exits the menu.
The first image shows the context of the book in its own game and editor. The second image shows it in Cloak of Darkness.
What can I do with this specific reuse? I can create a library location with hundreds of readable books. The clue I want can be hidden in any of those texts and become the key to the puzzle. That is just one small example that I can think up on the spot.
Objects in the game have unique id’s. These are exposed through UI lists that keep you from having to do manual entry. Manual entry is still available. Having an ID and “Line” numbered based system makes renumbering and recoding a data-management problem. Code and objects are exported in a readable, predictable, and deterministic text format which is then used for import. In the source game the book is object 12. In Cloak of Darkness it recodes to object 4, the first open object in the object table for CoD. Code starts on line 59 originally. Code starts on Line 31 of CoD. Chained rules now reference the new code range. I deleted line 59 from the import because it was a rule that prevented the book from being picked up for anyone noticing. Renumber CoD afterwards then created the code starting at 31. Before the renumber it imported to line 32.
I’d show the UI of the process but it is not complete. This is the main use case with many others needing UI to express.
The best part of making a custom system is being able to create processes like this. I subscribe to OOO, and work like this just expresses how OOO can be leveraged for reuse. It is also very rewarding. I’m always impressed by what people are making that plays and makes games for the historical systems. What makes this system nice is it gets to live in a different space in the ecosystem. This will be released in v1.3.2
I’m happy to announce version 1.3.3 of the MAD Candy Interactive Fiction system. Most of the new functionality lands in the Studio, but there are a few notable improvements to the engine as well. Documentation is current and reflects the new functionality. This has been an intense few to three weeks of work and I’m glad to move back to making John’s Quest. I’m going to be using one of the new functions in the game to toggle location awareness based on certain map locations. John, the hero, will only know the land around his village and thus when the exit directions are listed he will know the name of the location. When he crosses the river he must discover the location before its name shows up. It will only be referred to as a compass direction. I think this kind of usage answers for me the debate of if I should use or not use location names. It is up to the back story of the player and what they know. When they strike off into uncharted territory the locations must be discovered before being named.
Studio: Modular Code & Object Reuse: The Studio now supports code and object reuse between project files. Any project’s rules can be exported, either in full or selectively, and imported into another project. This enables sharing modularized functionality across games. Objects participate in this process too. When rules are imported, they are renumbered starting at the next available rule ID in the target project. For objects, you now have two choices: Create a new object using the imported object’s name and properties. Recode to an existing object in the target project. Recoding is especially useful when you’re incrementally bringing in functionality. You can create the object fresh on the first import, then recode to it on subsequent imports. That’s a major use case, though not the only one.
Engine: Unified Text & Reveal‑Location Display Settings. On the engine side, the display settings for unified text and reveal locations are now part of the update display outcome. Documentation has been updated to show how to use these features. A practical example from a game I’m working on for the forthcoming documentation: Part of the map is familiar to the player, and part is unexplored territory. When the player moves from known areas into new territory, reveal‑locations‑on‑discovery is toggled on. When they return to familiar ground, it toggles off.
What this means in practice: In known territory: “You can go north to the desert, south to the desert, and west to the bazaar.”
In unknown territory: “You can go north, south, and west.”
The name of the destination is only revealed once the player has discovered it.
Cloak of Darkness has been redeployed and updated on Itch. I renumbered it and did the bar / darkness logic in a much cleaner way. All the screens for how it is built reflect the new deployment. It took all of a minute to renumber, enable unified text, and deploy. It took more time updating Itch. Download the project file and run it yourself in debug mode to watch the moving parts.
I’m really enjoying “How to Design Adventure Games” by Shaun McClure. The design metaphors translate cleanly to MCIF. It is still an up hill climb because I’ve tasked myself with not only building the game in the book but doing it incrementally for documentation.
I’m having a lot of fun with experimenting with environmental actions like SMELL and LISTEN. They are going to be driven by world state. In the game there are two realities. The village before the evil wizard destroys it and afterwards. Before when you SMELL or LISTEN it is going to be pleasant and reflecting. Afterwards it will be the smell of the smoke, or something burnt to ashes. The sounds of something burning. I’m also using the RNG to roll me random numbers between 0 and 9 which are used in the “case” statement for different modifiers to the location text. The book talks about doing small things like this to make the world feel lived in.