6 ms·
https://github.com/ByteTerrace/Puck/blob/main/src/Puck.World/README.md https://github.com/ByteTerrace/Puck/blob/main/src/Puck.World... "Shipped" is a bit stron
by kittoes 2mo ago
https://github.com/ByteTerrace/Puck/blob/main/src/Puck.World/README.md https://github.com/ByteTerrace/Puck/blob/main/src/Puck.World...
"Shipped" is a bit strong in my case, but I think this counts as something that isn't mere slop.
- deleted 2mo ago[deleted]
- dandellion 2mo agoOne sentence into that readme I can tell you that yes, it most definitely counts as slop.
- kittoes 2mo agoThat's fair critique, the README itself is indeed slop explicitly written by bots for bots. What it actually does and how it works is actually pretty neat if you care to look.
- Chris2048 2mo agoThen.. why would you link to the readme if you know it's slop? What's the point of a slop README?
- kittoes 2mo ago'Cause I don't have any quality user-facing documentation yet; that README is for bots. None of the interfaces have had a chance to settle, so any time spent accurately and humanely documenting what the project is capable of right now is an investment I cannot afford. I figured most people would just give it over to their favorite LLM with whatever instructions they prefer for translation because that's what I would've done...
- Chris2048 2mo agoWhat does "that README is for bots" mean? Are you implying it is some kind of special language written by and correctly understood by bots/LLMs, but otherwise semantically coherent?
- kittoes 2mo agoSort of? The bots almost insist on making sure one exists because that's one of the many patterns they trained on and they do their best to be human-like, but we all know that just doesn't pan out. They're also a side-effect of your long-term interactions with the agents, very much like being in a tight clique where most of your conversations sound like gibberish to outsiders because of all the jargon.
- rsfern 2mo agoI don’t mean to pick on you in particular here, but this approach has been bothering me a lot lately, and it seems like it’s super common. I get that it’s an early prototype and not all the design choices are made yet, but I struggle with “I can’t afford human-readable documentation yet”. Isn’t human readable documentation important for efficiently planning and deciding what you want to build? I feel like I can’t afford not to have human readable docs and plans while the project is taking shape Related, if a user can prompt an agent to translate to a human-readable summary, wouldn’t it be better to just do this in place? Sure, models can deal with noisy LLM outputs but shouldn’t a document that’s easier for humans also be easier for bots?
- kittoes 2mo agoNo worries, I don't feel picked on at all. Yes, it would probably be better to have something like that if you're struggling to plan and decide. In my particular case this has been a project that I have dreamt about and tinkered with for at least 15 years now. Most of the work I'm doing is just refinement of existing ideas what were already codified in other projects I've built. Why don't I do this in place? The amount of churn is utterly incredible as ideas are refined and taken to the limit. These agents are getting quite good, but they regularly make the silliest of mistakes. You actually have to be extremely cautious about what you document because it often has a way of becoming "doctrine" to the agents. In fact, one of the most difficult parts of working on this project has been that the foundational properties cause the agents to lock down behavior WAY too early.
- lenkite 2mo agoJesus Wept. Software engineering is dying at the moment and everyone has AI Glitz in their eyes.
- kittoes 2mo agoDying? Really? https://github.com/ByteTerrace/Puck/blob/main/src/Puck.Maths/BinaryIntegerFunctions.cs https://github.com/ByteTerrace/Puck/blob/main/src/Puck.Maths... Some of us aren't just slopping it up like @theo and all the other AI influencers are, as I developed nearly every single line of this by hand over the span of the past decade. Agents recently became capable of factchecking it and helped find bugs that my other unit testing never caught. Software engineering has never been more alive! https://gist.github.com/Kittoes0124/6827d08e457c1c8b790422af2212982d https://gist.github.com/Kittoes0124/6827d08e457c1c8b790422af... This is a snippet I wrote years ago to help me study different formulations of the equation ((1 + √5) / 2). There was this thing I could "see" in there that would allow me index into these sequences, and whole families of others, in O(1) time. The problem is that I still don't know enough maths to derive the exact object that I want from the nonsense that I have. https://github.com/ByteTerrace/Puck/blob/main/src/Puck.Maths/README.md#layersequence https://github.com/ByteTerrace/Puck/blob/main/src/Puck.Maths... This is the reformulation of that snippet into a proper object, distilled using Fable and Sol. Unlike BinaryIntegerFunctions, I didn't write a line of this and I'm quite happy with that. It's been a slog for so long... being able to let these agents toil away at all the off-by-one type noise is just nice. I get to focus on an actual product for once instead of manufacturing every single nut and bolt myself.
- lenkite 2mo agoI am just confused on how you know that all of what has been generated is valid. When you write the code generator yourself, you have that level of confidence.
- kittoes 2mo agoIt's mathematically provable in most cases because the engine is deterministic from the ground up and I refused to ever compromise on that one detail. For example, nearly all of the VM and maths code functions have been validated for ALL possible 32-bit inputs and extensively fuzz tested in the 64-bit range. Even the more complicated sections of the code like the emulators have batteries of third party tests that ensure a certain level of compliance. The fact that you can play commerical ROMs to completion, including esoteric titles that require third party peripheral/MBC code, is quite solid proof too! A form of recursion is also doing a lot of heavy lifting because the emulators are their own separate deterministic engines that are dynamically plumbed into the primary loop. This not only allows us to embed diegetic devices (as in, you can literally pick up a glowing brick in the world, hold it to your face, and play it), but also validates that the primary loop is coded accurately because the outer loop runs at X Hz while humble bricks must run at ~59.7275 Hz. Pacing inaccuracies in the main loop cause us to fail the brick suites that we test against. This concept of having features reinforce one another is applied as often as possible. The obsession with determinism goes so far that both the DirectX and Vulkan backends are validated against each other for pixel level differences. If they differ more than the expected maximum then code is refactored until the drift is back within acceptable range.
- inigyou 2mo ago... What is it? A game, apparently? There are no screenshots. Is the game fun?
- kittoes 2mo agoIt's not a full game yet, but the substrate on which I am building one. It implements a completely deterministic SDF VM rendering engine that allows edits in real-time at acceptable performance levels. The engine is essentially folded in on itself as the editor is the game; assuming that an editor mode was actually defined in the world document. It's a lot... https://claude.ai/code/artifact/382aee8a-3a3b-4cf8-801f-3ddb92ca8d03 https://claude.ai/code/artifact/382aee8a-3a3b-4cf8-801f-3ddb...
- inigyou 2mo ago[flagged]
- kittoes 2mo agoIt has so many words precisely because it isn't a slop game engine. You could indeed build a game out of it, and that's what I'm personally doing, but that isn't what it is. In a nutshell: it's just a really fancy compositor. We can take arbitrary feeds from different input sources and composite them in pretty much whatever way we want to. Obvious basic things like four-player split screen is possible but you could also choose to embed a fifth player screen within the game world itself, sculpted and riding on top of actual geometry. We can do this with a webcam, a program, the entire desktop, or even the built-in emulation engines; all editable and composable in real-time via a data-driven document. That's just scratching the surface...
- inigyou 2mo agothis is definitely slop. It's not slop because it supports 4-player split screen? That's your excuse? I think if I posted this same project to you and you'd never heard of it, you would come to the same conclusion.