will

will

@wretched.computer

137 followers245 following80 posts

will reposted

for two months, I've been flying drones over Flock cameras to situation them in space and geography; I even got my commercial drone license in order to do it. I'd like to share this project with you all: it's called Records Of Enemy Surveillance: recordsofenemysurveillance.com

part 3 of my Reverse Engineering Crazy Taxi series just dropped, check it out: wretched.computer/post/crazyta... in this post, we learn about mipmaps, vintage texture compression techniques, and the nitty gritty of how every GameCube draw call is made. and we do it all in service of one thing:

will reposted

You have more in common with the people of Iran than you do with anyone in this administration, any member of the technocracy, anyone who is profiting from this war, or any billionaire. When you see Iranians forming human chains outside key infrastructure sites, you should feel a sense of kinship.

will reposted

A video for absolutely nobody. All of the Dave Ryder names from the Space Mutiny episode of Mystery Science Theater 3000 except with the highest level Warrior of Light I found on the Lodestone with that name. #FFXIV #MST3K

i recently finished v2.0 of my browser-based World of Warcraft level viewer! so here's a thread on what it is, how it works, and a visual history of its development check it out at noclip.website by searching "World of Warcraft", finding a zone you wanna explore, and fly around w/ WASD + mouse

View full thread

i learned a tremendous amount about reverse engineering, 3D graphics, linear algebra, etc from this, most of which i had very little knowledge of before starting. if there's one takeaway here, it's that if you've got passion, time and persistence, you can accomplish a heck of a lot

i recently finished v2.0 of my browser-based World of Warcraft level viewer! so here's a thread on what it is, how it works, and a visual history of its development check it out at noclip.website by searching "World of Warcraft", finding a zone you wanna explore, and fly around w/ WASD + mouse

View full thread

sadly that's about all the archival footage i've got from the dev period -- at some point, whenever i ran into an issue, i'd just hop on a discord call w/ Jasper and screenshare rather than sending screenshots. here's an early version of the particle system in action, though

there's more to tell about this project, but i'll leave here for now. i'd like to give a ton of thanks to @jasperrlz.bsky.social, without whom i'd certainly never have written this project, but also for being an incredibly patient and generous mentor and co-conspirator on this project

i recently finished v2.0 of my browser-based World of Warcraft level viewer! so here's a thread on what it is, how it works, and a visual history of its development check it out at noclip.website by searching "World of Warcraft", finding a zone you wanna explore, and fly around w/ WASD + mouse

View full thread

speaking of bugs, one of my favorite things about Jasper's noclip framework is the bevy of debug tools he's written into it. it's hard to overstate how useful it is to display debug information in-place when working on 3D scenes, or to use a debug shader to track down incorrect model normals

once i'd rounded out most of the major graphics systems for vanilla WoW, i thought i'd try and load up some levels from the 2 subsequent expansions, Burning Crusade and Wrath of the Lich King. to my amazement, they kinda just worked! here's some screenshots of what they looked like then vs. now

i recently finished v2.0 of my browser-based World of Warcraft level viewer! so here's a thread on what it is, how it works, and a visual history of its development check it out at noclip.website by searching "World of Warcraft", finding a zone you wanna explore, and fly around w/ WASD + mouse

View full thread

i recently finished v2.0 of my browser-based World of Warcraft level viewer! so here's a thread on what it is, how it works, and a visual history of its development check it out at noclip.website by searching "World of Warcraft", finding a zone you wanna explore, and fly around w/ WASD + mouse

View full thread

but with these 4 ingredients (BLPs, models, ADTs, and WMOs), we can finally start rendering proper levels! well, again, not really proper due to the total lack of lighting, but at this point in the project i was seriously ecstatic just to see Ironforge nestled in its mountain here

i recently finished v2.0 of my browser-based World of Warcraft level viewer! so here's a thread on what it is, how it works, and a visual history of its development check it out at noclip.website by searching "World of Warcraft", finding a zone you wanna explore, and fly around w/ WASD + mouse

View full thread

