Hacker News new | past | comments | ask | show | jobs | submit login
Donkey Kong source code found, original developer comments (atariage.com)
54 points by nickb on Sept 14, 2008 | hide | past | favorite | 15 comments



"The programmer in question was adamant at the start that using FORTH was superior in terms of speed of delivery, space occupied by the code, and quality. In other words, much better than programming in assembler. He'd deliver DK Jr in record time. Management believed him.

So he got Atari to spring for this $800 FORTH package that came with a thick binder of documentation printed on funny-colored paper (to prevent photocopying) and wouldn't let anyone near his code. Nobody else got a copy of this package. He mucked around in FORTH getting stuff prototyped and "ready to write code" for months. And after like five months he had one or two screens working, and no sound, and the thing sucked. And all the time he was bragging about how FORTH was going to let him whip through the rest of the game like snot through a greased pig (or something like that), but it was already late, it was clear he was at sea and wasn't going to come through."

..

"Later, I heard from a Coin-op veteran something along the lines of, 'Yeah, every couple of years someone discovers this FORTH thing and thinks they can do games in it, and it never works out.'"


FORTH probably has one of the coolest covers in the history of programming books...

http://www.flickr.com/photos/joeljohnson/1396636973


Now the important question is...is that the fault of FORTH, or the fault of the developer? Are the developers novices who cannot handle the POWER of FORTH?!?!


Charles Moore himself said, "…FORTH is an amplifier. A good programmer can do a fantastic job with FORTH; a bad programmer can do a disastrous one."

From my own experiments with it, I can certainly see where he's coming from - badly factored Forth rapidly collapses into an unintelligible mess, but when you work idiomatically with the language, it can be quite expressive. It's pretty low level, but worth considering in a project that would otherwise use assembler. I'd be wary of using it unless several team members were already familiar with it, though.

I haven't done a great deal with Forth day-to-day because it's a pretty bad mismatch for the problem domains I usually work in, but getting into the mindset of it was as enlightening as learning, say, Scheme or ML. Forth has strong incentives for partitioning your code into functions ("words") that are each succinct enough to be trivially testable / verifiable, and then lets you define new words via composition, building up to your problem. It heavily favors the same bottom-up / "build your own DSL" programming style as Lisp. For such a minimalistic language it has several impressive tricks up its sleeve, on par with Lisp's code-is-data. The ease in parsing Forth-like code gives it a lot of potential as an embedded language, e.g. Zed Shaw's "stackish" (http://savingtheinternetwithhate.com/stackish.html).

This heavily-documented i386-assembly code implementing a simple, non-optimizing Forth interpreter is worth a look. (http://www.annexia.org/_file/jonesforth.s.txt) There's something to be said for a language environment you can easily understand all the way down to the bare metal. It's not difficult to write your own interpreter for a Forth-like language (which is kind of the point).


And Forth is fun. It's a loveable language.

Did you know that 'Open Firmware' uses Forth - as a shell and for configuration code, device drivers etc?


Yes, and the FreeBSD bootloader, and no doubt several other things I'm not aware of.


Pedantic mode activate: it's actually the developer of the atari home-console clone of Nintendo's arcade Donkey Kong. I suspect the original developer comments might be in Japanese.

Maybe I'm imagining things, but I just don't like it that US developers are often seeming to get the credit for a Japanese success. Why don't we hear stories about the original coders of Donkey Kong? Miyamoto designed it, but didn't code it, so maybe it's because it's not code romantic (?)

http://en.wikipedia.org/wiki/Donkey_Kong_(video_game)#Development

note HN doesn't linkerize the parentheses in that URL correctly


You can include the parens in a URL by adding %28 and %29 to it for the left and right parens, e.g. http://en.wikipedia.org/wiki/Donkey_Kong_%28video_game%29#De...

I swear, this should be in the FAQ by now.


thanks - I'd change it, but I just saw your reply now, and it's after the edit sunset.


Probably because ( is not a valid character in an URL.


Horribly off-topic, but interesting (at least I think so):

As far as I can tell, "(" is in fact valid. In the URI standard [1], a URI has a `path` which is made up of segments. Each `segment` is a set of pchars delimited by by "/". The `pchar` character class includes the `unreserved` character class which contains the `mark` character class which contains both "(" and ")".

That said, I'd argue that "(" and ")" should never have been allowed because of the tendency for people to mention web sites like this (news.ycombinator.com). I'd also argue that trailing punctuation should be ignored for cases like this news.ycombinator.com.

But oh well, it is too late now. These characters are in URLs and that means they are here to stay.

[1] http://www.ietf.org/rfc/rfc2396.txt


FYI, rfc3986 is the latest for URI syntax (obsoleting rfc2396), but you're still right, and the grandparent comment is wrong: parentheses are legal in URIs.

News.YC also mishandles '<' '>' around URIs, which is the recommended manner for delimiting them. (Consider, for example, <http://www.example.com>.)


in the case of a fully qualified domain name, a trailing period is valid (its implied if you don't include it).

    http://news.ycombinator.com.
is just as valid as

    http://news.ycombinator.com


From MAIN.PRN:

  ; Prizes
  ; These are shoved into players; left-bottom justified in 8x8
  ; There's some confusion as to what to call the damn things....so I'm
  ; gonna do what I like, here...
  ...
  ; The "Birthday Cake" [I think...]
  ...
  ; The Purse ["...omigosh...that's not a /Birthday Cake/???"]


Interesting discussion on the "making of" & "technical details" ~ http://news.ycombinator.com/item?id=303619




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

Search: