Introduction:
After trying to come the year before, this year we would finally be able to make it NOVA. We planned a vacation in the UK in the week leading up to the party where we would get out somewhere between London and Budleigh where the party was held, and hike towards the party place during the week, working on finishing the productions in the evenings at our hotels.
Soulsand (256 Bytes, MicroW8):
This intro has been in the works since after Lovebyte 2023. It first started its life on TIC-80 with just the visual part of it and some straight camera movement. Development was shifted towards the MicroW8 later that year, where i was able to use some of the experiments in bare-bones softsynth development to create the audio for it.
The intro was finalised the final week where more camerawork was added as well as some progression to the music / sound design.
Visuals:
This intro consists of a CPU non-scalar raymarcher with a fairly basic/usual setup.
Meaning your typical loops for scanning across the width and height of the screen as well as a loop for travelling along
the ray-direction (u,v
). I usually use the variable z
for indication the total distance travelled.
This intro uses a fairly basic form of domain repetition, deliberately miscut vertically to give the sense of pillars that are dissapearing into a sky.
px = fmod(z * u, 2.0) - 1.0;
py = fmod(z * v + 0.5, 1.0);
pz = fmod(z + t, 2.0) - 1.0;
The scene itself is using a combination between 2 SDFs:
* The main scene is a up-side-down / vertical-clipped cosgrid ( cos((px*px+pz*pz+py*py) / scalar);
)
* The rising souls SDFs are cut cilinders multiplied with a move cosshape based on V, Z,TIME moving from bottom to top.
* Color selection via the select operator depending on which SDF is closer to the viewer. ( select(d1<d2,color1,color2);
)
Similar to Pharos, given the complexity of the scene the rendering is speed up by skipping pixels and only drawing a quarter of the screen. Earlier versions had a bit more static camera travelling diagonally across the scene, so took some extra work in the week leading up to the party to get some interesting 'camerawork' within the size budget.
Audio:
This intro uses a very custom softsynth in the 'snd' function callback with 2 note channels of layered 'strings' on top of the channel... the second channel of notes is based off the basenote of the first channel to save some bytes and fades in and out during the intro duration.
let inline T = t / 32768;
let inline osc = (cos(n*16_f) / 128_f + 1_f);
let inline n2 = (t as f32 / 1760_f) / osc;
let inline n1 = (n2 * (3-(T%3)) as f32);
The frequencies n1 and n2 are then added as oscillated sawwaves using additive synthesis in a loop, to be stacked on eachother with slightly offsetted oscilations n and finally divided down to a float samplevalue.
Ideally i'd liked to have a slightly more elaborate note-scheme, but given that data access in microw8 is not without its penalties, the size and audio-budget didn't allow for it
Apoptosis (128 Bytes, MicroW8):
For apoptosis (programmed cell death) I mostly used the same framework and setup i developed for Atlantis Rising, but I was looking for a more organic looking shape that would give a lot of depth to the visuals and would still fit within the size budget.
* UV input space is bended 45 degrees ( tx=x+y ty=x-y
) before any of the other calculations to get the diagonal movement going.
* cos was used instead of fmod to do the domain repetition which was slightly cheaper in size
* Fake-bending by adding the z-step to the cos domain repetition was used along the depth to get a more organic look and rid of that typical my-first-domainrepetition look.
* Overall fade in/out was used for both the color as well as correcting for distance calculation to get the base-shape to slightly change over time / some progression going.
Conclusion:
I was happy to see that both intros were received well at the party and had a great audience response. It was great to finally see Soulsand released as that intro had been lingering in the backlog for quite some time now.
For more information, you can check out the intros at demozoo: Apoptosis (2024) Soulsand (2024)