I'm describing my big Bloomsday Halifax project by writing up what I did at each location. This is the third in the series, covering Episode 3 of "Ulysses": "Proteus".
In the book, Proteus takes place on Sandymount Strand, a long beach south of downtown Dublin, overlooking some industrial areas. Stephen wanders around the beach, so often lost in thought that at one point he doesn't even notice he's walking into the water. Black Rock beach in Point Pleasant is an obvious stand-in location, near the Martello Tower and Point Pleasant Lodge from the previous two episodes, and definitely overlooking industrial areas:
For the episode background, I mixed the big pink cargo ship and the giant orange cranes with an old black and white photo of Sandymount Strand, complete with footprints.
I'm the first to admit that this isn't the most refined mash-up, and things are a little blurrier than they probably could be, but the idea with these is a striking image that gives an impression for a second or two before it's covered by the regular location content. I had several placeholder versions that were more subtle, but I've learned with Starshipsstarthere that punchier makes a stronger first impression. Also different shapes of phone screens will show different amounts of the image, so important things all had to be in the centre, both vertically and horizontally.
Virtual Items
This is as good a time as any to talk about one of the other key mechanics of the app: collectible virtual items. One thing I noticed in "Ulysses" is that the characters walking around collect and keep track of various objects. Stephen has his "ashplant" walking stick and French-quarter hat, and Bloom has his inherited potato and a bar of soap, among many other examples. It always reminded me a bit of the inventory one collects in video games. Even back in the early prototype versions of the app I had done in 2018, I had a way for people to collect things at each of the locations. Originally, I had a whole mini-scavenger hunt around the area, like hunting for Pokemon, and even had a prototype with an augmented-reality system:
Unfortunately GPS-powered augmented reality is still not entirely feasible, mainly due to the inconsistency of GPS. I decided instead to make the item collection a bit like a "loot box" model as used in many video games. At each location you have a "Search for Items" button and that checks with the server which returns you one of several items set up for that location. You can review your items in an "Inventory" tab, which can fill up after a bunch of wandering around:
Tapping on an item in the inventory list, or checking your item at the location, would show a profile. I made it very much like in a video game, with an item name, an image, and a brief text excerpt for some more context:
Each location had several items appropriate to the episode in the book, managed through the CMS:
I had way too much fun making the images for the items. Several years ago in anticipation of doing something with Bloomsday, I had bought a "Vintage Images" clip-art collection, full of scans of old line-art from the late 19th and early 20th centuries. Some of the items came directly from here with barely any modification:
Some were created entirely manually, like the love letter shown above, or modified heavily from source images like the hat and "omphalos" you can see in the CMS listing.
Others were done with Dall-E, like this withered potato. One nice thing about asking Dall-E to make an image in a "black and white 1900s engraving style" is that it loses a lot of that weird glowy look that so much AI imagery has. It's still a little uncanny but that's appropriate to Ulysses anyhow:
A lot of people have a lot of strong opinions about AI-generated imagery. I'll cover more of my thoughts in a future blog post, when I get around to discussing some of the other ways I used AI for Bloomsday. For this, the main thing is it was just one of several techniques I used to get images for items, and I nearly always made my own modifications to the generated results before posting them. It wasn't just a cynical no-effort chum bucket of "content" like how it's being used in so many places.
It was especially fun to feed the AI weird phrases from the book like "Ineluctable modality of the visible" (the unavoidable changeable-ness of the visible) and see what it came up with. Pretty good actually! I ended up adding a "swirl" effect to the pupil to make it feel even more trippy.
Anyhow once I had items at all the locations, I had many ideas on how the selection function could work. I considered having some items be unique items only collectible once by one person, or having some only available if you were at the location at the book-appropriate time. I thought of adding extra tags to the items that would highlight them differently in the UI as "rare" or "legendary" like collectibles in Assassin's Creed. I even thought of ways to have the items be useful to unlock other things at other locations. I may still do some of this in future versions of Bloomsday, but for 2024, I just had it pick a random item from the ones that were available. Most people did it alone and may not have even realized that there were multiple items to collect. Those who did compare did get a fun time seeing who got what.
Since it's all a server-side algorithm, it's easy enough to change if I come up with different ideas down the line. The app is expecting it to return one item - how it decides what that item is can be as simple or complex as I want at the time.
Having collectible virtual items started out as a little side thing, but it turned out to be one of my favourite aspects of the whole project. It really makes it feel interactive and, funnily enough, more "real".