[stella] Robot City (alpha)

Subject: [stella] Robot City (alpha)
From: Thomas Jentzsch <tjentzsch@xxxxxx>
Date: Sat, 10 Aug 2002 20:33:23 +0200
Hi,
this is what might become a new game from me. It's nothing special,
please don't expect another Thrust. ;-)

It all started with the 1024 bytes competition, and I was looking for a,
what I thought, simple enough idea. I found this game, which is based on
the Odyssey prototype with the same name (an 8K! game).

The current ROM is very close to 2K, so obviously the 1K idea didn't
work well. :-)

The idea of the game is very simple:
The tanks are trying to kill you with their missiles and you must kill
them with your gun. But the tanks have a shield and can only be
destroyed when hit at the back.

There are currently two mazes, which can be selected with... SELECT. :-)

Though it's only a first alpha version, the game is playable now and
should give some fun for about 5 minutes. Especially the second maze is
not easy to master without loosing a helicopter

BTW: In the original Odyssey game you only have *one* life!

Tell me, what you think about it. And I hope, you have some ideas about
gameplay improvements, because I think it's lacking something important
to make it a really good game.


PROGRAMMING:
The basic idea was a simple kernel without repositioning and with some
flicker allowed. That worked quite well and the flicker should be
acceptable on TV (at least it's better than Pac-Man).

During the coding, I have tried my very best to write as compact code as
possible. This resulted in some a bit 'weird' coding (illegal opcodes,
of course!) and now causes some timing problems outside the kernel.

The two major problems I had to solve, where the movement through the
maze and the tank AI.

It should be easy to steer the helicopter into new directions, so I
aligned it's movement to an overlayed grid (quite similar to the Odyssey
original). (BTW: While looking through the 2600 game library I haven't
found a game, that uses this control pattern. Does anybody know better?)

The idea behind the tank AI was quite simple: Let the tank move towards
the helicopter and add some randomness.

The first part turned out to be problematic, because calculating the
distances to the helicopter to find the optimal directions for the
tanks, first resulted in very large and not elegant code. There are 12
possible distance combinations (arranged like the hours on a clock) and
each requires special handling. 

After some brainstorming I found a surprisingly easy way to convert the
distances into 13 indexes, which I could use for table access. That's
the code I'm most proud of (only one byte wasted in table!).

Still missing:
- gameplay fine tuning
- sound
- scoring
- better tank missiles
- different difficulty levels
- many more mazes
- ...

When switching to 4K, I will have plenty of extra space. :-)

Have fun!
Thomas                            
_______________________________________________________
Thomas Jentzsch         | *** Every bit is sacred ! ***
tjentzsch at web dot de |

Attachment: RobotCity10.zip
Description: Zip compressed data

Attachment: RC10.bin
Description: Binary data

Current Thread