MSc Final Project Weblog 4: Formalising Project Design
<20/08/21 - 5/09/21>
Iterative Planning and Advanced C# Deep Dive :
During this period I turned the messy patchwork of ideas on my whiteboard into an iterative plan of the projects core concepts and abstractions. I felt that having a solid plan in place would eventually save me time during the construction stage of the project (spoiler alert: it did).
Before even setting pen to paper (so to speak) I had iterated through multiple variations on the project architecture/abstractions, slowly whittling it down to a refined plan that in theory worked within the capabilities of the various tools I was planning to use. During this phase I conducted extensive research on design patterns and did a deep dive into advanced C# and Unity features (e.g. abstract classes, scriptable objects, structs, events & delegates); simultaneously thinking about possible applications for each of these features for my project and how to fulfil my objective of creating a modular code base that would allow for easy experimentation with creative algorithms, without disturbing the fundamental operations of the program.
Flow diagrams made with Lucid.
An early iteration on the project architecture that was refined over time.
A Hierarchy of Modes :
Considered different modes of operation for different goals/technological ability of user.
i. Explore & Inspect Mode: Utilising a tile based spawning system, similar to the one developed for Nodus Tollens, to spawn 'cynosures' in accordance to an aesthetic profile of audio-visual assets defined by the current 'biome' settings (macro aesthetic tiles made by combining 2 themed aesthetic profiles). Explorable using a FPS character controller with option to 'inspect' cynosure (centre camera on and orbit around) and interact more closely with it's 'entities' (audio-visual reactive point cloud)
ii. Gallery Mode: a perpetual inspect mode that affords the formation of a new cynosure at a button press without the need to explore - thought process being that this could be more suitable for some gallery settings / audience members with less/no video game experience - this was an issue I encountered with my first interactive Unity art piece The Hill That Bleeds.
The project architecture at the end of the planning process.
Other Important Abstractions (In Hierarchical Descent) :
Biomes : an abstract concept (pseudo-adopted from Minecraft) that dictates the aesthetic content (point clouds, audio clips, colour schemes etc) of tiles. Initial idea being to combine aesthetic content from two themed content pools (e.g. foliage and industry). This concept applicable to both exploration and gallery modes.
Tiles : Created by the spawn manager in a system similar to that which I created for Nodus Tollens, containing one cynosure. Each tile spawned increases the chance of changing biome on the next tile spawn.
Tiles (rare) : pre-mediated aesthetic content - biome independent but still relating to one of the aesthetic content pools chosen in the
Tiles (generated) : randomly generated aesthetic content in accordance to the current biome.
Cynosure : the central object of a scene, comprised of a small number of entities. This approach of designing interactive art / performances pieces around a central objective of interest (OOI) is a well trodden trope in my previous works. In this context it will also function as part of the audio-visual ecosystem by being the parent container for its individual components as well as relaying aesthetic information from
Entity : the logic and interactions required for the audio-visualisation of it's point cloud.