- First
of all we'd like you tell us about your passion for classic arcades,
when did it all started out?
It's strange. I was still a baby boy when spotty teenagers were
playing games such as Pac-Man, Space Invaders and Asteroids in the
early 1980s.
I suppose my love of all things retro came about because of my hermit
childhood, wasting hours in front of my Amstrad CPC.
I was a massive fan of Codemaster's Dizzy adventure games, and I
used to fritter may days away copying the pixels from the screen
onto pieces of graph paper.
I've no idea why... it just fascinated me.
Then when the Internet came along in the 1990s, games seem to had
lost their most important attribute - simple playability.
I began to yearn for the very first computer games, such as Pong
and Pac-Man, but no one had recreated them faithfully enough.
Typically, you had to download awkward (and possibly illegal) emulation
software such as MAME and find ported ROM files of the games.
So I set out to do something about it.
- When did you write your first lines of code?
Now this is sad. I must have been 6 or 7 years old when my dad
let me have a go on his precious Amstrad CPC, typically used only
for writing spreadsheets and weighing paper down.
I remember the massive silver manual that came with it - hundreds
of pages explaining the BASIC programming language.
I attentively typed: PRINT "Hello World", and pressed
the Enter key.
Hello World
Ready
Wow! It did what I told it to do! Look at me! Look what I did!
That's what's always fascinated me about computers - they are your
slaves and you can tell them to do anything.
You've just got to learn how to speak their language.
- What about Flash? What version did you use when you first
discovered it?
A website called www.nrg.be
(which still exists today) was written in Flash 3 and showed me
what amazing stuff the web could deliver.
Remember that at this time, the Information Super Highway was famous
for animated GIFs, geeks and porn. Those things would continue,
but Flash showed the future - I was hooked and begun to study Flash
in earnest.
- Back to your nice games. You've done a great work reproducing
those classics. For example the original Pac-Man had different AI
for each ghost. How did you approach this aspect?
For starters, I couldn't recreate the way the ghosts played exactly
without owning a circuit board schematic and lots of patience.
So I made it up as I went along and tried to mimic the 'feel' of
the game rather than aping it precisely.
You may notice that the typefaces and graphics used are also interpretations
of the original Namco coin-op game, rather than a pixel-perfect
replication.
If you want accuracy, download the MAME emulated version.
- Hexxagon is a very addictive game, but I don't remember
it as a coin-op. Where does it come from?
That was my second ever game written in Flash 4. My first was Pong,
but that was very dull and I knew I could do better. One game I
used to play with my mates a lot on my PC as a kid was a freebie
DOS game called Hexxagon.
With the advent of Windows 95, I knew this game would be lost to
gaming history forever if I didn't recreate it.
It also challenged my coding skills at the time and made me think
in new ways, which is a kick I always get from programming.
- Tetris is another simple, yet incredibly addictive game.
Many years have passed since the day Alexey Pajitnov (the game author)
created it but so many people still enjoy playing it. Also Tetris
can be a good starting point for a beginner game developer. How
did you approach the general coding?
Tetris personifies great gameplay and what all games should really
be: simple, fun and addictive.
Again, another small step for me was learning to write programs
using functions.
The whole shebang is function based, allowing you to think in a
more abstract way.
It allows you to take a step back and organise your code in a way
not possible with typical procedural programming (where you write
the entire game in one huge page of code that loops over and over).
- Any advice for beginners who would like to start coding
a Tetris clone?
Download the source code to my version and see how I've done it!
http://www.neave.com/games/tetris/tetris_fla.zip
Honestly - that's the best way to learn.
Get stuck in to other people's code and hack about; change things
and see what happens.
You could spend your entire life reading books about the best programming
practices, but without practical experience you'll get nowhere fast.
- You've recently released a faithful reproduction of the
original Asteroids by Atari. Even if the game had some elementary
graphics due to the hardware limitations of the time (1979), it
reproduced the physics of motion very well. Can you tell us a bit
about the math behind the game?
There are some very simple rules, and they come down to a basic
understanding of physics.
Here's some code to get your teeth stuck into:
// Rotation
if (leftKey) this._rotation -= 10;
if (rightKey) this._rotation += 10;
// Vector
var vx = Math.sin(this._rotation * rads);
var vy = -Math.cos(this._rotation * rads);
// Thrust
if (upKey) {
dx += vx / 4;
dy += vy / 4;
}
// Friction
dx *= friction;
dy *= friction;
// Position
this._x += dx;
this._y += dy;
|