e in Berlin
Friedrichshain (Germany) and I share an apartment with a flatmate and his
dog, which keeps driving us nuts. I love running around in embarrassing outfits, playing the saxophone with bands on jam sessions, and of course, hanging out with my beer groups and get hammered. I'm certainly into entertaining people (when I'm away from the computer).
- - - - - - - - - -
Q. So then, what was the motivation for creating Pulse, and especially,
why did you created the game for the unexpanded machine?
A. I always wanted to do something with a 6502 CPU, and I always wanted to write a game. The stock VIC-20 was my first computer. I wondered how much
one could squeeze out of the machine with the amount of programming
experience people have nowadays. I was depressed out of my mind after my software business didn't take off, so there was a serious need for quality
time in front of the computer with the door shut - no socializing. It was
a perfect mental holiday.
- - - - - - - - - -
Q. I criticised the game in Commodore Free (although it did receive a relatively high score) on some of the graphical glitches in the game, flickering and ghosted images, etc. Was this purely down to the hardware
and limited resources, and of course, the speed the game runs at, or was it more down to not being able to resolve the problems with your code?
A. The ghost ship that occurs after the player was hit and the sprites
just popping out on the left instead of clipping at the border are bugs; I
am afraid I just couldn't find them. Shame on me. I guess I spent far too much time on it. The other glitches cannot be removed from the unexpanded
VIC, as far as I can figure it out. The graphics are text characters
really, and that always comes with clashes, especially if you intend to
move things smoothly. The sprites are double-buffered to make them
bearable. When the game runs out of its 48 characters for its 16 sprites,
it just picks the last character used, and that's when you get the mirror images. Pulse is dancing the Tango in a phone cell.
- - - - - - - - - -
Q. When the game is running of course, the small glitches fade into
obscurity, especially as the game really rattles along. You mentioned the
VIC is absolutely flat-out (processor-wise), so with that in mind I presume
the sections and waves had to be very carefully planned out so as to limit
the amount of screen graphics. My question is, "Was this planned - or did
the game just evolve over time?"
A. Ha-ha! That's a good one! Me and careful planning... Just kidding.
No, that was much easier. Since there's no way to race the beam, Pulse
doesn't wait for the retrace. Instead, sprites aren't really removed, but
are turned into background star sprites to keep the speed more or less
stable. Your VIC doesn't waste a single CPU cycle while running Pulse.
There are 16 sprites all the time. Even those behind the background are
drawn into ROM. The game speed still varies a lot but no-one seems to
notice or at least complain about it. The game grew in small steps, and
after each step the next became more or less obvious. I played around with
the screws and trusted my intuition, and of course my fond memories of Gradius/Nemesis on the first Nintendo Entertainment System. In the end of
the day it was supposed to be an action game - and it's totally O.K. for
it to be a little bit stressing. Right before I started programming Pulse
I dug through 6502 CPU documentation and wrote a disassembler with the
tiniest CPU description possible (in my small universe) in Lisp. That's
what probably made me dangerous.
- - - - - - - - - -
Q. Do you intend any further developments on the game - maybe a loading
screen with music and a high score table? Obviously the loading screen
would be do-able, but is there any memory left for anything else?
A. I'd love to see a real tape release. Of course you simply cannot have
no loading screen on tape, or can you? Unfortunately no retro software
house was interested. There are 50 bytes left now scattered across memory. Maybe it's possible to put the letters "HI" in front of the high score, but that's all I can picture at the moment. Or maybe a little bit more level
data. Uh!? Why didn't I think about that earlier?
- - - - - - - - - -
Q. As the source is available to download, I expect people will want to
tweak it, and I presume this is your intention for its release. Would you consider re-working the game if a reader could remove more of the screen glitches?
A. The source code is simply a gift to the community. The game is very
hard to tweak and I'm trying to leave my hands off it myself because you
can break things very easily. Everything is kind of interlocking. If
somebody comes up with fixes, I'll surely help. Don't forget - the game is public domain. You can do with it what you want. You can make a tape
release without asking me. You can re-use any code for your own project without having to slap my name on it - you're probably running out of
memory anyway. Readers with questions about the source code shouldn't
hesitate to ask me. My address is
pixel@hugbox.org
- - - - - - - - - -
Q. Of course I am mentioning the negatives of the game, and remember the
game scored a very respectable 8.5 out of 10, so anyone reading should not
be alarmed by the talk of glitches. Were you pleased with the score, and
do you have any comments you would like to mention about the values I
awarded the game?
A. I know next to nothing about VIC games and I hardly play any games at
all, except the famous Midlife Crisis. I leave it to you as the expert.
I'm super happy with your ratings! All technical things aside, it's up to
the gamer who is supposed to spend his precious time to rate the game. I couldn't ask for more.
- - - - - - - - - -
Q. So this is your first VIC game?
A. Yes, Pulse is my very first game.
- - - - - - - - - -
Q. Q Do you have any other VIC games planned?
A. Yes, and it's spoiling my days and nights! I'm making an idiot out of myself trying to create a 3D tank game with filled polygons for the
unexpanded VIC. You can observe my progress-in-failing on Github.
- - - - - - - - - -
Q. Do you prefer working on the standard hardware, or would you consider creating games for expanded machines?
A. A nice thing about programming for unexpanded machines is the prospect
of actually getting something done, and the technical challenges of it suit
me well. I'm afraid all I could come up with on an expanded machine is a
crap game. I'm just not ready yet - it has to feel right.
- - - - - - - - - -
Q. Do you work on other Commodore platforms, and will the game be ported
to other Commodore hardware?
A. No, I never worked on other Commodore machines. My parents replaced my
VIC by an Amstrad CPC-464 back then, and that one by an early IBM-PC.
Grrr! Life can be cruel. Pulse is just right for the VIC. The C64
community would probably have a good laugh about a port, wouldn't they?
Maybe the C16 is worth a try. If some retro software house wants a port to another machine I'm all ears. I know there's hardly any money in it.
- - - - - - - - - -
Q. Some readers have asked me to ask you how the game was created, the
tools used, and how the bug testing and coding was worked on. Also, did
you have other people testing the game besides yourself?
A. Linux Mint runs my laptop computer. I used the VICE emulator, a 6502 assembler called 'xa', the VIM text editor, and meditative debugging. I
made tiny changes, assembled everything, and checked if it worked. When it
did the change went into the Git repository. No debugger involved. A
couple of times an endless loop got wedged in to check register contents in
the VICE monitor. Never underestimate pen and paper! In the beginning I
tried to get my flatmate's attention. "Look! A movi
--- MBSE BBS v1.0.01 (GNU/Linux-i386)
* Origin: Dragon's Lair ---:- bbs.vk3heg.net -:--- (39:901/280)