points by davidst 4 years ago

I am one of the original authors of Space Cadet pinball (along with Mike Sandige, lead programmer, and Kevin Gliner, producer and designer.) It is surprising and gratifying to see interest is still alive for our old game. And I can't help but be impressed by the ingenuity shown by both the decompiling effort and the playable web-based game.

mike_san 4 years ago

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)

  • mysterydip 4 years ago

    Thanks to both of you. It took me a while to realize the depth built in. I tried making a pinball game many moons ago but couldn't get the ball to "feel" right (flippers as well).

    How was that process? Did you go play physical tables, go for a realistic approach, or tweak magic numbers until it "felt right"?

    • kgliner 4 years ago

      We played every table we could get our hands on. Also rented tables weekly to be brought into the office once we moved to Austin. I tried to dig as deeply into the history of pinball too, to understand why tables had evolved the way they had.

      Mike (Sandige) built a scripting system that allowed me to tweak the physics, materials, etc. of each component. But our constant exposure to real tables helped us form a "feels right" baseline to target. I also applied whatever I'd learned at that point about game design fundamentals (it was early in my career).

      After we finished 3D Pinball and started on Full Tilt, I got put in touch with a seasoned designer of real pinball tables who had worked on some hits from the 70s. He took me to task for a bunch of mistakes I made in 3D Pinball, and some of those corrections found their way into the Full Tilt version of Space Cadet (and more so in the other tables in Full Tilt).

         Kevin Gliner (designer and producer for 3D Pinball, etc)
  • secondcoming 4 years ago

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

    Was it written in, or ported from, Delphi?

    • alternatetwo 4 years ago

      Has to be ported, since Delphi doesn't generate PDB7's.

      Or at least written by someone familiar/used to Delphi, since Age of Empires utility classes are also prefixed with T, but the game was obviously written in Visual Studio - but some dev tools were written in Delphi, so somebody seems to have taken the naming scheme from there in that case.

      • pjmlp 4 years ago

        Borland C++ frameworks used the same coding conventions as Turbo Pascal/Delphi.

        They still use them.

    • mike_san 4 years ago

      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.

  • nopakos 4 years ago

    From wikipedia: "...[Danny Thorpe] in 1994 while at Borland, he contracted with Santa Cruz startup Cinematronics (David Stafford and Mike Sandige) to build a component model and collision physics engine for a software pinball game. Cinematronics licensed an early version of the pinball engine to Microsoft" Maybe Borland and Delphi has something to do with the 'T' prefixes. Source: https://en.wikipedia.org/wiki/Danny_Thorpe

    • pjmlp 4 years ago

      Borland's C++ frameworks use the same convention, to this day.

    • mike_san 4 years ago

      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.

    • justshowpost 4 years ago

      Absolutely not. "T" prefix stands for "type" and has its roots in case-insensitive Pascal

        /* eg common C style notation involving type identifier and var identifier is illegal in Pascal */
        Rect rect;
        (* so Pascal requires some distinct identifiers eg *)
        rect: TRect;
      

      the other common prefix is "P" which stands for pointer type

  • veddox 4 years ago

    Great to see you commenting here! :D

    Were those quotes some kind of cheat system?

    • mike_san 4 years ago

      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.

  • pjmlp 4 years ago

    Borland C++ OWL and Turbo Vision. :)

  • mzs 4 years ago

    "She may already be a glue bottle"

    What?

    • mike_san 4 years ago

      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.

      • justsid 4 years ago

        Definitely thought that was about a childhood horse

ur-whale 4 years ago

I can't help but wonder for old closed-source utilities and games like this: whatever happened to the original source code?

Is it still around, stashed in a vault a MSFT, or is it lost for ever?

Do you know?

