4 ms·
I am more shocked about the origin story compared to the acquisition. > Almost five years ago, I was building a Minecraft-y voxel game in the browser. The code
by notnullorvoid 10mo ago
I am more shocked about the origin story compared to the acquisition.
> Almost five years ago, I was building a Minecraft-y voxel game in the browser. The codebase got kind of large, and the iteration cycle time took 45 seconds to test if changes worked. Most of that time was spent waiting for the Next.js dev server to hot reload.
Why in the hell would anyone be using Next.js to make a 3D game... Jarred has always seemed pretty smart, but this makes no sense. He could've saved so much time and avoided building a whole new runtime by simply not using the completely wrong tool for the job.
- mayo369 10mo agoMaybe same for anthropic, they can simply write agent using Rust/Go. Instead they decide to buy and develop a JavaScript runtime.
- nly 10mo agoIf anything this seems to be a huge victory for Zig, since Bun is mostly written in Zig.
- throwup238 10mo agoThat’s just what the Javascript ecosystem has been missing! A runtime built on an unstable pre-1.0 language to go with the npm dependency churn. It’s been way too long since I’ve had to waste a week debugging what turns out to be a compiler/interpreter bug. (I’m half joking, that’s awesome for Zig!)
- someguyiguess 10mo agoRushing things to completion using unfinished code is the JavaScript way! - a javascript developer
- qeternity 10mo agoThese are completely different. Agents (aside from the model inference) are not CPU bound. You gain much more by having a wider user base than whatever marginal CPU cycles you would gain in Rust/Go. Video games are of course a different story.
- someguyiguess 10mo agoMy thinking is that they’re trying to capture that market for JavaScript before another AI company does. To put it bluntly they want to capture the revenue generated by writing JavaScript code, which is currently being captured by independent JavaScript developers. The reason for a JavaScript is that is the most ubiquitous language, and id guess there are more jobs available for JS/node than any other language. Of course, as a JavaScript developer, this may just be my paranoia. <sweats profusely>
- Aeolun 10mo ago> He could've saved so much time and avoided building a whole new runtime by simply not using the completely wrong tool for the job. True, but where is the fun in that?
- cryptonym 10mo agoWhere is the fun in next.js?
- mock-possum 10mo agoMost people use what they know. You start out that way, and if it turns out to be good, you can always do a v2
- notnullorvoid 10mo agoYes, but there are obvious limits to that. This is like someone who knows how to bake wanting to build a car, so they start making it out of dough.
- someguyiguess 10mo agoThat is not a good analogy. Games are built using programming languages. JavaScript is a programming language. Cars are built using metals (usually steel). A better analogy would be like trying to build a car out of iron, a really heavy metal. Since js/node is very resource heavy requiring transpilation/etc…
- notnullorvoid 10mo agoIt's not a perfect analogy, but none of my comments are directed at the use of JS for a game, it's a fine choice. It's the use of Next.js that's the issue, it's a framework for server side rendering of HTML. It serves no benefit if your goal is to make a 3D game, it only adds overhead. If he had not been using it he would have realised there's a few bundlers out there that are far better than what Next.js dev server provided at the time.
- johncolanduoni 10mo agoHe may have been serving a game in a canvas hosted in a Next.js app, but have done all the actual game (rendering, simulation, etc.) in something else. That’s a decent approach - Next can handle the header of the webpage and the marketing blog or whatever just fine.
- komali2 10mo agoBut like... so can an index.html with a script tag? Am I missing something, where did you read that there was a lot of work involving the header or an attached marketing blog?
- shortrounddev2 10mo agoindex.html with script files would still benefit from a bundler. You can have a very minimal react footprint and still want to use react build tools just for bundling.
- komali2 10mo agoSure, but I'm more confused about the next.js usage than I am about the bundler. The bundler makes sense.
- johncolanduoni 10mo agoWhat effect do you imagine Next.js has on a bunch of code manipulating an HTML canvas? For vanilla code directly using browser APIs it’s basically just a bundler configuration, and while it’s not optimally configured for that use case (and annoying for other reasons) it’s probably better than what someone who has never configured webpack before would get doing it themselves.
- komali2 10mo agoWell for one, it ships next.js and react.js bundled in with the code manipulating an HTML canvas.
- Tadpole9181 10mo agoBecause he wanted to? Do you also berate the choices of people in the 4K demo scene for using too little memory?
- someguyiguess 10mo agoThat’s kind of the opposite though. I guess if you’re saying that there’s an art to building things using the least efficient means possible just as there’s an art to being maximally efficient (like the 4k demo scene) then your point stands.
- Tadpole9181 10mo agoYeah, my point was that people do things for fun or as a challenge or to push the limits of a technology. Nobody made DOOM in Excel because they thought it made a good engine.
- cyco130 10mo agoFirst time I see it being a net positive that someone didn't know about Vite: Bun wouldn't exist otherwise.
- moritonal 10mo agoThis take is interesting given we're all here congratulating Jarred for seeing that there was no tool to solve x so made it, and is now enjoying a likely nice payday. Be the change you want to see in the world?
- PurpleRamen 10mo agoIt kinda reads like a case of survivorship bias. He is the one in a million to reach the good ending, despite starting with the wrong choice; though in this case, the wrong choice brought him on the road to the good ending. Now the real question is, does the game loads significant better now, or does the performance still suck? In which case it might be more an excessive case of yak-shaving. And if yes, when can we except the release?
- someguyiguess 10mo agoIf the output generated by his attempts at making a better game is a much faster node runtime, then even if the game is still not usable does that matter? The end result is still an improvement over something that existed before. The game was just a catalyst. Isn’t every success story really an example of survivorship bias?
- PurpleRamen 10mo ago> Isn’t every success story really an example of survivorship bias? No, survivorship bias (in this context) means to wrongly see a minor subgroup as the majority. But the successful subgroup is not always a minority, or falsely labelled.
- richardlblair 10mo agoUsing your comment to address overall sentiment in this comment thread. Builders build. Sometimes it's not about picking the right tools for the job or starting with the right choices. Sometimes it's just about building. To use your road analogy - sometimes people just go for a drive. Sometimes those people end up right where they are supposed to be.
- ramon156 10mo agoI don't think his goal was to get the fastest voxel engine. Most projects just start with "That's stupid... but what if I did it anyway?"
- someguyiguess 10mo agoI’m guessing he was probably a JavaScript developer that wanted to make a game. He began building it using what he knew and then he hit the limitations of it. Rather than switching to something else, he tried to figure out why fast compile times weren’t possible and determined that they were possible and started to build a solution for it.
- torginus 10mo agoThat's super strange since React by its nature assumes that controls are stateless - which games definitely are not. If you render your game inside a canvas then React decides it wants to recreate your control, then your whole game restarts.