Navigate This (write-up of a Revision 2023 PC Demo) Byproduct / SceneSat ----- Thanks for watching my first Revision demo entry. :) Written in C# and made with Unity, it first creates a maze of 155 by 105 walls, so roughly 16000 square rooms. Once built, the maze is colored by exploring through it; when there are no more free squares to move into, a new empty place and color is chosen. The demo runs in real time mainly thanks to batching and simple objects: 1. Once the walls have appeared and gone through their color transition, they switch into using one material that is shared between all walls. That allows the system to (sort of) treat them as a single mesh instead of ~50000 separate meshes, which massively speeds up rendering. This is a built-in feature of the Unity engine. 2. After the maze is built and the exploring/coloring phase begins, the walls change from a textured material into a simple solid color. (At that point they are very small and hardly worth texturing anyway.) The walls are simple stretched cubes, and the floor colors are simple 2d planes. Neither use collisions, and they move without using the Unity physics engine. There are other optimizations as well, for example the walls are object pooled instead of created on the fly - but compared to the two points above, everything else is much less significant. Even the "preloader" (object pooler) had to have a speed limit or it would fly past too quickly to take in. Visuals were synced with audio by rendering separate audio files that contain only the kick drums/snares/cymbals of the soundtrack. My own little C# program turns these drum hits in .wav files into timestamps. Drum hits are easy to analyze because they're short sounds with the rest of the track being completely silent. This means that the program only has to check whether any sound exists at all, with a specified minimum period between timestamps (so one drum hit creates only one timestamp). The intro alphabet are 2d coordinates, max 4x4 in size, where each coordinate has a vertical wall downwards (1), horizontal wall to the right (2), both walls (3), or neither (0). Below are the letters C and D for example. Making these was kind of tedious so I only wrote the characters I needed and used all caps. shape = new int[5, 3] { {3, 2, 0}, {1, 0, 0}, {1, 0, 0}, {1, 0, 0}, {2, 2, 0}, }; WallChar C = new WallChar(3, shape); Alphabet.Add("C", C); shape = new int[5, 4] { {3, 2, 1, 0}, {1, 0, 2, 1}, {1, 0, 0, 1}, {1, 0, 3, 0}, {2, 2, 0, 0} }; WallChar D = new WallChar(4, shape); Alphabet.Add("D", D); The intro's morphing wallpaper is a cross-faded set of still images created with Stable Diffusion. I wanted to make something with the AI image generators while they still feel at least a little bit novel. Stable Diffusion is fun because you can use the same random seed and adjust the "steps" parameter, creating slightly differing variations of the same thing - in this case the same colorful isometric maze. Compo entries may not have major parts of them made by AI, but I thought this classfies as minor rather than major use. This is of course subject to personal opinion, and I was ready to replace the wallpaper with a solid color if needed, but the jury was okay with the wallpaper. I didn't use a timeline editor, Cinemachine or such. I knew in advance I'll use something like 10 camera shots, so I just programmed in the 6 values (x/y/z position and rotation) and switched or interpolated between them using the above-mentioned timestamps. Big thanks to JuicyVortex for debugging help and also Eimink and Codise for test runs. P.S. I'm available for work as a C#, Python or Unity programmer. ':D Byproduct#9084 - https://discordapp.com/users/244907716231954442