Sean Barrett
@nothings
🏳️🌈 ally, BLM, gamedev (Thief, Promesst), original Indie Game Jam cofounder, popularized C header-file-only libs w/stb. he/him Larry, I'm on DuckTales.
R.I.P. Bonnie Tyler www.youtube.com/watch?v=lcOx... Total Eclipse of the Heart www.youtube.com/watch?v=bWcA... Holding Out for a Hero (both composed by Jim Steinman, who also wrote Meatloaf's hits and who died in 2021)
Also, fun fact, almost from the beginning I implemented the fence transparency as alpha-to-dither to allow the mipmapped fences (here, the fences are drawn as plants) to fade out. Dither doesn't quite work right in my engine because resampling breaks the dither slightly, but I tweaked to minimize.
I hacked in a crappy version and it looks pretty bad, although maybe this is just because I'm at a much higher resolution? The problem is that we're just dithering between 4 variations of the scene, so it means there's 4 variants of the artifact visible.
You can see on the objects on the left that the interior color changes have artifacts, but the steep-to-flat transitions don't. Once they're not debug-colored the artifacts should be unobjectionable.
The founder of Kinkos, in the documentary "The One Percent", answers the question of why he still wants more money.
www.youtube.com/watch?v=C-u5... Britney Spears - ...Baby One More Time www.youtube.com/watch?v=CduA... Britney Spears - Oops!... I Did It Again www.youtube.com/watch?v=ww94... Led Zeppelin - Kashmir www.youtube.com/watch?v=t7OI... Angine de Poitrine - Sarniezz (requests welcome from followers)
Sometimes when I read a plot summary from my capture of Wikipedia plot summaries, I get curious about what medium it's from or what year it's from, so I want to find the Wikipedia page. I can search the name but sometimes I just search a unique-sounding line. And so the Internet eats itself.
preach it. i reached a similar conclusion in the late 90s, and I remember feeling validated by Half-Life 2.
I remember making this The Batman shitpost video and posting it on the other place, but rewatching, I have no memory of the sound editing and no idea where I sourced the sounds from; if I came across it in the wild I'd assume somebody else edited the audio in. Anyway, it got 6 likes back in the day.
A thing I like about Minecraft crafting is the extremely primitive way the "shape" of the inputs in the recipe are used to reflect the shape of the output; I feel like this is a nice gesture towards crafting that makes it feel more substantial than most videogame "click the items and click craft".
www.youtube.com/watch?v=WA4i... Taylor Swift - We Are Never Ever Getting Back Together www.youtube.com/watch?v=aSug... Sabrina Carpenter - Manchild www.youtube.com/watch?v=ZiRu... Rush - Limelight www.youtube.com/watch?v=SCng... Janis Joplin / Big Brother & The Holding Company - Piece of My Heart
We know why Masayoshi Son won't retire, too. (Bonus, the day I discovered a thing we all take for granted now.)
Distorting the edges of dirt paths with fBm perlin noise reused from the cloud textures. Maybe I'll change the 8-bit road color to 5-bit color, 3-bits type & strength of noise.
The raycaster is 1200 lines of GLSL. This is all it takes to create the road:
Approximate gameplay feel: for now have to imagine the forest canopy, terrain-levelling for road, and physics/collision instead of debug camera. Road is an 8K x 8K 8-bit SDF (a photoshop scribble to test). No way to put road stripes on it, but can switch colors to have dirt roads and footpaths.
Haven't really shown it in motion before(?), so here. The camera is moving at 30 mph/50 kph. Most of the shimmering artifacts are debug data that shouldn't be so discontinuous. The pyramids are test data from debugging getting the vegetation height & color to line up while using 8K x 8K maps.
Switched the rotated dual layer to non-rotated, offset by half a grid square in each direction. Replaced 64x64 wrapping height field with 4K x 4K with explicitly replicated data: 6.7 ms => 7.6 ms.
Straight-down shadow works by, at each ray step, compute collisions from high to low, recording highest opaque point and shadowing under it. Code must visit layers high-to-low. 7.15 ms - wrong shadows if flipped 7.77 ms - if() between both orders (one layer inlined twice) 7.00 ms - inline only once
2 issues with shearing. 1) It only works with clamp-to-edge in the virtual coordinates, because the interior colored seams don't match. 2) More important, it introduces interior seams where things don't match (pictured: two-shear internal seam). If unacceptable, then nope. (Virtual texture instead?)
Not sure why performance cost--rotation is only an extra 0.1 ms. Unrotated: 4.1 ms - 0 dual layers 4.9 ms - 1 dual layers 6.7 ms - 2 dual layers (dual layer = intersection of two height fields) Each layer SHOULD be independent (see code). & it'll get slower when real dual layers use 4K x 4K tex.
Testing a rotated layer. A rotated layer of a 2d height field wouldn't actually fit into a square map properly. But a shear with wrap packs into the same map perfectly. So implemented as three shears with forced wrapping at each step. Think this is the 1st time I've ever done the three-shears trick.
Realized I was still oversampling vertically and discarding the extra pixels, so shrinking the raycast framebuffer from 2048x1280 to 2048x1080 saved about 7% of the frame time.
(In honor of Last Week Tonight's latest report, here's a repost of something I put on Twitter in 2019) Advanced D&D Monster Manual, by Gary Gygax, published by TSR in 1977.
Let's see what the National Society of Professional Engineers' "Code of Ethics for Engineers" has to say. Software developers are not licensed engineers, and the fields differ a bit in how collaboration works, but surely it's a reasonable comparison.