12 ms·
This is also interesting game from technical side: vector graphics, runtime is virtual machine interpreting custom bytecode. There is also runtime for modern p
by garaetjjte 8y ago
This is also interesting game from technical side: vector graphics, runtime is virtual machine interpreting custom bytecode.
There is also runtime for modern platforms using SDL, reverse engineered from DOS binary: http://fabiensanglard.net/anotherWorld_code_review/ http://fabiensanglard.net/anotherWorld_code_review/
- digi_owl 8y agoThe VM trick is old hat. Even Infocom used it to allow their games to be playable across a range of micros. Oh and they developed their games on a PDP.
- jacobush 8y agoStill, that it was done by one single person, such an immense game, before the Internet. I could pull it off now, (hi google), then, not in a million years. Also Infocom games were text, much simpler things.
- digi_owl 8y agoThere is a "surprising" number of one-man shows in the early gaming world. Also, even though the net didn't exist books did. Not was Another World his first game. And do not belittle the Infocom games, they had perhaps the best parser of any text adventure. And they were able to cram those games into 8-bit micros.
- raldi 8y agoSpeaking as someone who's spent a lot of time reading the Zork source code and the Z-machine spec that allowed it to be ported to an huge variety of ancient platforms (http://gunkies.org/wiki/Zork http://gunkies.org/wiki/Zork), I have to say, your dismissive attitude is wildly inaccurate. Both the game and its VM platform were incredibly intricate works of genius.
- jacobush 8y agoDid not mean to dismiss or belittle Zork or its machine.
- oblong 8y agoGame engine != VM.
- exikyut 8y agoThank you SO much for this link. I was going to come in here and mope about how hard this is to play. (As in "get running", not even mentioning in-game difficulty! :P) First I tried a random Amiga ROM I found, which seemed like it was trying to cooperate but couldn't (the game kept freezing after the intro but before the interactivity began). Next I tried the DOS version, which fared better but was still a little glitchy in terms of latency (old computer). Both versions had the silly code wheel thingy as well. Completely respect it, but it's VERY annoying to deal with. ("another world code wheel" has a very very nice result from oldgames.sk.) This VM emulator is awesome. It Just Works™ on Slackware, only uses 12-16% CPU on a decade-old machine (very nice!), happily picked up the resources from the DOS copy I'd found, and the transparent load/save system works very nicely to a) make the code wheel (which is built into the game bytecode, not the runtime/EXE) less of a nuisance, and b) deal with "30 deaths per minute" syndrome :) (I've been meaning to find the full version of this for years.) And it's also really impressive that this was reverse engineered like this... heh. Btw, the original bytecode system was all Forth, wasn't it?
- bananaboy 8y agoAnother World was re-released on Steam by Eric Chahi a few years ago for Windows, Mac, and Linux: https://store.steampowered.com/app/233550/Another_World__20th_Anniversary_Edition/ https://store.steampowered.com/app/233550/Another_World__20t...
- exikyut 8y agoI'm very much looking forward to poking both the 20th Anniversary and 15th Anniversary versions on a newer machine at some point. (On a related note... I typed the line above during heavy swapping/a frozen browser, and this is the ~2nd time I've not made any mistakes :D)
- fucksama 8y agoReversed from the DOS binary is an amazing feat. SDL makes this type of thing so easy and could be used for so many things in this regard.
- bluedino 8y agoHow did they get this engine working on sprite base systems like the SNES?
- klodolph 8y agoYou can put a coprocessor inside the cartridge. I believe that Another World used the Super FX coprocessor. https://en.wikipedia.org/wiki/Super_FX https://en.wikipedia.org/wiki/Super_FX
- jccalhoun 8y agoSince Another World wasn't listed on that wikipedia page, I searched and found this interview with Rebecca Heineman who ported the game to SNES: http://www.grokcode.com/106/interview-rebecca-heineman/ http://www.grokcode.com/106/interview-rebecca-heineman/ "Since Interplay wouldn’t pay for a SuperFX chip, I found a way to do it with static RAM on the cart and DMA which got me a great frame rate. Interplay wouldn’t pay for the static RAM either, so I ended up using Fast ROM and a MVN instruction. Interplay wouldn’t pay for a 3.6 Mhz ROM either. So, frustrated, I shoved my block move code into the DMA registers and use it as RAM running at 3.6 Mhz. It worked. I got fast block moves on slow cartridges and made a game using polygons working on a 65816 with pure software rendering."
- klodolph 8y agoHm, I found that interview but the link to it said it was a SuperFX chip so I didn’t watch it. That teaches me.
- 0xcde4c3db 8y agoThe style of graphics is superficially similar to early Super FX games, but the cartridge is just a basic ROM+CIC board with an 8-megabit ROM. Based on the fact that it has considerable "load time", I think it basically chopped up the game into working sets and pre-rendered any missing frames when transitioning between them, possibly with some extra streaming code for cutscenes.