
Making a game on the C64 - leafo
http://www.ludumdare.com/compo/2013/04/29/ponkmortem/
======
greggman
> Writing code on C64 is not like writing in a text editor or even like BASIC
> line numbers. You type your code directly into RAM and instructions are
> being assembled as you type

Um, no. Maybe you do stuff like that. Most C64 devs used assemblers. We stored
source on disk and ran assemblers on them.

For the first C64 game I wrote [1] I actually used the Atari Macro assembler
since it was pretty well made and supported relatively large programs. Then
I'd transfer the result over to the C64 by the joystick ports with some custom
cables and software I wrote.

On the next big project we had dev environment that ran inside Super Text [2]
on the Apple II and stored source on a networked Corvus HD. Pressing some
combination of keys would start a compile directly from inside the editor. I
don't remember how we transfer it. (getting old)

[1] <http://www.mobygames.com/game/c64/centipede_>

[2] <http://en.wikipedia.org/wiki/Muse_Software>

~~~
Joeboy
>> You type your code directly into RAM and instructions are being assembled
as you type

> Most C64 devs used assemblers. We stored source on disk and ran assemblers
> on them.

From my perspective, devs that were able to do that were extremely lucky. I
gave up trying to program my (contemporaneous) ZX Spectrum in raw machine code
with a tape deck for storage after one too many catastrophic failures, and I
didn't take up programming again until ten years later when a friend donated
me an old PC compatible.

Edit: And yes, I'm still kind of bitter.

~~~
winter_blue
That's kind-of sad to hear. I picked up programming when I was 8 on QBASIC,
and absolutely loved it. 8-year old me would stay late nights till 3 a.m.
programming.

I have to admit, Microsoft got a lot of stuff right with the QBasic that was
bundled with MS-DOS. Hitting F1 would bring up an amazing help system that
documented various features of the language with code snippets. I remember
discovering the "DRAW" command, and how much fun I had with it. I came across
it on the documentation; and the code snippet is what made it really easy to
learn how to use it. But the doc was well-written too -- sufficiently simple
for an 8-year-old whose native language is not English, to understand.

Now imagine that I had some *nix -- vi/emaccs alone would put me off, erm, any
text editing, not to mention programming. Also, just the way Unix is, where
things often break silently, and the system assumes you know what you're doing
-- just isn't suited to an 8-year old.

I'm kind-of disappointed at the state of programming right now. Many of the
popular languages of today -- JS, Java, Obj-C, C++, etc. are no where as
simple as the BASIC dialects are. Python though, is actually a good candidate.
With a nice Turtle-like library, it would be a perfect beginner's intro
language to programming!

~~~
eru
You should try DrRacket. The book "How to design programs" uses it to get you
straight into simple graphics. Both the book and DrRacket are available for
free as in beer and speech online.

------
jasonkester
I grew up writing my own games on the C64, and one of the fun things that
always got me was how close the video RAM was to the memory containing your
program itself.

So if you had a game where you moved a little character around the screen with
the joystick, and you neglected to handle the case where he went off the
screen to the top or bottom, you could crash him right into your source code
(which was being actively interpreted).

It'd dump you out abruptly, you'd list your program and find that a section
had been monched and now contained a bunch of random special characters. Ouch.

That hardly ever happens to me anymore, writing front-end code for the
browser. But still I make a point of checking my bounds, just in case!

------
zvrba
In this day and age, you use PCs to develop games for C64. You're able to do
stuff you couldn't before because now you have the capacity to precompute an
compress a bunch of tables and such. And you use modern developer tools
(assemblers, etc -- all on the PC) and test the stuff on emulators. (It still
works on the real HW.)

I know this because a colleague in the office is still active in the demo-
scene (yes, it's still active) and participates each year in competitions.

------
onan_barbarian
This is truly impressive in this day and age. I used to write little games
like this on the C64.

I do wonder why he is using a tape drive, though. That is taking
retrocomputing a step too far. We had a 1541 (IIRC) from day 1 when I first
got the C64 back in 1983, four years before the author was born. Tape is too
painful; and should be reserved for someone who wants to retrocompute on the
VIC-20.

I was trying to explain how delightfully 'tangible' the C64 was the other day
- POKE something into memory and bang, stuff happens. It never ceased to amaze
me how much improvement could be achieved over the baseline h/w and s/w setup
too - order of magnitude faster disk access, 80 columns, etc. etc.

------
SG-
My dad used to get some C64 magazine subscription which included guides to
making games and he would make some for me when I was just 3-4.

It was honestly pretty amazing stuff looking back on it 30 years later and
likely what got me in the field.

I kept a lot of his C64 books and magazines after he passed away a few years
ago, I might try and scan them or go through them myself one day.

------
endgame
If you think copying out 1K of code is masochistic, I remember Quantum P.
copying out nearly 24K of ZZT boards by hand when his disk drive broke:
[http://web.archive.org/web/20091026160713/http://geocities.c...](http://web.archive.org/web/20091026160713/http://geocities.com/zztexpert/docs/upoprgv4.html)

------
waterlesscloud
So much about this is beautiful.

Don't miss the .png at the end that has the entire source code with
explanatory annotations!

~~~
derleth
> Don't miss the .png at the end that has the entire source code

You mean I have to type it in by hand?

~~~
pjmlp
What else ?! :)

~~~
topbanana
I knew I was a geek when as a kid I would turn straight to the 'listings'
pages of my C64 magazines! Happy days

~~~
robodale
Typing in pages and pages of hex...hoping like hell you typed each character
in correctly...

~~~
makeset
Oh God, those hours. Can't decide whether they built character, or caused
permanent trauma. And in the odd case that the program worked, I would keep it
on as long as I could, since the record button on my tape drive was broken.

------
wslh
I have a t-shirt that says "Don't you miss Peek and Poke?"

------
drivers99
Since it's posted on ludumdare, it should say "in 72 hours". (Or 48 hours if
he entered it into the competition. Since it looks like he posted on Monday,
he must have done the 72 hours jam and not the 48 hour competition.)

~~~
leafo
It's a comp submission: [http://www.ludumdare.com/compo/ludum-
dare-26/?action=preview...](http://www.ludumdare.com/compo/ludum-
dare-26/?action=preview&uid=1405)

In the final graphic he says it took him only 8 hours though.

------
miketangotango
I once attempted a Gameboy Color game running a Java Gameboy Color emulator
running as an applet for the Ludum Dare. This was like 2006. Didn't complete
anything but was a hell of an experience.

------
kayoone
At first i didnt get why he didnt have time to finish the first game he
planned. Turns out this was a submission to the ludumdare game programming
contest where you build a game in 72 hours.

~~~
daredevildave
The solo competition is actually 48 hours. The Jam (teams) competition is 72
hours. This was a 48 hour entry.

------
Sosowski
But I never had a Disk Drive! Eastern Europe was all about tapes! Noone have
floopies.

------
hoi
ZX Spectrum all the way!

~~~
pjmlp
Timex 2068! :)

------
RawData
That.is.awesome!

