
Donkey Kong source code found, original developer comments - nickb
http://www.atariage.com/forums/index.php?showtopic=130904
======
davi
"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.'"

~~~
omouse
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?!?!

~~~
silentbicycle
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).

~~~
eru
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?

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

------
13ren
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

~~~
silentbicycle
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...](http://en.wikipedia.org/wiki/Donkey_Kong_%28video_game%29#Development)

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

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

------
aaroniba
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/???"]

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

