I'm a writer and visual artist in St. John's, Newfoundland, Canada.

For more frequent updates, follow me on Instagram or subscribe to my email newsletter.

Recent Posts (page 11 of 13)


Found on the sidewalk in Halifax.

E and M play games (1)

Mostly Lost Cities.

Make No Wonder – Campsites and Fire

I’ve updated my Make No Wonder version 3 demo to include some new code. In this updated version, the fog that obscures the unexplored landscape does not remain cleared as you walk around – you can only see a small area immediately around you. I like the sense of isolation and the unknown that this creates. It also allows the player to get lost – when playtesting the game, I found myself sometimes following my own footprints to find my way back to where I had started.

To permanently clear the fog, the player must build campsites. These use up a lot of resources, and can only be built on 4×4 areas of flat land. Once a campsite is built, the area in a radius around the campsite will remain clear of fog as it is explored. To fully explore the map, the player must periodically build campsites across the landscape. Hovering the mouse over a campsite shows the circular area covered by the campsite (the yellow dotted line in the screenshot above).

I also added a feature where if you build a campsite too close to a tree, the tree can catch fire. Fire spreads to other tiles and destroys trees (and therefore the player’s wood supply), as well as built objects such as bridges. I tried to make the fire spread quickly enough that it seems unpredictable and dangerous, but still slow enough that a quick-thinking player can harvest some wood before the fire gets to it, or even create a firebreak. The fire element was partly inspired by Minecraft, which I’ve been playing a little lately.

One of the things I want to work on next with Make No Wonder is limiting the amount of resources the player can carry at once. Campsites might be used as a place where the player can store resources to retrieve later. I also need to improve the fire animation, animate the campsite tiles, and fix a few new bugs.

Make No Wonder – Footprints and Fog

Summer seems to be wrapping up quickly, although it’s been a wonderful late August here in western Newfoundland. I’ve been making a ton of progress on my summer game project, Make No Wonder, and have been meaning to post an update here for a while.

You can try out Make No Wonder (draft version 3) here. Right now, the game works best in Chrome and Safari. Firefox will also work, but the game takes a little while longer to load. I haven’t tested it much in Internet Explorer, but it should work in IE9.

The last time I posted about this project was in July, and I had gotten bogged down for a while with that version of the game. Most of the problems stemmed from the map, which I was unhappy with – the random islands I was generating were not very complex, and were mostly featureless aside from the various resources for the player to collect. I wanted to add some variety to the terrain, but I had been using SVG to generate the islands, which seemed to limit what was possible. I also kept running into random bugs with browser-based SVG, and the Raphaël library I had been using seems to be stuck in development as the creator has been promising version 2.0 for months.

This new version of Make No Wonder uses the HTML5 canvas element. Switching to canvas has solved many problems, while also opening up a lot of options as I continue to develop the game. When I first started working on this project I’d considered using canvas, but was thrown off by the fact that elements drawn on the canvas couldn’t respond to click events or other interactions. I’ve since learned a lot about optimizing the code for this kind of tile-based game, and it turns out that the lack of mouse events for things drawn on the canvas really isn’t a problem. I just keep track of where everything is as part of the data for each tile, instead of using the elements themselves for collision detection.

The biggest change with the current version of the game is that instead of generating an archipelago of distinct islands, the game terrain is generated using a heightmap. This more complex approach to map generation is something I’d been wanting to do from the start, but I couldn’t figure out how to implement a heightmap in JavaScript until I found this excellent blog post from Jason Brown: Terrain Generation with Canvas and JavaScript.

My idea for Make No Wonder has always revolved around distinct ‘island’ areas with their own ecosystems, which are disrupted as the player explores. One interesting problem with this new heightmap terrain is that the landscape is not divided as clearly into different islands. The heightmap nearly always generates islands, but because the terrain is represented by an array of height values rather than distinct island areas, there is no easy way to check which island a given object is on, or if two objects are on the same island. For example, in earlier versions of the game, some islands started out with trees, and some didn’t. If I simply randomly generated trees evenly throughout the heightmap terrain, this effect would be lost. Instead, I randomly distribute a small number of trees, and then have those trees ‘grow’ into little patches of forest as part of the map generation. This means some areas of the map have a lot of trees, while some don’t. The trees also continue to spread during gameplay.

