HNHacker News
TopNewBestAskShowJobs

mike_san

96 karma · joined October 14, 2021

https://www.linkedin.com/in/mike-sandige-a8819b/
submissionscomments
mike_san··on Space Cadet Pinball on Linux
We had to make sure that Space Cadet ran on the minimum spec Windows machine, which had very little RAM - 4MB I think. On these machines, I made sure the game would run, but it would occasionally pause to swap sound effects when something new happened :)
mike_san··on Space Cadet Pinball on Linux
There were some other easter eggs also that Microsoft ended up disabling. One showed the credits for the folks who worked on the game. If I remember right, it was triggered when you typed "Cinematronics", or maybe "Cinematronics!"... It's been a while since I put that in. And I think there was one that turned the balls into smiley faces, but maybe that was only on the Full Tilt tables.
mike_san··on Space Cadet Pinball on Linux
Thanks, David! It's great to see the ongoing interest in this game!
mike_san··on SpaceCadetPinball – Decompilation of 3D Pinball for Windows
Raymond's comment about not being able to find the collision code is a bit absurd. I can't recall if Danny or I named the top-level collision detection function, but it was just named 'pb_collide'.

It's nice to be able to point to this line: https://github.com/k4zmu2a/SpaceCadetPinball/blob/5947727f80...

And, while it is true that the code is sparsely commented, the geometry code that computes ray intersections is commented.

mike_san··on SpaceCadetPinball – Decompilation of 3D Pinball for Windows
Thanks! We modeled collision boundaries with high resolution, and tried to use physically appropriate material settings. But this had to run on relatively slow machines, so the physics model itself was pretty basic. Except for the flippers. I really wanted them to feel like physical flippers - predictable, controllable, and without computational problems that let the ball pass through them sometimes. :( I put lots of time into the flippers, and had some trouble balancing those requirements with the available CPU - it wouldn't do to have the game slow down to figure out how the ball should move when you hit the flippers.
mike_san··on SpaceCadetPinball – Decompilation of 3D Pinball for Windows
yep, this is it. The project started out in Delphi, but I had to port it to C to integrate with the Windows Build. For some reason they didn't want to include Delphi tooling in the Windows build.
mike_san··on SpaceCadetPinball – Decompilation of 3D Pinball for Windows
This quote is mine, and is related to a game we were working on for Microsoft before we pivoted to pinball. There was a bug - probably mine - where the game displayed the previous state for an object, but the object had changed state, so the resulting behavior was confusing. 'she' and 'glue bottle' were referring to imagery used for the placeholder prototype artwork. I was trying to explain what was going on, and it made sense, but only in that incredibly constrained context. Outside of that context it's nonsense, but that's what makes it memorable and humorous to us.
mike_san··on SpaceCadetPinball – Decompilation of 3D Pinball for Windows
These were just a fun little Easter egg that made us smile. Typing the right code displayed memorable quotes collected from various folks at Cinematronics in the hectic time we were developing Space Cadet. Maybe I can find some time to check with the folks that they are ok with it, I can put together a commit that comments who said them. I don't recall who said all of them, but I'm sure David and Kevin can fill in my gaps. There was a more deeply hidden Easter egg that shows the credits as well. Code to trigger that is not in this repo, though.
mike_san··on SpaceCadetPinball – Decompilation of 3D Pinball for Windows
Yep, this is the reason. Danny's initial code used Delphi with this convention. I'm not actually sure why that convention is used there, though. I remember asking Danny why, and I think his answer was just that was the Delphi convention. But it's been a while, so perhaps I have forgotten the details of his answer. I later had to migrate to C++ to integrate with the Windows build. And I retained the naming convention, mostly because it was quicker than changing it and I didn't have a lot of time. But I was always uncomfortable with the T prefix on the ramp class.
mike_san··on SpaceCadetPinball – Decompilation of 3D Pinball for Windows
I'm impressed as well! It's exciting to see folks so enthusiastic about the game.

I took a deeper look at the github project. It's been a long time since I worked on the Space Cadet code, but the decompiled github code is pretty familiar. It's formatted differently of course, but I think it's actually better than the original. And, nice! Check it out David and Kevin: k4zmu2a got the quotes in! https://github.com/k4zmu2a/SpaceCadetPinball/blob/master/Spa...

Now I'll never live down how long I spent working on the flippers.

Bonus points for anyone who knows why the classes in the source are prefixed with a 'T'!

-Mike Sandige (Lead programmer on Space Cadet)