"but wait, if each point of terrain can only have one height value, how do caves and stuff exist??" what an astute question, hypothetical reader! and it brings us to the last major renderable object in WoW, the "world map object", or WMO. WMOs are how caves, buildings, and entire cities are stored

if you're familiar with how WoW looks, you might note that the colors in the above images are pretty off. that's because at this point, i was rendering geometry and textures, but doing nothing to handle lighting. all of that came quite a bit later, so for now these scenes will look pretty flat.

i recently finished v2.0 of my browser-based World of Warcraft level viewer! so here's a thread on what it is, how it works, and a visual history of its development check it out at noclip.website by searching "World of Warcraft", finding a zone you wanna explore, and fly around w/ WASD + mouse

View full thread

you probably noticed the models above are sideways; as it turns out, in graphics, concept of which 3D dimension is "up" is fully arbitrary, and each studio chooses their own convention. each noclip viewer has to adjust for this to get things from their "studio space" into "noclip space"

after models, i moved on to rendering WoW's terrain. terrain in WoW is stored in chunks called ADTs, which are fixed mesh grids that're 1024 points wide and 1024 points long. each point in the grid can have an arbitrary height value, thus giving us a sort of mesh blanket that forms the terrain

i recently finished v2.0 of my browser-based World of Warcraft level viewer! so here's a thread on what it is, how it works, and a visual history of its development check it out at noclip.website by searching "World of Warcraft", finding a zone you wanna explore, and fly around w/ WASD + mouse

View full thread

(as an aside, all of the screenshots following this were recovered from my discord DMs w/ Jasper, so what follows is a roughly chronological account of what my viewer looked like through development)

after textures, i moved on to models. these are pretty straightforward: they're mostly just triangle meshes which reference one or more BLPs as textures

i recently finished v2.0 of my browser-based World of Warcraft level viewer! so here's a thread on what it is, how it works, and a visual history of its development check it out at noclip.website by searching "World of Warcraft", finding a zone you wanna explore, and fly around w/ WASD + mouse

View full thread

one core tenet of noclip.website development is that its game viewers should, as much as possible, work from native game files. this means that each viewer is a bespoke parser of the original game file formats, and writing one usually means recreating a reasonable portion of the game's engine

as such, my WoW viewer needed to understand the file formats as they shipped w/ vanilla WoW. or, to be precise, as they shipped with WoW Classic. and to get things started, i began with the game's texture format, BLP in all of the following posts, check image alt text for more dev details

i recently finished v2.0 of my browser-based World of Warcraft level viewer! so here's a thread on what it is, how it works, and a visual history of its development check it out at noclip.website by searching "World of Warcraft", finding a zone you wanna explore, and fly around w/ WASD + mouse

View full thread

but first, it might be helpful to outline how exactly noclip.website works. Jasper's put together a really nice TypeScript & Rust framework for building scenes in WebGL/WebGPU, plus a ton of utilities for the kinds of math, debugging, and camera manipulation one commonly does in 3D graphics

i recently finished v2.0 of my browser-based World of Warcraft level viewer! so here's a thread on what it is, how it works, and a visual history of its development check it out at noclip.website by searching "World of Warcraft", finding a zone you wanna explore, and fly around w/ WASD + mouse

View full thread

getting the project to this point took a truly insane amount of time, research, and debugging that's kinda difficult for me to wrap my head around now. it all started about a year and a half ago when i was looking for a new hobby project to sink my teeth into

i'd already spent a fair amount of time using @jasperrlz.bsky.social's noclip framework writing a Halo level viewer, and as a recovering WoW subscriber from back in the vanilla days, i wondered how feasible getting an older game like WoW classic into noclip would be

i recently finished v2.0 of my browser-based World of Warcraft level viewer! so here's a thread on what it is, how it works, and a visual history of its development check it out at noclip.website by searching "World of Warcraft", finding a zone you wanna explore, and fly around w/ WASD + mouse

one nice thing about noclip is it'll save your current camera position in the URL, so to share a specific location, just share the URL: noclip.website#WorldOfWarcr... you'll want a decent computer and internet connection to use it. also, these flythrough videos are all from noclip's builtin tooling