It turns out that not having to keep track of every little object is also a huge benefit of working with canvas. In previous versions of the game, the footprints that appear as the player walks were drawn either as SVG objects or divs, littering the game with hundreds of objects as the player explored. This also meant that all the footprints looked the same. In this new version of the game, the footprints are drawn directly onto the canvas, so they don’t bog down the game with lots of individual objects to keep track of. Footprints now also accurately reflect the direction the player is walking in, and their appearance is randomized slightly, so they look more natural.

Using canvas also made it possible to add the ‘fog’ that obscures areas the player hasn’t explored yet. I’d thought that this would be rather tricky to implement, but it turned out to take about 10 minutes. Of course, I ended up spending another hour resolving a glitch where the canvas globalCompositeOperation mode ‘copy’ didn’t erase the fog properly in Firefox for some reason. In the end, I was able to use the ‘destination-out’ mode to achieve the effect I wanted.

I’m currently working on making the terrain and game elements more varied, including adding different kinds of trees, plants, and animals. I’m also fine-tuning the controls – I’d like to try making it so that you can collect nearby objects using the mouse, and perhaps add mouse-based movement like in my Newfoundland Hex Map Interaction. I also plan to adjust the amount of resources needed to build things, and adjust it so that you can only carry so much wood or stone at a time, as this will encourage the player to create trails as they walk back and forth to gather resources.

I received a Professional Project Grant from the Newfoundland and Labrador Arts Council to work on this project, which has made a huge difference in the amount of time I am able to spend working on it. I’ve very grateful for the support.

Comfort Zone

With its rows of brightly-painted townhouses, rolling hills, and fog churning in every evening, San Francisco reminded me of a larger, exaggerated version of St. John’s. Like downtown St. John’s, it rewards pedestrians with a lively panorama of colourful architecture and charming neighborhoods. We spent four full days wandering the city, traversing just about every neighbourhood described in our travel guide. Avoiding the touristy areas at first, we eventually ended up among the gift shops and animated crowds of Fisherman’s Wharf, where we were lucky enough to stumble across the Musée Mécanique.

The Musée’s narrow rows of quaint wooden structures were almost a miniature version of San Francisco’s streets, and promised as much: numerous brightly-painted signs offered the thrill of racing simulations, baseball games, and other challenges in exchange for a coin or two. Plunking a quarter through a slot might cause an entire matchstick circus to spring to life, or an elaborate mechanical orchestra to launch into a tune. Other cabinets beckoned with darker fare, including several mechanical puppet shows dourly reenacting executions, and plenty of peepshows featuring hand-tinted photographs of scantily-clad models. A few machines offered the city itself: foggy vignettes of a much younger San Francisco, or worn stereograms of impossible devastation from historic quakes.

Both mechanical and electronic games had their place at the Musée, with video game classics like Pong and Pole Position adjacent to their penny arcade ancestors. In one corner a large cabinet with a steering mechanism allowed the player to wrench a tin car back and forth across a painted cloth road that scrolled rapidly, creating a twisting racetrack. I loved the tactile nature of the penny arcade machines; the tarnished buttons and quaint hand-painted signs, the creak, clack and clunk of convoluted wooden mechanisms, the hand-cranked peepshows. Even the dust covering the circus puppets made them seem more real. It is easy to imagine the maintenance required to keep such antiquated equipment in working condition, and the machines felt frail but cared-for; even Pong’s slowly wavering screen and primitive paddle dial lent the game an elderly tenderness. Such a sumptuous entertainment; compared to the full-course feast offered by Musée Mécanique, playing Tiny Wings on my iPod feels like swallowing a pill.

The Musée itself seemed strangely automated; though the aisles were crowded with visitors, I didn’t notice anyone who looked like an employee. Admission was free, though the coin-operated machines happily accepted cash. Appropriately enough, the “gift shop” was a vending machine near the entrance, dispensing booklets, DVDs, and other souvenirs.

My first video game system was an Atari 2600, with its eclectic assortment of controllers: two plastic joysticks, a pair of Pong paddles, a steering wheel, and a square pad with a buttons and paper overlays for each game. One of the paddle controllers snapped in two during a particularly epic game of Space Invaders, and my dad fixed it with an old thermostat dial, forever associating in my mind childhood video games with the phrase “comfort zone”.

