YouTube thumbnail

YouTube thumbnail

todo

todo

todo

todo

todo

todo

todo

todo

todo

todo

todo

todo

todo

todo

todo

todo

todo

todo

todo

todo

todo

todo

todo

todo

todo

todo

Acid Interstate V4

16 January, 2021

progress_activity
0:00
0:00
/
0:00

Minecraft Acid Interstate V4

Way back in 2017, YouTube recommended to me a video that would go on to change my life for the foreseeable future. That video was MiningGodBruce's Subtlety Minecraft music video.

Most viewers enjoyed this video, albeit more than most, but in my case, it utterly captivated me.

My Autism diagnosis probably had a large part to play in that, after all the video activated my sensory responses (ie, hand flapping) like no other.

The classic response to an amazing piece of art from any 10-year-old? Try and recreate it. So that's what I set out to do. Fortunately, Bruce had included a vast swath of details about the video's creation, even including his project files and source code.

Of course, being a 10-year-old, there was no way I could possibly try to recreate months of work from someone in their very late teens. Not that that would stop me from trying.

INITIAL ATTEMPTS AAP (maybe...)


Skip ahead to mid-2020. I came into possession of a computer that would allow me to work on this project. I had spent the last few years developing my programming skills in my spare time on Scratch and as an extracurricular activity at my school where I learnt Processing. Using a few old tutorials on developing shaders from the folks at Continuum INSERT LINK, and Past Life Pro INSERT LINK, I started working away at the shader.

Bruce had been fortunate enough to provide the source code for the Minecraft shader he used to make his videos, and I used that as a jumping off point to start work on my project (and learn GLSL at the same time). Like any curious programmer working in an unfamiliar codebase, I started tinkering with the code, disabling certain lines and changing variable values to figure out what purpose they served.

During my time working on this project, I took hundreds of screenshots of interesting errors, progress milestones, and images of things to get feedback on. They'll continue to be interspersed throughout this article.

Tinkering with transitions resulted in numerous catastrophic errors.

Tinkering with transitions resulted in numerous catastrophic errors.

Tuning displacement intensity had predictable results.

Tuning displacement intensity had predictable results.

Probable VRAM allocation issue.

Probable VRAM allocation issue.

I have no idea what happened. Not a clue.

I have no idea what happened. Not a clue.

Who knows. Perhaps some things are better when kept secret.

Who knows. Perhaps some things are better when kept secret.

Frustum culled terrain. The rails are in a different sector (vertical chunk) and haven't been culled (just).

Frustum culled terrain. The rails are in a different sector (vertical chunk) and haven't been culled (just).

Squish

Squish

The shader always expects to be the player at a specific Y and Z coordinate, as the displacement is relative to the camera's position. So going where you're not supposed to causes issues.

The shader always expects to be the player at a specific Y and Z coordinate, as the displacement is relative to the camera's position. So going where you're not supposed to causes issues.

I started off by generating the terrain that would be used in the video. Due to a few quirks resulting from changes to Minecraft's terrain generation throughout the years, I ended up using an ancient mod for Minecraft 1.2.5 (released in April 2012, yes really). This process consists of finding a random world seed that looks nice and then moving the camera forward for thousands of blocks to get the game to generate more terrain. The amount of terrain that needs to be generated was calculated in advance. TERRAIN LENGTH AAP The terrain is then converted into a newer version of the game (1.12.2, released September 2017) where I do the rest of the work.