Live data from Hacker News

Reversed engineered game Starflight (1986)

github.com

41–50 of 54 posts

Re: Reversed engineered game Starflight (1986)

#41
post #24

Early in the 2000's one of the original authors of Sfarflight posted a massive dump of information online: design documents and source code. That is the "Technical Articles Saved from Oblivion" link in this repository. Sadly no one seems to have managed to save a full copy! This is one I kick myself about: I browsed this back when it was up but didnt think to download. These days I make a point to request Internet Ar…

About halfway through my reverse-engineering process, I came across those documents and realized that roughly 50% were missing. I searched pretty much the entire web to see if anyone had stored these files elsewhere, but so far I haven’t had any luck.

Re: Reversed engineered game Starflight (1986)

#42
post #36

Earlier quoted context omitted.

That would be the source code posted to that sonic.net site. It was a mix of raw dumps of FORTH blocks and printouts converted to PDFs. It wasn't the full source code, and there weren't any design documents in there.

You can see on archive.org where it captured directory info for files which were not stored: https://web.archive.org/web/20031218202130/http://www.sonic.... When you navigate those directory archives many of the files are missing. E.g. https://web.archive.org/web/20030529230704/http://www.sonic.... Some design documents ARE there, e.g. "Specification of 3d display for starquest" : https://web.archive.org/web/20030719…

Well....... shit. I'd been in there previously and never noticed that. Disregard.

Re: Reversed engineered game Starflight (1986)

#43
post #17

One of my all-time favourite games. A family member had Starflight on Genesis. I still pull it up in an emulator from time to time. Random edit: It's also how I learned the word obsequious.

lol! Me too! I remember the alien interaction dialog and this word.

Re: Reversed engineered game Starflight (1986)

#44
post #8
post #6

...Forth? Wow. I wonder how much code change was necessary between the various systems. It's hard to imagine a Megadrive Forth compiler, but then again, the game was on several other M68k systems so maybe it wasn't as hard...

It's.. not a compiler (besides I had Forth on my C64). Maybe one can call it a translator to ad-hoc bytecode. I also had USCD Pascal on that C64 which translated to bytecode. This was more JVM-like. So nothing hard about it.

Forth is a compiler but what it "compiles" is not standard. The implementor decides what they need. Forth can compile pointers to native code that are the VM's instructions, called direct threading. Forth can compile pointers to pointers to native code VM instructions, called indirect threading. Forth can compile byte code like OpenFirmware/OpenBoot.

And modern systems compile optimized native code (VFX Forth, SwiftForth) but still remain fully interactive at the console.

Re: Reversed engineered game Starflight (1986)

#45
post #3

I find it curious that the game was written in Forth. Certainly a very unusual choice for a commercial game.

Probably worth mentioning that writing a big project in Forth is more like creating an OOP framework.(if you are disciplined)

The end result of that is one doesn't write the program in "Forth" per se but in the domain specific language you create for the job. This is how Forth gets more productive than pure assembly language if the team documents things well and follows the prescribed system.

Re: Reversed engineered game Starflight (1986)

#46
post #10

Author here. I’m happy to see one of my projects on Hacker News. This has been a fun one. One evening you just try to disassemble it and wonder where the code is. The following months were a truly satisfying experience, reverse-engineering this diamond. There is still a functioning Forth interpreter implemented in the game. If they hadn’t removed all the word names, it would have been possible to debug at any time an…

There is a VM project now using the reversing work as a basis: https://git.information-superhighway.net/SpindleyQ/starfligh...

Microblog: https://gamemaking.social/@SpindleyQ/115058149348319018

Re: Reversed engineered game Starflight (1986)

#47
post #17

One of my all-time favourite games. A family member had Starflight on Genesis. I still pull it up in an emulator from time to time. Random edit: It's also how I learned the word obsequious.

The lore in the manual was entertaining as well; whoever wrote it was clearly having fun. All these years later I still clearly remember a quip from the parody religious prophecy in Appendix C: "And then, within the bowels of Arth¹ shall there once again be movement." Never fails to crack me up.

¹ The name of the planet that the player starts on.

Re: Reversed engineered game Starflight (1986)

#48

> There is no set path, allowing players to switch freely between mining, ship-to-ship combat, and alien diplomacy. The broader plot of the game emerges slowly This reminds me of Star Control 2, aka The Ur-Quan Masters > The game influenced the design of numerous other games for decades after its release. And in SC2 wiki page I see this: > Once Reiche and Ford conceived Star Control 2, they would draw large inspirati…

It goes beyond drawing inspiration. Greg Johnson, designer of Starflight, worked directly on Star Control 2.

Re: Reversed engineered game Starflight (1986)

#49
post #28
post #11

Earlier quoted context omitted.

I loved Starlight but I'm not sure it was procedural world generation. I mean there was a map of stars printed with the game so they weren't changing. There was a small bit of variation in terms of what one found on planets and so on...the key was it felt like an open world because it was big enough and there was nothing stopping you from doing what you liked and when (except resources).

They bragged about it being procedural in interviews. What I was never clear on was the degree of cherry picking they did. There were 800 worlds on something like nine disks, each unique and peppered with minerals and artifacts.

Star Control 2 (which takes many Starflight influences and also hired Greg Johnson) also used a lot of procedural generation. It has around 500 stars and 4000 worlds with minerals and lifeforms. I recall the SC2 lead programmer Fred Ford saying they used a fixed seed, and they went through many seeds until they found one that looked good. I presume Starflight was of the same mindset.

Re: Reversed engineered game Starflight (1986)

#50
post #28

Earlier quoted context omitted.

They bragged about it being procedural in interviews. What I was never clear on was the degree of cherry picking they did. There were 800 worlds on something like nine disks, each unique and peppered with minerals and artifacts.

Star Control 2 (which takes many Starflight influences and also hired Greg Johnson) also used a lot of procedural generation. It has around 500 stars and 4000 worlds with minerals and lifeforms. I recall the SC2 lead programmer Fred Ford saying they used a fixed seed, and they went through many seeds until they found one that looked good. I presume Starflight was of the same mindset.

I wonder if QA was given the job of vetting the seeds.
Post reply on HN