Rain Shadow

I had never seen mountains before, and finding a full one proved elusive. My first glimpse was from a plane window, peering below to find a brilliant white peak barely poking through the cluster of clouds below us. Later, a hilltop hike rewarded us with one-third of Mount Jefferson, shouldering a bundle of cumulus. Clouds get caught on mountaintops.

Deer Lake → Toronto → Las Vegas → Portland, Oregon. After a few days visiting Portland and Corvallis, we drove along the Columbia River Gorge to Hood River, the landscape tumbling from coniferous foothills to a rough desert in the rain shadow of the Cascades. Finally, one evening in Hood River, Mount Adams lumbered out of hiding.

We had talked about daytripping across the border to Washington, so I could cross another state off my list. Someone suggested the Maryhill Museum, just across the river, and I realized that I’d come across an article about it while doing some research a few years ago. Titled Castle Nowhere, the article described how two artists, Annie Han and Dan Mihalyo (Lead Pencil Studio), had built a full-sized duplicate of the museum on the opposite side of the Gorge. The installation was temporary, a precarious assemblage of scaffolds and construction netting that Han and Mihalyo called Maryhill Double. So our visit to Washington was a ghost hunt, prompted mostly by my desire to see the site of the Double and the museum that had inspired it.

On a side road and looking for directions, we stumbled across a small tourist information booth. A kindly couple inside handed us numerous maps and brochures, insisting that we visit this or that. I mentioned Maryhill Double and they both recalled the summer it appeared, chuckling a little. They seemed to remember it with a mild amusement, a novel but frivolous event, perhaps like the appearance of a Ferris wheel, or a hot air balloon.

We continued along the Washington side of the gorge, an array of wind turbines punctuating the ridge above us. On an outcrop above the road we spotted a vast circle of stones, which turned out to be an astronomically accurate concrete replica of Stonehenge. Like Maryhill, the henge is one showpiece in a panorama of strange structures erected by Samuel Hill. An eccentric railroad baron and connoisseur of infrastructural experiments, Hill would certainly have approved of the wind turbines.

Wandering among the strange concrete slabs with a few other tourists, I remembered the drizzly evening years ago when I visited the original Stonehenge as part of a university field trip. As academic visitors, we were allowed inside the perimeter circle after the site had closed to tourists for the day. Clasped in raincoats, we drifted around the sarsen stones as silently as astronauts, distant from everything; it was as if time moved more slowly inside the stones. Maryhill’s Stonehenge has a parking lot beside it, and its monumental concrete slabs perch oddly on the edge of the river gorge. Every block is perfectly balanced; the site reimagines the original henge, not the weathered ruins I remembered. The surrounding terrain is all wrong, the desert sun far too harsh. The henge felt flat and outlandish, like a film set.

We did not expect to have time to tour the museum, but were charmed into a quick visit. The Castle Nowhere article had led me to expect a stubbornly stuffy estate, a classical anachronism complete with peacocks patrolling the grounds. The peacocks, however, were nowhere to be seen, perhaps replaced by the whimsical contemporary sculptures adorning the garden. Near the entrance, construction workers were busy laying the foundations for a new expansion, and I wondered if the Double had in part prompted changes at Maryhill, perhaps provoking a little self-reflection. Inside the museum, solemn stone walls preserved an eccentric collection of exhibits: Sam Hill’s megalomaniacal globes, historical photos of the Native American textile trade, costumes from Romanian royalty. In one stairwell we found a storage alcove clustered with plaster busts, a cast of characters peering through the door at us.

Outside on the balustrade, we gazed across the gorge at the empty space where Maryhill Double must have stood, a field of cracked rock dusted with yellow grass. The gardens around the museum are lavishly irrigated, creating a theatrical oasis of green. I briefly contemplated constructing a tiny replica of the museum out of grass, Maryhill Miniature. Despite the grandiose ambitions of its founder, Maryhill is full of the miniature: an exhibition of diminutive French fashion mannequins, dozens of exquisitely inventive chess sets poised for battle, a roomful of small Rodin maquettes and sketches.

Over the following weeks we visited coastal forests where I learned the names of giants: Doug-fir, Ponderosa Pine, Western Red Cedar. Looking out my window in Newfoundland now, all the trees look smaller.

Content ©  2019 Matthew Hollett. RSS