Another World JS

Another World (or, Out of This World) is a wonderful game developed by Eric Chahi and released in 1991.

I have some kind of obsession with this game. During the years, I ported various versions of the game (3DO, PC, hires) to a handful of platforms: PSP, PS2, GBA and PC. Here is my new pure Javascript implementation. No plugins, no ActiveX, no Flash. Just need a modern browser (Chrome, Safari, Firefox, Opera) and you're good to go.

Keys: left, right, up, down, "A" to shoot/run
0 (0 fps)


Q. Is the game completable?
A. Most probably not :)

Q. I see graphic glitches!
A. Yes! And there are plenty of them!
Let me explain technically some of the stuff you're experiencing: when the cage falls over the guard, a blue-ish rectangle is drawn on top of his head. There are 3 rendering modes of polygons: opaque, alpha, and copy. Alpha and copy are not supported. This is also why the elevator is as crappy as it is. When you pick up your gun, you will also notice a quick flash of random colors. It happens because the game uses 4bit palettes, while this version uses 24bit RGB and no lookups. Fixing this problem means hell :)

Q. Why port to Javascript?
A. I just wanted to try out the <canvas> tag, see what I can do with it. What a better test-case than port such an epic game!

Q. What's missing in this version?
A. Only one level is supported, and that one is broken as well. There are graphical glitches, movement bugs, and no music or sound effects. As said before, it's only for messing with <canvas>

Q. What is the difference between the different ports?
A. There a 4 major ports: Classic computers (DOS, Amiga, Atari ST, Apple2gs), Classic consoles (Genesis, SNES), 3DO (which had incredible background graphics and CD audio music, and Hi Res (the latest version, you can buy it
here). There is also an official mobile version, and my GBA, PSP and PS2 version which were never released.

Q. Will you ever finish this port?
A. Probably not. I don't see a point beyond the proof of concept. There is an excellent (official) re-release of the game available for Windows (screenshot) and mobile. Both can be found here.

Q. Graphics are too smooth, can't I do anything about it?
A. At the moment no. For sake of speed of implementation, I'm using <canvas>'s methods for drawing polygons, which are anti-aliased. Furthermore, the vectors don't have enough precision for 640x400, they look terrific on 320x200 (original screen size), but when scaled up, you will notice some missing pixels. One last thing, I did try to do manual scaleup (all browsers do yucky bilinear filtering), but that reduced frame rate by 80% :) Firefox 3.6 has a CSS attribute to fix this, but it will take some years until we all have that feature.

Q. What about sound and music, are these possible?
A. Technically, these can be easily supported with HTML5's <audio> tag.

Q. What about Heart of The Alien?
A. Glad you asked! I ported HOTA in its entirety from Sega CD to all modern computers (even Amiga and GP32 are supported!). You can find more at the Heart of The Alien Redux homepage.

Q. Any additional credits?
A. Gregory Montoir (cyx) of ScummVM fame, for sharing a lot of information about the PC version, and his work RAW.

Q. Did you ever meet Eric Chahi?
A. Yes I have! After porting the new Another World HI RES to PSP, I boarded a plane and met up with Eric and a friend (hey Vincent!) for sushi. I was too embarrased to ask for a photo :(

Q. You're awesome, did you know that?
A. Super! Drop me an email! :)

Another World JS made by Gil Megidish. I can be contacted at Good Evening, Professor!
English | Russian
Another World JS