Zack Williams
@boatbomber
Creator of @lualearning.org • Founder of @torpedosoftware.llc • 5x SWE Intern @ Roblox • 5x Bloxy Nominee & 3x Bloxy Winner • 2x RDC Gamejam Winner
I might do a technical writeup on www.boatbomber.com/blog in the future that breaks down how this works with some peeks behind the curtain
Liquid glass in #Roblox! Frosted glass is just so 2007. Total control over the material. (Shape, chromatic aberration, displacement, specular, lighting, etc.) Should I release this? It's a neat tech demo (ran at ~190 FPS in this video) but isn't viable for real games.
I revived my old GlassmorphicUI to use the latest EditableImage APIs and make it a lot more performant. #RobloxDev github.com/boatbeaker/G...
Occlusion culling in CullThrottle! #RobloxDev In this stress test, everything is throttled since our update budget can't update thousands of visible blocks. By skipping occluded objects, we spend our update budget more wisely, leading to much higher refresh rates!
This work would have wasted over an hour of my time, and now it took 2 minutes to generate plus another 10 to check the work. Anyone still doing grunt work is wasting their time. LLMs are absolutely good enough to do the grunt work (at least in popular languages like JS and Python).
I've become a daily Claude Extended user. I write quick+messy code until I've proven my idea, then I have Claude turn it into neat classes and unit tests. This allows me to focus on the real logic and ideas, instead of focusing on writing clean+performant code. Huge velocity boost.
The funniest part of this project was trying to convince models to output reasoning that links the prompt to the existing code from the original dataset. My solution is to gaslight them and tell the model that it already wrote it but it needs to be rewritten.
I'm building a synthetic reasoning dataset using the open Luau corpus from Roblox! I want to fine tune reasoning models to generate Luau code. I will open source this dataset, the code used to build it, and the model weights if I get a good fine tune model.
Benchmarker v7.3.0 is out! #RobloxDev - Adds BeforeAll, AfterAll, BeforeEach, and AfterEach functions - Profiler usage inside of iterations will now display meaningfully in the flamegraph
The first release candidate for CullThrottle is now available to try! #RobloxDev Please send me any feedback or bug reports! Github: github.com/boatbomber/C... Wally: wally.run/package/boat...
CullThrottle now has dynamic render distance! #RobloxDev (Can be disabled if you want specific control) It will adjust the distance to ensure you're staying within the allocated time budget and desired refresh rates!
CullThrottle will find the optimal balance of visuals/perf in the current scene for your hardware. Give it a budget (ms) + a minimum & target refresh rate, and it determines what to update each frame for the best visuals in the budget. It'll even go above your target if it's in budget.
You work your hardest when trying to prove someone wrong- so I made Roastjo, a Rojo fork that roasts your changes as you sync them. #RobloxDev #Roblox 🔊
I'm having fun though, solid game. It's pretty much exactly what you expect from a CoD BO game
Decided to attempt a dynamic fluid simulation! It's far from perfect (or even correct, tbh) but I still enjoyed making and playing with it. Fun weekend project! #RobloxDev #Roblox (Arrows are flow, color is pressure, black arrow is obstacle) (Originally posted Apr 9, 2023)
I love open source. I needed AWS header signing in Lua so I looked around to see if someone else made it- they did, and credited me. Something I open sourced years ago enabled others to build things that came full circle to help me now. What a beautiful ecosystem. #RobloxDev
Fun fact: @lualearning.org is in the 0th percentile for monetization. You're damn right we are. (Source: new Roblox analytics dashboard)
I waited a few days to post my #RDC24 photos so that they can lift you from the post-convention-depression ❤️
I got in too deep- I was reading archived mathematicians' email threads from the 1980s & barely legible scanned textbook PDFs. The result of all that effort was totally worth it. I could watch this all day. It's so fast, this entire demo is a few hundred microseconds per frame.
Added support to CullThrottle for getting objects in view, without distance throttling. #RobloxDev Super useful in many cases, like object pooling where you release objects into the pool when they go out of view.
I'm working on CullThrottle, a system for efficiently handling updates to thousands of objects. #RobloxDev Built on the tech that makes WindShake possible, it makes it easy to run your effects at high FPS by managing which objects you should update each frame. (Originally posted Jul 28, 2024)
You can also do non-spherical shapes if you want something truly bizarre!
There's so much tuning you can do! The curvature of the glass, the transparency level, the placement of the blue/red layers, etc. Go wild! It can get pretty trippy, just make sure to avoid getting motion sick!
Finally, a tiny bit of code to put them in front of the camera each frame!