Hacker News new | past | comments | ask | show | jobs | submit login
"Another World" source code review (2011) (fabiensanglard.net)
146 points by theunamedguy on May 15, 2016 | hide | past | favorite | 31 comments



Played at the time on an Amiga 500 without knowing anything about it beforehand, it blew my mind about what it was possible to accomplish with a videogame, from an artistic and mechanical standpoint.

The story is told without a line of text, and yet you can easily piece together what's going on; there is a single weapon, but combat is innovative and cinematic; some puzzles are ingenious and based exclusively on player's observation skills and execution.

The fact that it was developed by a single person (at the time, no Unity or Unreal Engine or ubiquitous Internet, knowledge about game programming was HARD to come by), makes it a unique feat.

For those interested, another incredibly interesting and related reading is Jordan Mechner's recount of the making of Prince of Persia :

http://www.jordanmechner.com/backstage/journals/


By the way, I did manage to port this to run on Rockbox (for MP3 players) a while back:

http://www.rockbox.org/wiki/PluginXWorld

Demo here: https://www.youtube.com/watch?v=np_97afob4g


This couldn't run on my iPod Mini 1st Edition could it...


I have recently started playing modern games (a friend does not use his PS4 so I borrowed it (forever probably)) while playing around with techniques from old games. The feeling of making worlds in code (vectors, raycasters etc) is really great for me; the idea that most of these new games require modelling instead of programming with tools I find very awkward to use puts me off trying to make something 'more modern looking'. Especially because I already get a kick out walking in my own raycast world even though that's 20+ year old tech.

For prototyping games I feel the old tech still works fine and I certainly enjoy writing it more so far. Maybe if there was a more 'abstract' way/tool to tweak 'off the shelf' meshes into what you need... I mean; a tool like, I think, Fallout where you can just change facial and body features but then doing that with trucks, houses, weapons etc and trying out textures on them would be enough for me to make cool games which look modern. I have a kind of adversity against 3d tools because I really get frustrated when using them; even after following a lot of blender/3ds/unity tutorials I couldn't even make trivial things. Do tools like that exist?


I used to get frustrated with how shitty I was at modeling humans etc. compared to more geometric things like guns. I realized it was because I was bad at drawing (with a pen and paper); think about how many hours people spend learning to draw, and then add another dimension to that.

"Modern" graphics are the equivalent of CGI-filled Hollywood blockbusters: incredibly expensive in both time and money and, most of the time, superfluous. As a single person or small team, you'll probably want to do something more personal and stylish.

Even DOOM or Papers Please-level graphics are achievable by a single person in the timeframe of about a year or less, if you have a good idea of what you want.

Your idea for an easy tool to manipulate off-the-shelf meshes is a good one. Lots of successful games have used stock models lately, Goat Simulator comes to mind.


I am not too bad (I think and my grandma agrees :) at pixel graphics, but a 3d tool like that could do 2d and 3d graphics and pixel graphics as well.


This should probably have a (2011) in the headline. Still a nice code review though.


There's an engine that was recreated to run Another World: rawgl (open source): http://cyxdown.free.fr/rawgl/


The game's developer's postmortem is great too.

http://www.gdcvault.com/play/1014630/Classic-Game-Postmortem...


This game was hard. So hard. I dont play games much anymore but I suspect that modern games don't punish the players the way another world does.

Wonderful title.


> This game was hard. So hard

I don't think it was that hard compared to other games of the time. I could finish it in a week, and you could die as many times as you wanted which made it much easier to complete.

Compare that with adventure games from the time which were virtually impossible to complete without walkthroughs.


Whats nuts is that most of those adventure games take about an hour to get through if you know exactly what to do. Sometimes the puzzles were clever, but a lot of the time they were stock "get (literally every word in the dictionary)" and "use (literally every word in the dictionary). I honestly think that is what killed the genre, along with the FPS genre assuming the mantle of pushing cutting-edge technology around that everyone upgraded their PCs for around the mid-90s.


Most modern games don't punish players much - however that's created a niche for games that do - recent examples include Flappy Bird and the Dark Souls series.


> This game was hard. So hard. I dont play games much anymore but I suspect that modern games don't punish the players the way another world does.

There are also modern games that are also really hard. For example "Super Meat Boy" is said to be really hard (in terms of platforming skills): http://supermeatboy.com/

Or if you prefer something that is really hard, but on your brain, I recommend the puzzle game "Stephen's Sausage Roll" that came out about one month ago: http://www.stephenssausageroll.com/


Most modern games focus on accessibility, to a fault.

To the point where a game with a bit of a learning curve, like hyper light drifter, is considered exceptional because of it.


Very much so, but only once. Usually every screen has a well defined way to kill you - once you've figured that out, the game maybe takes half an hour to beat start to finish.

That first time through is killer. I have no shame in admitting that one of the first things I looked up when I got internet access as a kid were hints on it...


Things were stiff at the time. I remember booting up a Game Gear Sonic 1 in the 2Ks and finding myself stuck at Boss #1. The angry shame.


How many double A batteries did you need?


AC adapter at hand.


I've seen this before but have always wondered how they made the bytecode part of the game. Did they have an editor or just plot things out on paper and then test in the virtual machine?


I found details about the editor that Eric Chahi designed to make the game here: https://youtu.be/2PLLDpzwwUI?t=615


I don't know about "Another World", but at least LucasArts had a compiler (written with Yacc and Lex) for their adventure games on SCUMM engine.


What language did they write in? What kind of features does the language have? I'm curious how you would design such a language.


Some internal LucasArts documents have recently been put online by Aric Wilmunder.

Here's the official manual for SCUMM: http://wilmunder.com/Arics_World/Games_files/SCUMM%20Tutoria...

And the official tutorial: http://wilmunder.com/Arics_World/Games_files/SCUMM%20Tutoria...

There are several post-mortems about Maniac Mansion that go a bit into the creation of SCUMM: * https://www.youtube.com/watch?v=wNpjGvJwyL8 * http://www.gdcvault.com/play/1014732/Classic-Game-Postmortem...


Great article. And what a great game! I bought it recently on steam and tried it. I must have had significantly more time to play games in my youth because I just could not make it terribly far (just a bit beyond the part where you find the chamber to re-energize the pistol). Still, it was a great game.

I never knew it used a VM. Sounds remarkably uncommon for games at the time.


It wasn't that uncommon - most of popular adventure games (and probably others too, but I just happen to know about this genre) worked as VMs or interpreters (SCUMM, AGI, SCI). Helped a lot with portability, which was desirable at that time when games were being released on various platforms like IBM PC, Apple, Amiga, Atari, Commodore 64, NES...

And thanks to that we have ScummVM now.


Infocom's Z-Machine used for text adventures is another good example.


Even lots of BASICs, like Applesoft, were technically VMs with bytecode and even garbage collection. Not a retargetable VM, mind you.


I don't know about Apple's, but Microsofts BASIC was stored tokenized. I'd argue calling that "bytecode" would be stretching things a bit in that there was a direct 1-1 mapping between what was stored and the "raw" source format, because what was shown when you type "LIST" on e.g. the C64 was an expansion of the tokenized source.

Personally at least I'd expect "bytecode" to usually refer to a more complicated and usually "lossy" remapping of instructions (e.g. at the very least throwing away comments and trimming identifiers (Microsoft BASIC only looked at the first few letters of an identifier to identify a variable, but stored the rest as part of the source)).


I know that the conversation system in the Ultima Underworld games used bytecode in a stack-based VM. I've read that the original code was in Forth (or something similar) before being compiled into game-compatible bytecode.


Developing your own vector animation editor just because...




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: