HN user

dyarosla

1,439 karma

I work on making learn to code games for kids, including LightBot and SpriteBox

Posts14
Comments429
View on HN

To play devil’s advocate, intuition is still a physical response to stimuli mixed with knowledge of past experience. Hypothetically it could be modeled- the problem here comes down to how to encode it.

I also worked on a number of Flash projects in its heyday. I agree that there aren’t really any close equivalents to its feature set today, but there are some tools like Rive and Lottie that I’d consider modern day reimaginings for many multimedia workflows.

Compilers dont test, or rather, they test a very specific and narrow set of things relative to what youd want to test to maintain a working program

Also, but rarely:

Some engineer wants it bad enough that they just build it -or some version of it- and then some executive gives the go-ahead to invest more into it.

At the end of the day, ideas are just ideas. Execution is everything.

I agree- what’s the difference between error correction and a full tick? At what point do you draw the line on error correction?

Extrapolation is often used to mean extrapolating values without error correction, at which point the results are less than stellar.

Spacewarp is, like Timewarp, a way to match the render frame time on a headset but by creating a warp of the output image; ill concede that this is technically extrapolation but is far away from whats generally referred to in describing updating entity values in game loops.

For the former, Timewarp is used at an OS level to perturb the visibly rendered quad to match the display time orientation. There’s no extrapolation: the rendered frame is simply adjusted to account for the change in headset orientation.

For the latter, as I mentioned, the extrapolation is not on velocity: you still compute regular game ticks but by holding the input constant. This is quite different from extrapolating velocities.

Extrapolation is one of those ideas that’s not actually used in practice- at least I’ve yet to see it used in any games in any meaningful capacity.

It’s just far too complicated and requires custom logic while resulting in worse results than more straightforward options. Even for multiplayer games the “extrapolation” is often done by repeating input states and running the regular game loop.

I also wouldn’t equivocate the interpolation approach with extrapolation. With interpolation you interpolate between two valid states. With extrapolation you produce a potentially invalid state (ie a character that’s inside of a wall). The only work around for the latter issue is to perform a full game tick - at which point you’re no longer doing extrapolation.

The main reason to prefer interpolation is that your fixed time step function does not need to operate on variable time ever- removing a complicated dependency.

For instance, modifying character accelerations based on a fixed time step constant is far more straightforward than the methods required to work with variable time deltas (due to floating point accumulated error). This is why any action-based deterministic game (think platformers, shooters, physics based games) will opt for this.

IMO it is much more straightforward to have a render method that pre-allocates some extra memory, interpolates a handful of values and renders them vs the nondeterminism introduced in a game logic method that has to take into account variable time (especially if also networking multiplayer state). And for this you trade off a frame of visual-only latency - a choice I’d take any day.

What’s the differentiation with other similar ventures?

For instance, Synthesis[0] is an instructor designed, AI supplemented site for early math. https://www.synthesis.com/

It really seems like the distinction for these kinds of AI-education ventures comes down to the human educator(s) involved.

In short; if AI is a commodity, it cannot be your moat.

This is especially relevant wrt startups which can’t compete on compute or research: instead they must compete on something that is more defensible: unique data, first mover adv, etc.

I don’t know how this wasn’t mentioned yet but 100% use a Webgl framework, even for 2D games. Three.js is my personal favorite. Nowadays most all browsers and devices support it and I’m sure I don’t have to touch on the magnitudes of difference in speed for rendering anything on the GPU vs the CPU?

If you plan on having any amount of medium to large numbers of things (heck I’d say any amount) you’d be doing it wrong to be using the 2D canvas API.