I also got bored after creating a couple of tiles. I scrolled around and saw very complicated things, but didn't realise they were submissions, just starting points for solving the level...
I guess I was the April Fool!
Uncaught Error: recursive use of an object detected which would lead to unsafe aliasing in rust
at jt (rapier_wasm2d_bg.js:4836:11)
at 4ea5626ea4b1e4145572.module.wasm:0xf061c
at 4ea5626ea4b1e4145572.module.wasm:0xf0638
at 4ea5626ea4b1e4145572.module.wasm:0xb5e7b
at H.remove (rapier_wasm2d_bg.js:1051:14)
at l.remove (collider_set.js:87:18)
at y.removeCollider (world.js:343:28)
at PhysicsContext.tsx:258:15
Also, this is super fun, and I'm sad I didn't learn about it when it was still live. It'd be really really cool if people could still permalink individual machines created. I know that might be an issue for storage. Maaaaaybe just base64 encode the JSON into a URL param??? Please?? I'd love to create weird maps and share them with people.Machines that make it into the overall public version can be permalinked, but there's no permalinks for individually created things that don't get selected via the moderation queue. This was an intentional decision to avoid the risk of hosting unmoderated user-generated content on the comic's domain.
Ah, the game turned into a big corp job!
It also looks like I'm not the only one who hasn't figured out that the list of building blocks is scrollable!
Ugh. Just submitted two, and had no idea the list could be scrolled. Can't be bothered going back and looking now though. :(
Cool to see a more refined and well-functioning version of the idea.
https://www.myabandonware.com/game/the-incredible-machine-1m...
Of course there are some people that simpliy are hyper productive, but the level of detail and complexity of these comics always made me feel a bit "inadequate" :)
As if this is not an absolutely breathtaking creative accomplishment, especially so consistently and after so many years!
I agree with another commenter that it probably does get easier with experience, but nevertheless impressive.
Just programming one of those interactive comics must be quite a challenge, to then add the story, the wittiness, depth, etc is what blows me away.
Wait, “our”? I thought XKCD was just Randal Munroe.
> Machine’s backend was written in Haskell by davean and Kevin
So at least two other people. Three when counting the author of the blog.
The Wikipedia page for XKCD doesn’t show these names. Is XKCD a multi-people effort now, or are these “friends of the comic” who work on interactive stuff?
Edit: I've updated the first para of the post to hopefully clarify this better
Several years ago XKCD released a comic that was different depending the browser, operating system, ip, and referrer you use to view it.
I know people uncovered hundreds of versions of it but I never heard a detailed write up about how it worked or how many comics there were available.
Does anyone know if they ever figured it out?
A few more links for the record (don't read too soon, possible spoilers):
https://www.reddit.com/r/xkcd/comments/1bxg43b/xkcd_2916_mac...
Its not like you can solve a 2nd order differential equation in bowser.
function solveSecondOrderODE(b, c, y0, dy0, dt, tMax) {
let t = 0;
let y = y0;
let dy = dy0;
while (t <= tMax) {
console.log(`At time ${t.toFixed(2)}: y = ${y.toFixed(4)}`);
let ddy = -b * dy - c * y; // Compute the acceleration (second derivative)
y += dy * dt; // Update position
dy += ddy * dt; // Update velocity
t += dt;
}
}
// Example usage:
// Constants b and c for the damped harmonic oscillator
const b = 0.5;
const c = 1.0;
// Initial conditions: y0 (initial position), dy0 (initial velocity)
const y0 = 1.0;
const dy0 = 0.0;
// Time step (dt) and maximum time (tMax)
const dt = 0.1;
const tMax = 10;
solveSecondOrderODE(b, c, y0, dy0, dt, tMax);I work for a major University. The only major numerate discipline for which we do not teach programming to undegraduates is Medicine, and my guess is that Medics are already completely buried by the tremendous amount of stuff they're expected to have at least some knowledge of to do their eventual jobs, without us showing them how to make apps.
Like sure, if you come here to study Fine Art, we don't (by default) teach you to write software, but if you come to learn like mech eng. or electronics or chemistry or something you're going to be shown how to write software. You can probably flunk that in most of these subjects and still get a degree because it's not on your critical path, but we tried.
These are not software engineering courses. You're not going to learn how to be in charge of a major software project, you won't learn how to design software, nor even stuff like CI and revision control - if you try to scale what you learned in one course as a Biologist into a Chrome-sized application that's going to be a disaster, but you've written software, you know what a loop is, what a variable is, and so on.
...
I’ve heard comparisons drawn between modern browsers and game engines, with their tightly optimized GPU rendering and DOM / scene graph. The similarities have never felt more apt."
The DOM might have become faster, but using the GPU directly via Pixi is still a world above in terms of performance and using Pixi could have made everything more smooth. But dev time was limited .. and the result is still impressive.
In my defense, I did personally find it quite suspenseful to wait for my vague sense that chaos would eventually reward me to cash out.
Now that I reflect, I might have also called it "WU WEI". I know I also used that for (at least) one of my zero-element submissions.
Also--apologies if the "ONLY FANS" submissions wore out their welcome. I'm sure I wasn't the only one, but I was probably a fair fraction :)
Sometimes this is dead-simple (the balls just drop from the top on through).
Sometimes, they'll solve if you're patient enough (the balls pile up, shift around, and sooner or later enough of them exit within the time window necessary to trigger the submit UI).
Edit: to finish connecting the dots just in case--I waited quite a while for one, probably at least 10 minutes--to do this. When the clearance rate for a machine is poor, it will usually drop back under the submit threshold very quickly. In these cases, you have to watch very carefully to be prepared to submit in the brief window that the submit UI is enabled. The OP suggests that during moderation they generally waited 30 seconds for a submitted machine to do the thing before they moved on.
I think you may be missing the point if you think this is an animated rendering of a static setup?
There is a stated rationale for every other design choice, but the blue balls GIF is an animation, not a simulation. It didn't even start as a simulation. So why the choice of making this a simulation, not an application for users to animate tiles?
Can't help but feel it would have been a lot better with constrained physics and automated submissions.
The current version is probably more fun to be on "the inside" of, evaluating submissions and stitching them together, but at the expense of the finished product.
Your "constrained physics" seems to mean adding constraints to make it implementable. I want constraints aimed at making it cool or fun, and implementable. Which is what this project did.
Plus: if you tell me something is smoke and mirrors, I get excited. "Ooh! How did you time the smoke? Oh, this mirror is half-silvered?! That's awesome, I wouldn't have thought of that! What would happen if..."
How is your turn based app example analogous to a complex physics simulation? And what exactly do you consider about the app's multiplayer to be the bar?
This one is kludging from every angle. They're cheating with the physics, they're cheating with who sees what, they're cheating by handpicking levels. It results in an experience that isn't grounded, because none of the foundational dimensions are real.
Great example: Space Engineers, a very popular game in which you can build ships, bases, etc. with an incredible consideration for automation, moving things around, etc. One of my favorites. But the game intentionally (1) limits the top speed of all entities to 100m/s, (2) doesn't actually simulate orbital mechanics despite having planets, and (3) forces you to construct things on a 'grid'. All of these constraints are arguably shortcomings, but they also enable the physics engine to live and collisions to work.
Also, what you're asking for is very hard to do with physics engines as they exist now. Simulating a bunch of non-static elements like that is incredibly expensive.
I have a bookmark for it, and whenever I want to kick back a bit, perfect.
However, I've noticed that it has a tendency to go blank (i.e. fail and stop working) when multiple colour spectrum triangles are in play and in particular when they are on top of each other.
I'd really like to see some additional objects to place into the machine.
One other problem I have is that the "perma-link" button doesn't seem to do anything. When I come back to the URL, my machine isn't there.