Grotto is an experimental web space that treats html pages as rooms that human players navigate in real time.
Grotto utilizes the python web-application framework Django, and in principle isn’t very different from other websites with users, pages and a database- however in Grotto, users assume the rolls of randomly generated characters, and explore pages which link together in a maze.
Characters leave trails that can be followed as they browse rooms.
In one random room there is a Wumpus, that may eat a character that stumbles by.
The content of rooms is randomly generated from a corpus of role playing game texts, but they are still just webpages, they could hold links to files which could be treated as game objects, multimedia, or even other embedded games. Slaying the wumpus could bestow the power to create user-defined rooms or alter characters.
The malleability of Grotto could lead to unforseen uses by different communities depending on the culture of each user group and the new features that users want.
For a look at recent development with the Django codebase, check out Paul Stiverson’s Grotto development stream archives.
I got some assistance today with automatically connecting rooms by symmetrical exits from my friend Paul. Now, as you generate rooms they randomly link to up to three previous rooms, so that you get a repeating node pattern that balances out into shapes like the Hunt the Wumpus “squashed dodecahedron” I linked in an earlier post. I added a sidebar of exit links to rooms & made the bullets lil emoji doors because why not.More ➜
Room detail pages are loading, room generator is working and creating rooms! Before I start writing any css, I want to figure out how to install sass. Django’s default system of lots of app-level static folders confuses the hell out of me when it comes to managing css, I’d like a single compiled stylesheet and sass partials can live at app-level if they have to.More ➜
some grotto pomodoros- I got rooms listing at /mapBuilder/index.html and the button triggers the old room generator script, but the script still needs to be adapted to add rooms to the database not make flat html documents. right now markovify can’t find its corpus text document even though the path looks right to me.More ➜
I made some progress today with the Django installation for Grotto. I had been stuck trying to get my new models (room, character) showing up in Django admin, but it was because I was trying to copy the pretty elaborate admin.py models for the tutorial polls app, which wasn’t working for some reason. Diana suggested I follow the general case from the django docs instead which was much easier-More ➜
Had time for some Grotto pomodoros today. I am most of the way through the django tutorials but I still don’t really know what I am doing. The parts that are the main mystery to me atm are views and models.Today I am looking at views.py. I conceptually understand what a view is in MVC but I don’t really know anything about the python functions that views.py is using to construct those views. Today I’m starting here in my reading.More ➜
I reposted Paolo’s Games Without Players piece yesterday because every time I think about how best to situate Thicket, I feel like it would be as a zero player mode simulation, constantly reseeding itself. I don’t think of Thicket as being a particularly healthy space to inhabit, it’s purposely about themes that bother me- predation, hierarchy, violence, manipulation.More ➜
I’m back in Austin but I’m “bubbled” with my partner and her mom and sister. My Mother lives in Austin but I haven’t gone to go see her. We quarantined two weeks when we got here, and then my partner’s Mom had an exposure scare so we waited longer. My mother has gotten increasingly despondent, even though we had got her an iPhone and managed to show her how to facetime with us on it.More ➜
Today I repurposed one of my python random text generators to use as a grotto page generator. Pulling from a corpus made of these dungeon descriptions, this spits out 20 html pages, with hashid filenames and titles from a master color list I’ve compiled (part of which I scraped from Joyce’s Ulysses with another python script). Then I try to detect major color words in those names and assign a background-color to the page body (this is one of those times it would be great to know how to use more advanced machine learning 😒). For not a ton of work, this is creating some pretty cool results! The room descriptions are mushed up rpg-inspired poetry which I like, since this game wouldn’t have any room interactions really, just moving from room to room, looking for/avoiding other people.More ➜