HN user

thunderfork

291 karma
Posts1
Comments257
View on HN

I feel like "having enough useful context to be jumping in and answering the question in question" and "needing an LLM to shave off 25 minutes of writing on the subject" feel like they're incompatible premises.

I would prefer you give me whatever part of your answer takes you five minutes and then I can work from there on my end, in the method and with the tools I see fit. In other words - give me the prompt.

Totally possible I'm misunderstanding the situation you're presenting, though.

Going over the patch notes, here's some buffs you might have missed:

Mandatory parking minimums, high speed limits, car lanes without bus lanes or bike lanes, tearing down neighborhoods to build interchanges and highways...

I have complex feelings about this subject, but if you can't stop yourself from leaning on "absolute freedom is the only correct option", you're going to have to make sure you're not making the mistake of thinking "absolute freedom" is "some specific balance of freedoms and constraints"

Picking on a particular nit here, but I think it is indicative of the broader flaw with this argument:

To rename `PostgreSQLClient`, I press F2 and type the new name, and I'm done.

I don't have to wait for an agent to "perform the refactor, update references, run the tests, fix the missing pieces, and mark the relevant checkboxes in the ticket" (btw, what checkboxes..?)

I press a key, type my change, and I'm done.

Wasting time waiting for tokens is also wasting time.

TypeScript 7 14 days ago

Whether the performance difference between Go and JS (via node or whatever) matters depends on your use case - it definitely matters for the TS compiler, but it might not matter at all for your CRUD app.

Resetting Xbox 16 days ago

A lot of games are less latency-constrained than you'd expect. FPSes are obviously rough with input lag, but stuff that's turn based and even many platformers feel "good enough" up to like 150ms

I see plenty of references in the articles I clicked on.

Surely if Odin is all that notable, somebody somewhere's written something about it in a SIGGRAPH paper, at least?

The person you're replying to isn't me (the person you're quoting above), but to be clear:

I'm not trying to be insulting, here, it's just kind of a bizarre, eyebrow-raising thing to see. There's a reason you're not seeing any AAA games doing this, y'know?

If you're doing something that's really unusual, you're going to have people going "this is really unusual".

Please don't take this the wrong way - this is sincere, well-intentioned advice: have you ever watched Shark Tank? The best people on there can still give a good pitch when their ideas are challenged.

The games industry - and especially the multiplayer games space - are brutal, and players are going to be way more critical, way more rudely, than anyone on HN.

It would benefit you and your game greatly to practice selling your idea in the face of criticism and doubt.

Taking 2.5 megabytes per second of compressed new state information, uncompressing it, and applying it (across the "thousands and thousands of networked entities", etc, that keep being talked about) to the game state? All the memory thrash that implies, along with the knock-on effects (animation updates, yadda yadda)?

Yeah, that has a performance cost.

Will this impact a big-money gaming rig? Probably not? Will it run good on the Steam Deck? Probably not.

Generally, in a game loop, all this stuff is going to be single-threaded and blocking, right? It's mutating the game state, that's the classic why-games-suck-at-thriving-on-many-small-cores problem. So your performance capacity ends up being tighter than you might think relative to other "ingest data" tasks.

Let's say your game's networking runs at 30 ticks a second, and you've done a great job in uncoupling rendering from the game loop, so you're lucky enough to not have to worry about that. You still only have 30ms, on a single thread, to handle networking (likely no special kernel-skipping stuff on clients!), unpack, apply and propagate your changes, and also do your local game loop stuff. If you miss that interval once, the game starts to fall behind and feel bad to play.

Now, you could say "lower the tick rate", but then you'd need less data, too, and your game gets less responsive (fine for some games, not for others)

Yeah, this strikes me as strange. If you're sending that much data constantly, you're either syncing too much stuff too often, or you're not using compression when you should be (shout-out to Oodle)

Something that this article doesn't mention that's going to be a big constraint: each of your clients parsing 20mbps of updates is going to have a performance impact on those clients.

At the end of the day, you can only "democratize" while you have players, and performance constraints on end users aren't getting any looser

Game data and video data have very different constraints. Depends on the nature of the game, of course, but with jitter and all that, video can just run a buffer and manage network conditions (more) trivially, but a game needs things to be a lot tighter to avoid gameplay-impacting desync