And what would it take to convince a large corp. like MSFT to actually release the original under some open source license ... not like the thing has much value by now other than historical.

  • davidst 4 years ago

    The rights belong to Electronic Arts today. They acquired Maxis who had acquired us (Cinematronics.) Microsoft may still have rights to continue publishing a version with the Windows operating system.

    Microsoft, if you're reading this, we would be glad to provide assistance in getting 3D Pinball running again on the latest Windows OS.

    • leeter 4 years ago

      Given that the reason it was removed was IA-64 which isn't a thing anymore... this should be plausible. But also given where MS has gone with games as late I'd be surprised if they do. EA should just release all of Full Tilt! Pinball on steam or GoG if they haven't already.

      • JonathonW 4 years ago

        It was removed for Vista, because it couldn't transition to AMD64. This was after Microsoft had essentially completely ditched Itanium.

        (I'd love to see a GOG or Steam or even Origin release of Full Tilt Pinball, though. The Full Tilt version of Space Cadet is better-- higher-resolution graphics plus some gameplay tweaks.)

        [edit] Digging a little deeper, that might not be entirely true. The first consumer version of Windows it didn't appear in was Vista, but it sounds like the decision to drop Pinball was made during the XP era (even though it shipped with x86 Windows XP). So issues with the IA64 port (or with another architecture) might've been the reason it was dropped, then that decision was not revisited for Vista even if Pinball might've worked under AMD64 Windows.

        • leeter 4 years ago

          Actually 3d Pinball is available in the AMD64 Window XP 64 bit versions. It was not available (sort of... it's there but not actually installed from media) on IA-64 versions. There was a youtuber that dug into it (probably at the cost of far too much of their own sanity). So there is no "might have" it works (albeit with some rendering issues).

californical 4 years ago

Wow, this game was a staple in my childhood! Just wanted to let you know that your work brought me lots of happiness as a kid, so thank you :)

Out of curiosity, have you ever written about the experience? Technical challenges, the development culture, etc?

  • davidst 4 years ago

    Thanks!

    There were a couple of interviews with gaming magazines years ago. They would be hard to find today and didn't cover the topics you mentioned. Mike, Kevin, and I, really need to get together to tell the story some day.

    • coldacid 4 years ago

      Please do! There are loads of us who would love to hear it all direct from you guys.

      • JanNash 4 years ago

        Yes, that would be amazing! I absolutely adored playing this game on our first family PC back in the day.

  • kgliner 4 years ago

    I've been meaning to write up a history, but it's one of those things that's been on my to do list for years...Maybe someday, soon.

      Kevin
BiteCode_dev 4 years ago

Well, in this day and age of bazooka DMCA take down, it's refreshing to see a game author happy about his game being gutted, and put online to play.

  • q-big 4 years ago

    > it's refreshing to see a game author happy about his game being gutted, and put online to play.

    The game author is typically not the copyright holder.

Cthulhu_ 4 years ago

I played it before it was bundled with Windows, at the time I didn't think that much of it (I was more into Epic Pinball, spent so much time on the shareware version with the android themed board <_<), but it was a game we'd fire up Windows for. We probably got it off one of those shareware CD's, but I don't recall. Might have been off a diskette?

_fat_santa 4 years ago

Thank you sir, you brought many many hours of enjoyment to my childhood. I remember being excited to go to my Aunt's house because she had a computer with Windows XP (my family only had Windows 2000) and I could play your game.

And only on hacker news will I be replying to one of the authors.

deknos 4 years ago

if the game would be available as open source and/or run on linux, that would be super... this was my first pc game when i was a little child

papito 4 years ago

We played the hell out of it on our Windows 2000 machines during particularly boring IT labs in college, in early 2000s.

The physics just seemed so spot on. I installed Win2K on a VM recently, just for this.

Start Menu, type in "pinball". Ah....

  • _fat_santa 4 years ago

    Was it available on Windows 2000? I know it was a default on Windows XP. I was way too young back then to remember

    • papito 4 years ago

      Definitely. It was available (apparently) even with a Win95 upgrade pack, so it's very old.

      I was not aware of it, however. I am not sure it was as easy to launch before, by just typing in "pinball" in the Start menu.

marivilla 4 years ago

I played this game for hours a day, for an entire summer.

And it was the best summer of my life.

I remember getting up early, making cereal, and then playing this.

You created one of my favorite childhood memories, thank you so much.

nspattak 4 years ago

it was the most joyful game that shipped with windows and it was also fun! I would like to play it again :)

freedomben 4 years ago

This game blew my mind! How did you get the physics to be so realistic? At the time I tried a number of different pinball implementations and unrealistic physics was a big problem.

  • mike_san 4 years ago

    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.

  • kgliner 4 years ago

    I noted this in another reply, but Mike had written a scripting model that let me adjust the physics and materials for each component separately. That allowed me to iterate rapidly when tuning the feel of the game. A solid physics engine is a pre-requisite, but what you do with it from there is also critical (and the goal was to replicate how real world tables felt, not how they actually behaved).

SubiculumCode 4 years ago

Well, it is simply one of the best pinball games I've ever played on a computer. Interesting scoring system. Fair. Not gimmicky. Pure beauty.

bloqs 4 years ago

Great to see you here David. Thanks for all the work over the years.

baq 4 years ago

'twas a great little game. good job!