Mono no aware
Alexander MacKinnon in collaboration with Jonas Pequeno
Mono no aware is an endless generative free-roaming game created in collaboration with artist Jonas Pequeno. The project explores synthetic recreations of the Romantic sublime through absurdist social interpretations of the term ‘nature’. The project attempts to subvert the goal-oriented militaristic ideologies historically tied with the video-game medium by exploring games without an end goal, win or loss state.
In the Unity game-engine, the environment is continually destroyed and regenerated procedurally as the player explores their surroundings. The landscape may spawn anomalous objects, which represent absurd terms tagged in relation to ‘nature’ identified by Pequeno’ research into folksonomy and machine learning data. This automates unique player-experiences of nature that are mediated by language.
Concept and background research
During a residency with Offsite Projects and Agorama, Pequeno researched the relationship between folksonomy and machine learning data by researching the term ‘nature’ within linguistic classification systems by investigating large content repositories like flickr.com, freesound.org and archive.org that require collaborative indexing. Pequeno uses python scripts to data scrape these websites by tags relating to 'nature', and uses the metadata to find seemingly absurd related tags. This research period has informed the conceptual framework for this project.
The title Mono no aware is a term meaning an empathy towards the impermenance of things. In this project the foliage and objects are generated and destroyed as the player moves through the landscape, if the player returns to a previously explored area, everything will have changed - this is also to add to the idea of being lost and consumed within the landscape, giving a sense of the Sublime.
Edmond Burke's (1757) Romantic notion of the Sublime maps it as something that provokes an appreciation and awe of terror, scale and depth much greater than the viewer. The Romantic Sublime was specifically in relation to the natural, and features found in nature. In this project I wanted to play on that notion, attempting to recreate Romantic ideas on the Sublime, however in a synthetic virtual space.
In her essay Why Games, Or, Can Art Workers Think?, Hito Steyerl (2017) describes the Militaristic, Capitalist ideal historically represented by video-games: violence equates to reward. I wanted to explore a subversion of the goal-oriented militaristic ideologies historically tied with the video-game medium, by drawing from the mechanics of the proliferating walking simulator genre, where exploration becomes the main player motivation.
Mono no aware leans towards a functional aesthetic, inspired by debugging overlays in video games and simulations. This is an exploration of breaking the illusion or magic of the game world and showing a transparency of process. To explore this concept I have implemented a wireframe shader to show the 3D mesh shapes, and a debug log to log the procedural generation process on screen. This is further explored by transparency of the actual hardware enclosures in the installation to showcase the electronics in use.
The procedural terrain generation techniques that I used were based on a tutorial series by Sebastian Lague. Layered Perlin noise is used to produce an organic terrain heightmap texture. The terrain is comprised of terrain chunks, which are dynamically loaded in and out around the viewer position. These chunks sample their height from the generated heightmap texture at the corresponding co-ordinates. This results in a seemingly endless and seamless terrain from the viewer’s perspective.
To populate the landscape, I created a master spawner, which uses a similar system to Sebastian Lague’s terrain chunks to dynamically load in and out spawner chunks around the viewer position. Each spawner chunk then chooses from a selection of object spawners, preset with various settings to affect density, plants, object types and weather. The object spawners populate the ground beneath them, instantiating objects using Poisson distribution. I split the object spawning over multiple frames to reduce freezing while instantiating large amounts of objects during runtime.
All object textures that exist within this landscape are made by Pequeno from machine text-to-image processing algorithms. Objects have different behaviour scripts, drones float around based on noise forces, spaceship flies through the sky, plants and grass randomise scale, orientations and appearance to attempt to communicate the variability of nature
I wanted a very simple, direct and satisfying viewer interaction with the work. I decided to take inspiration from the clunky 'tank controls' popularly used in early 3D video games. I created a controller using an Arduino Uno and 4 mechanical keyboard switches to create the controller, which would emulate 4 large WASD keys on a keyboard, however the large buttons I made were eventually too heavy, so I had to resort to normal keycaps. The Arduino was programmed to communicate in serial with unity, however this started to introduce a lot of input lag. Eventually I used a technique learnt from George Bantique to replace the Uno's firmware to trick the computer to recognise it as a HID keyboard.
Overall I was pleased with the artwork's direction and progress. I plan to continue working with Jonas to produce more objects to add into this environment generator so that a viewer can experience more varied scenarios while exploring.
There were some issues with the controller firmware workaround. While it stopped the input lag problem from serial communication with unity, every so often the inputs would momentarily stop registering. To solve this in the future I will try to use an Arduino Micro or Leonardo, which are compatible with built in keyboard libraries.
Hito Steyerl (2017). Art in the Age of Planetary Civil War. Verso
Edmund Burke (1757) A Philosophical Enquiry into the Origin of Our Ideas of the Sublime and Beautiful
Sebastian Lague (2016). Procedural Terrain Generation. Available at: https://www.youtube.com/watch?v=wbpMiKiSKm8&list=PLFt_AvWsXl0eBW2EiBtl_sxmDtSgZBxB3
George Bantique (2020) How to use Arduino Uno as HID. Available at: https://techtotinker.blogspot.com/2020/07/tutorial-how-to-use-arduino-uno-as-hid.html?m=1