I know what is AGI, I read the queues Adventures, Sierra, should be obvious where this lead. But my mind went to "oh, thanks to LLM coding agents, they massively ported every Sierra Adventure to C64".
Some of them weren't wildly worse than the era. I think many old games substituted punishing difficulty for depth, so that they'd have more staying power. That was true of some of the early NES games as well.
Only with some serious downgrading of the assets. I remember playing SCI games on an 8MHz XT class PC and everything ran dog slow. Some SCI games had optional animations that didn't play on a slow machine.
That's impressive work. It's fun to think how today's CPU rounding errors can run hit adventure games. Your smartwatch uses more cycles to render the time.
AGI is here and its first task is obviously completing the C64’s game library.
Not really. AGI is a game interpreter, like LucasArts’ SCUMM or Infocom’s z machine. Games are shipped as portable code and a machine specific AGI interpreter runs them. Looks like they’re preprocessing the graphics first, though. https://en.wikipedia.org/wiki/Adventure_Game_Interpreter
Sierra released most of their AGI games on the Apple IIc/IIe. Given C64 is a roughly equivalently specced machine, there is no reason in principle why they couldn't have ported AGI to C64 as well – it just, for whatever reason, never happened. (One AGI game, "Donald Duck's Playground", was originally developed as a native C64 game, then AGI was used to port it to other platforms.)
Also, given different AGI platforms had different graphics capabilities, I expect even the original Sierra AGI games had somewhat different graphics assets on different platforms – so whatever preprocessing of graphics they are doing to make them C64-friendly, Sierra quite possibly would have done something like that anyway had they made a C64 port back in the day.
If I recall correctly, the art is done with a form of early vector drawing so that they can use one set of assets on all platforms. They're designed to 16 colors but get downsampled for 4-color CGA mode or monochrome mode.
I've always imagined it to be first and foremost about storage savings. Although, come to think of it, an RLE-encoded bitmap might be comparable since we're talking about images with large areas of so few colors. Might be interesting to do an empirical test.
But, yes, it's all a bunch of vector draw/fill commands. The first few AGI games showed that process happening; and, as a little kid having one of their first encounters with a computer, I found it fascinating to watch. Later games drew it in an offscreen buffer and showed it all at once, which looked more "professional" but took away some magic.
EDIT: I had an agent make a guess and it came up with reasonable looking numbers that said an RLE bitmap would be a small handful of times larger. But it also interestingly pointed out that the vector commands encoded priority (i.e., what you can walk behind/through) whereas that'd have to be a second data set for a bitmap approach.
The vector art also included some complex dithering patterns that balloon RLE-encoded bitmaps. Dithered drawing is actually one of the worst cases for simple, pure RLE. For dithering compatible bitmap encoding you would want other more complex compression schemes than simple RLE. Some of the palette-based compression techniques of "modern" GIF were reused from such early predecessors, even though there's a belief today that RLE was most of what games at the time used. (It's useful to point out that early AOL was also heavily dithered, especially in monochrome versions. AOL also spanned the gap between dithered, heavily palette-based graphics to "early modern graphics".)
Yes, this is correct. I have a distinct memory of playing Space Quest (forget if I or II) on a CGA monitor and then seeing it on my friend's EGA monitor and being blown away.
> Given C64 is a roughly equivalently specced machine, there is no reason in principle why they couldn't have ported AGI to C64 as well – it just, for whatever reason, never happened.
I think the first instance of games being separated from the "engine" so that you could make the game and it would run on all platforms that the engine ran out without porting was Infocom's Z-machine. http://maher.filfre.net/if-book/if-4.htm
There was an interesting article which I read a long time. It's linked to from the post above called "How to Fit a Large Program into a Small Machine" published in 1980.
AGI, SCI, Scumm etc. were all larger and more capable versions of this.
Z-Machine is also useful to point out because it's one of the clearest lines to draw from it to the modern JVM and .NET CLR. Whereas AGI/SCI/SCUMM all have very game specific virtual machines, Infocom's was Lisp influenced and even built it with business/enterprise apps in mind, though Infocom's one attempt at doing exactly that with their database app Cornerstone was a market flop. (It's heavily enhanced fork of the Z-Machine was also only released for a fraction of the machines the game Z-Machine supported.)
I still think it's an interesting question if Infocom had not tried to keep the Z-Machine proprietary "secret sauce" if it would have been a larger platform of general computing for much longer and broader than Infocom's own lifespan and primarily games focus. If Infocom had taken a Sun-like stance on the Z-Machine being a JVM ahead of its time and building a broader compatibility ecosystem "write once, run everywhere" might have been an earlier part of computing.
Impressive fitting into the machine. I wonder if SCI would be possible?
That's impressive work. It's fun to think how today's CPU rounding errors can run hit adventure games. Your smartwatch uses more cycles to render the time.
Not really. AGI is a game interpreter, like LucasArts’ SCUMM or Infocom’s z machine. Games are shipped as portable code and a machine specific AGI interpreter runs them. Looks like they’re preprocessing the graphics first, though. https://en.wikipedia.org/wiki/Adventure_Game_Interpreter
Also, given different AGI platforms had different graphics capabilities, I expect even the original Sierra AGI games had somewhat different graphics assets on different platforms – so whatever preprocessing of graphics they are doing to make them C64-friendly, Sierra quite possibly would have done something like that anyway had they made a C64 port back in the day.
But, yes, it's all a bunch of vector draw/fill commands. The first few AGI games showed that process happening; and, as a little kid having one of their first encounters with a computer, I found it fascinating to watch. Later games drew it in an offscreen buffer and showed it all at once, which looked more "professional" but took away some magic.
Here's a video showing the drawing process: https://www.youtube.com/watch?v=v5DSFvWrNWA. Magic!
EDIT: I had an agent make a guess and it came up with reasonable looking numbers that said an RLE bitmap would be a small handful of times larger. But it also interestingly pointed out that the vector commands encoded priority (i.e., what you can walk behind/through) whereas that'd have to be a second data set for a bitmap approach.
Agreed about the issues not being (completely) technical. <https://np.reddit.com/r/c64/comments/1r8hgwk/kings_quest_i/o...>
There was an interesting article which I read a long time. It's linked to from the post above called "How to Fit a Large Program into a Small Machine" published in 1980.
AGI, SCI, Scumm etc. were all larger and more capable versions of this.
I still think it's an interesting question if Infocom had not tried to keep the Z-Machine proprietary "secret sauce" if it would have been a larger platform of general computing for much longer and broader than Infocom's own lifespan and primarily games focus. If Infocom had taken a Sun-like stance on the Z-Machine being a JVM ahead of its time and building a broader compatibility ecosystem "write once, run everywhere" might have been an earlier part of computing.
https://github.com/johanberntsson/PunyInform
Tristam Island as an example:
https://github.com/hlabrand/tristam-island
https://github.com/johanberntsson/ozmoo
https://ozmoo.online/