Doors is a bare-bones exploration videogame that uses a book and unusual custom game controllers, including an heirloom doorknob and a kneeling pad. It uses colorful stage lights, projection and sound as feedback. Doors connects to the Grotto api to construct its maze. In its first incarnation, it drew on genealogy data to turn my family tree into a traversable maze with hidden pieces of my family history.
Mud Room is a colloquial term for a transitional area between inside and outside of a home. “Mud Room” for me also recalls a room in a Multi User Dungeon (A foundational form of multiplayer interactive fiction). At my grandmother Dorothy’s house the mud room was a place where work was done and a family tragedy occurred. It was also a children’s room where my cousins and I played videogames. During the work of planning my grandfather’s funeral, the family left my cousins and I back in the mud room with the Atari to keep us occupied. Mud Room retrieves memories of dilligently playing games that had themes of of hiding and searching, and compares the occluded eye of fantasy play with the puzzling and sometimes fearsome experience of childhood.
Last night was the opening of the UCLA DMA Thesis show, which held the Grotto-connected installation I’ve been working on this quarter.
More ➜
Grotto is now at v1.01. The last push included a text-entry interaction that can be used for writing notes with a letter item and for updating a character greeting. Letter item and Potion item both are now functional, although Potions aren’t particularly useful yet.
More ➜
behind on grotto main game schedule, but making progress on installation stuff.
The scripts that generate book content from Grotto are done, the output requires a little bit of tweaking after they run, the pdf output looks good and I’ll try printing soon. This is going to be an expensive print job, as the book is over 1000 pages, 500ish 2-sided. I intend to print signatures and stitch it coptic, including whatever thesis writing is done.
Having all sorts of long-term ideas go out the window. Up until now I’ve been using a solenoid lock to stop a ratchet wheel in one direction and another ratchet wheel and arm to keep the assembly only turning in one direction. I had a limit switch that would flip on a turn.
More ➜
Flailing. A few issues made me abandon my idea for a doorknob controller plinth in which the doorknob portion revolves to select a “door”, reorienting the player- first the reintroduction of a projection screen into the space, which would make variable player orientation weird, and 3 or four mistakes in laying out an mdf laser cut that made the complicated revolving encoder/slipring assembly off center or needing hand drilled holes over and over, resulting in a lot of wasted time. The alternative (keeping the doorknob controller) is an additional spinner knob control on the top of the plinth. I don’t love it. The idea here is there’s a projection of a circular array of the doors in the room, with the color of the room and doors, a spinner revolves them, the doorknob tests them to go through.
More ➜
In the early days of computer gaming, developers and publishers used various creative physical copy protection systems to prevent unauthorized copying and distribution of their games. These methods usually required the user to possess a specific physical item (“Feelie”) that came with the game in order to play it. Some notable examples include:
More ➜
Big leap forward today- passing through a door in grotto gives it a color marking of its connecting room, letting you know what path you’ve taken. The maze is still disorienting, there are no cardinal directions in the map view, but you leave a breadcrumb trail as you traverse it.
More ➜
Some small updates to Grotto- keys are no longer single-use, but rather have a chance to break on use, like shields and brushes. Shield bashing- you can attempt to shield bash locked doors now, but this has affected regular character shield bashing and will need to be revisited. Added incense animation.
More ➜
the node app I made to check the grotto api and send mqtt (mosquitto) messages to things like lights and the doorknob controller is working, which is huge.
More ➜
Genealogy breakthrough today- was able to fix a wrong name and add one generation prior to the earliest Fridel family member on record as well as a few additional people in other families. This means another version of the GEDCOM file, which is kind of a hassle at this point, because a new GEDCOM file totally rebuilds the game maze and I need to make sure that the cenotaph activation and relic csv’s all have all correct person names.
More ➜
Some changes to Grotto from Saturday that I’m just now documenting here- Added the body parts UI area and changed the item interaction pattern- body part items can be equipped, all items in either section have a ‘x’ button that will drop them in the current room.
More ➜
The cheapo usb 5.1 audio interface I got only does surround sound through a bunch of 3.5 mm analog plugs, and the surround speakers at the lab are digital only (the interface has optical out but it only carries stereo).
More ➜
More ➜For many of us, the first program we see or run on a new platform is some variation of “Blink” to turn an LED on and off at some rate. It has become like the “Hello World” of microcontroller programming. This will turn the LED on and then wait, or in other words, time. […] Link
My current challenge is to find ways to connect Grotto to a gallery space for my final show. I’d like to avoid falling into the same pattern of “Thing projected on a wall” that you see at a lot of these shows. So far I have been concentrating on esp32 microcontrollers or headless raspberry pi’s that can get information from Grotto’s API. I’d like to use lights and sounds and weird tactile interfaces as much as possible.
More ➜
First big push to the staging server in 2023- 0.10.0 includes the first iteration of a graphics window for room maps and animations, using a combo of pixi.js, svelte-pixi, Tiled.app, and a new tiled-compatible version of what was previously called scratchbeam, that I am now calling grotto-paint.
More ➜
My thesis project is about historical and future imaginaries, played out in a game substrate (a web-based game environment I call Grotto.)
More ➜
For some reason I had a difficult time thinking of a piece of art to refer to for this exercise, so I picked the last film I watched for research purposes. The film is Jiří Trnka’s stop motion film Staré pověsti české loutkový [Old Czech Legends]. This might be an interesting selection because the film doesn’t have subtitles available and I watched it without knowing Czech. I did have some access to what what happening in the film because I have an English translation of Alois Jirásek’s Ancient Bohemian Legends, the book that serves as its primary source (which Trnka also illustrated).
More ➜
My thesis project is about historical and future imaginaries, played out in a game substrate (a web-based game environment I call Grotto.)
More ➜
I’ve been looking for a while for mechanical ways to represent “imagined communities” (Anderson), and especially linguistic communities. Grotto is starting from very abstract and sometimes arbitrary formal bits- random character classes (robot, animal etc) with meaninglessly arbitrary skills that don’t have an immediately obvious mechanical use.
More ➜
Grotto has some somewhat unique challenges to its success as an actual game because it uses an atomic maze structure where exits are blind guesses about what is inside adjoining rooms. This mode is inherited from interactive fiction, Hunt the Wumpus, MUDS, etc– games that either had puzzles within the rooms themselves, or relied on constructing a mental model of the maze based on guesses (each one potentially fatal, in the case of Wumpus). I’ve had critiques about whether the game is intelligible and whether there is any player enticement to play. I’ve kind of sidestepped these critiques by saying that the real game mechanics haven’t been implemented yet, and that they would be the sugar that activates the content I am spreading through the maze in room and item descriptions. This suggests that I have some kind of plan for game mechanics though, and all my game design ideas gravitate towards roguelike mechanics, which may not be a good fit here. A roguelike structure where a visual map is slowly completed by exploring would probably require a substantial amount of retooling.
More ➜
Today was a first planning meeting to resume development on Grotto, and start the big project– the one I’m now calling Phantom Homeland (I got a good laugh out of calling it Dusičky for a little while, but come on).
More ➜
Last night I was thinking about how to evolve the gui for grotto. Specifically- taking the older text view and fusing some elements from the joystick-gui view into it. I’d like to add a div with a top down map view of the room you are in with glyphs signifying items and doors. I added some new tiles to my drawing tool and started playing with the most minimal way to represent objects. when I stopped trying hard to represent things and abstracted all the way down to two-tile glyphs, I immediately unlocked a memory- another atari game (eyeroll emoji). The creatures from imagic’s Cosmic Arc
More ➜
Last night was the first public viewing of Mud Room. As of this morning I’ve fixed a number of bugs I identified in the first show. There’s a remaining problem where the kneeling pad errors out when the pad is set to keyboard press/release but works with keyboard write, which is a little problematic since people kneeling for over 10 seconds trigger multiple kneels. I’ll likely need to fix this after the show is over.
More ➜
I’ve had two 3d modeling/animation classes in the last year with a fun, super knowledgable professor, and could have made anything for my final projects and both classes I have chosen to make dour mausoleums, literally. Funerary spaces. What the fuck is wrong with me and will I get better again?
More ➜
A lot of my winter break was spent doing genealogy on the Czech side of my family, since these are the relatives I was exposed to going furthest back (I often visited my great aunts and uncles on their farm in Kurten, Texas) and it’s the branch of the family that is the most storied, through my mother. While doing supplemental reading on Bohemian/Moravian immigrants in Brazos Texas, I found accounts of the minister who enticed them to make the journey, to serve as laborers under the promise of large expanses of cheap and fertile land. This started a chain migration that my Czech family followed in 1872. This was my grandmother Dorothy’s family- and it was Dorothy’s house that held the Mud Room that serves as our conceptual entryway into the maze of cenotaphs.
More ➜
While it’s still very early, I’ve come to think of mudroom as being designed in layers.
More ➜
Good day of work with @thismatters today, we installed the django-rest-framework which enabled api pages for rooms. This will enable abstracting the grotto data out into new UI’s. I had hoped to get the new html/css/vanilla js UI I started working on in time for Monday’s review, but it seems unlikely.
More ➜
After struggling a bit over the holiday with the javascript inventory UI, I did a little exercise where instead of slogging towards my very elaborate initial idea I ask, “What’s the version I could make of this in n days/weeks?” In this case, what’s the version I could probably get done of this in say, two weeks?
More ➜
Another pair session with @thismatters today, working on items and room attributes for Grotto/Mud Room.
More ➜
I talked to Jenna yesterday broadly about the transition between the introduction video and gameplay. There was a suggestion that the player start in Bob’s cenotaph, where they must figure out how to light (and maybe even place) a candle to proceed. I’m onboard with this. Jenna also suggested the idea of having bob’s actual note and blood in the cenotaph which I went with for a second but really don’t like. At first I thought I didn’t like how explicit it was, but gradually I realized that what I didn’t like was that it didn’t make sense in the game context. When I initially thought there would be a note in the room I was thinking of like, an obituary or something because these are constructed gravesites, not like…. a place where a death happened. These are crude pages in some forgotten and repurposed game, like a facebook page after the end of facebook used to memorialize someone. They’re data with a strange but appropriate new topology overlaid on it that suggests actions over time. Someone barging through would just see the game, and just see me carrying out tasks in a room in this maze as an npc, but I have motivations because this is a new landscape that was shaped by historical data. What the game isn’t is a polemical story about family suicide by way of environmental storytelling. Those deaths happened outside the game world. It’s true that they created this place, but it’s not that direct and stagey. It did seem convenient to leave clues like a conventional videogame to lead people through onboarding, but I think cleaning in the cenotaphs is just cleaning “something”… digital entropy and neglect. If there’s a note it would be a note from me that I leave as part of my work that is candid about what happened. Maybe you could have the best of both worlds if the appearance of blood was a sort of phantasm- you think you are cleaning up blood initially but its just the dirt of time. Or wumpus blood that you make a mental connection to real death with before learning it’s just another peice of rotting videogame mechanics.
More ➜
Grotto itemBuilder branch commit 519f103750178349cbf9d2e646e61744088f138c
More ➜
I caught this quick talk at roguelike celebration about Ursula K. Leguin’s The Tombs of Atuan, and how it was kind of a better fictional prototype for roguelike games like Nethack than the Tolkien stuff that’s usually referenced. I had coincidentally just listened to the audiobook on a drive from Oregon to California, and the book has been on my mind a lot as I’ve been thinking about Mud Room- I like the idea of performing as an NPC in my own game, as a priest or caretaker of a network of cenotaphs (empty tombs, the bodies are in the indexical ‘real’ world) of my family and ancestors. Instead of blindly attacking anyone who comes into the cenotaphs to loot or desecrate, my relationship with the places I am guarding is being questioned and re-evaluated, like the priestess in Tombs of Atuan. Cenotaphs might be abandoned or cared for. The maze of tombs is as vast as all life that has ever lived on earth, though many connections are barricaded or destroyed.
More ➜
One of the things that having all text links for exits in Grotto accomplished was that any amount of exits could be added to a room and there was no need to figure out where to place them spatially. Mud Room is returning to a spatial representation of a room and exits, so this problem will need to be dealt with. Generally in a videogame we would make a room bigger to accommodate more exits. This makes me think that, like swordquest, there will be an “outer” side of a room, which shows exits, and then an “inner” side, which is the cenotaph, and is a more 2d conception that holds objects. This frees up the outer version to be shown and traversed in any way we like. This is the most poorly defined part of the game so far.
More ➜
play.p5 has both sprites and animations that can be added to sprites. The sprite is what can be scaled, not the animation. Was able to remove the confusing push/pop scaling and positioning by directly positioning the sprites. Using sprites also alleviates the need to slow the frameDelay.
More ➜
I’ve expressed this to Jenna, but I want this project to get its look from its processes and materials. Obelisk was a weird project where I strained to make unity look like a 1 bit Mac with some kind of big monitor and great processor and it was obviously dishonest, the comments on the itch page that I asked for where obviously fake, there was a winking fakeness about it that came from not having the resources to just write a Taskmaker-style game in Pascal or whatever on an actual old Mac. It’s ok to straddle time periods and refer to things, but I think there’s a way do do it, even with humor involved, that honestly inherits an aesthetic from actual processes instead of straining to make something look like what it isn’t.
More ➜
Tried pseudocoding/sorta coding the initial gui for a room today in p5.js… I got about 50% there real quick and then everything ground to a halt as I tried to apply any juice to the play.p5 animated sprites (like zooming them a little to show which one was selected). You have to do all sorts of weird stuff in p5, like increasing the animation frameDelay by how many animated sprites are on screen :/ I didn’t think what I wanted to do was very complicated and I really liked the idea of having each room be an individual real webpage with some accessibility, but maybe I really do need to just make a unity game with an online database after all. ¯\(ツ)/¯ Or use something more complicated like phaser?
More ➜
The python GedCom parser is maintained by Brigham Young University, The Mormon Church being famously obsessed with genealogy and the retroactive baptism of the dead. I wonder if its something I should engage with. Do cloaked figures need to be chased away from cenotaphs before they baptize my ancestors into an unfamiliar faith? To complicate things, I’ve realized that my paternal grandfather Red, who I never knew, converted to Mormonism late in life after abandoning my father’s family for a younger mormon woman.
More ➜