Jump to content





Photo

Robot City revisited

Posted by Thomas Jentzsch, 25 May 2006 · 123 views

Programming Damned Tag Clouds
After "some" time, I recently decided to have another look at Robot City. Since the Minigame Compo deadline for 1K is coming soon, I decided to try again to squeeze the gameplay into 1K. Last time I failed, but now I have some more experiences in compact coding. Still I had to strip down the game massively, but finally I managed to keep the important gameplay elements intact.Attached you find the current version. It is almost complete, except for missing sound and some polishing (especially between level transitions and at game over). I also attached the source code and instructions (maybe someone can check my English). 69 bytes free :)Are the controls ok? Does the game start at a good speed and is the speed progression ok? Do you like the two maps? ... Any feedback is appreciated.

Attached Thumbnails

  • Attached Image

Attached Files






Hey, just in time when I finally found the time to check it out :)

I think it's very cool. Made it to round 4 in my best try. I especially like how the tanks will disable each other as well ;)

If changing anything, I'd swap the two levels, as I consider the second one to be easier, because it has fewer crossings.

Also I'd think you should give the player a rather symmetric shape, as it is no longer taking turns. (BTW: Why do you melt both missiles for the player? Wouldn't using only one save some bytes?)
  • Report

Cybergoth, on Thu May 25, 2006 9:43 PM, said:

If changing anything, I'd swap the two levels, as I consider the second one to be easier, because it has fewer crossings.
Interesting. IMO it's the tougher one.

Quote

Also I'd think you should give the player a rather symmetric shape, as it is no longer taking turns.
You mean vertically and horizontally? Any suggestions?

Quote

(BTW: Why do you melt both missiles for the player? Wouldn't using only one save some bytes?)
I don't. It's always the same missile. The other one is used for the robot shots.
  • Report

Thomas Jentzsch, on Thu May 25, 2006 7:57 PM, said:

You mean vertically and horizontally? Any suggestions?

Yup. Hm... a diamond shape maybe? Worst case a + might do.

Thomas Jentzsch, on Thu May 25, 2006 7:57 PM, said:

I don't. It's always the same missile. The other one is used for the robot shots.

Oh... I see :)
  • Report
Very cool. :)

Made it to the 5th round, which brings up a point...a score would be nice. ;) Hard to fit in 70 bytes, though.

The transitions are abrupt but I think it is fine. I'd rate a score and sounds as more important than prettying the transitions.

And...starts a little slow for me, but I'm kind of a speed junkie; what can I say. :D

EDIT: I like the player shape as is. And I think the 1st board is easier than the 2nd; fewer crossings means it can be harder to escape!
  • Report

Cybergoth, on Thu May 25, 2006 10:03 PM, said:

Yup. Hm... a diamond shape maybe? Worst case a + might do.
Like this?
   XX
   XX 
  XXXX
XXXXXXXX
  XXXX
   XX
   XX
  • Report

vdub_bobby, on Thu May 25, 2006 10:06 PM, said:

Made it to the 5th round, which brings up a point...a score would be nice. :) Hard to fit in 70 bytes, though.
No way. It takes at least about 100 bytes. Sorry.

Quote

The transitions are abrupt but I think it is fine.
I'll add a little delay. Shouldn't cost a lot of bytes.

Quote

I'd rate a score and sounds as more important than prettying the transitions.
The sound will be there, it's just not finished yet. I am not very good at it. Fortunately 1K is a good excuse for lame sounds. ;) (and the original O2 sounds aren't very brilliant too :D)

Quote

And...starts a little slow for me, but I'm kind of a speed junkie; what can I say. :D
Have you tried the O2 original? It starts even waaay slower. Thanks for the feedback.

Quote

EDIT: I like the player shape as is. And I think the 1st board is easier than the 2nd; fewer crossings means it can be harder to escape!
That's how I feel about it too.
  • Report

Thomas Jentzsch, on Thu May 25, 2006 3:24 PM, said:

vdub_bobby, on Thu May 25, 2006 10:06 PM, said:

Made it to the 5th round, which brings up a point...a score would be nice. :) Hard to fit in 70 bytes, though.
No way. It takes at least about 100 bytes. Sorry.
If not a score, I'd consider some way to indicate what level the player is on.
  • Report

batari, on Thu May 25, 2006 3:39 PM, said:

Thomas Jentzsch, on Thu May 25, 2006 3:24 PM, said:

vdub_bobby, on Thu May 25, 2006 10:06 PM, said:

Made it to the 5th round, which brings up a point...a score would be nice. :) Hard to fit in 70 bytes, though.
No way. It takes at least about 100 bytes. Sorry.
If not a score, I'd consider some way to indicate what level the player is on.
Agreed. I've been playing around with some code and I think you could get a single-digit level counter in less than 70 bytes, depending on your numerical font.
  • Report
I played it on my 7800 tonight (with Cuttle Cart 2), and had some fun. I also feel the 2nd level is a little tougher than the first.

I tried the two different control schemes after I read the dox. I think the continuous movement is a little more natural when firing. I played first with the other scheme, and got a little frustrated having to move out of my corner to fire, only to have to head back again... though this was also before I read the dox and understood that you have to shoot the robots from behind, so maybe it doesn't matter.

I really think that some way of keeping track of level or score is necessary. Any compromise would be welcome, like a series of dots shown in the playfield or *anything*. I got to level 5, but that's about as high as I can count, so I need the game to track it for me from now on... I'd much rather have no sfx if it meant some kind of level counter could go in.

P.S. This is Robin Harbron, the Minima/Splatform guy :)
  • Report

vdub_bobby, on Thu May 25, 2006 6:12 PM, said:

Agreed. I've been playing around with some code and I think you could get a single-digit level counter in less than 70 bytes, depending on your numerical font.
You don't even need Arabic numerals. Just turn on a PF block for each level. Maybe you can combine groups of five to make it easier to read. I'm not sure how many bytes it would take, but it might be worth looking into.
For instance:
Level 1: *
Level 2: * *
Level 3: * * *
...
Level 8:***** * * *
...
Level 11:***** ***** *
...
Level 32:***** ***** ***** ***** ***** ***** * *
  • Report

Zach, on Thu May 25, 2006 11:54 PM, said:

vdub_bobby, on Thu May 25, 2006 6:12 PM, said:

Agreed. I've been playing around with some code and I think you could get a single-digit level counter in less than 70 bytes, depending on your numerical font.
You don't even need Arabic numerals. Just turn on a PF block for each level. Maybe you can combine groups of five to make it easier to read. I'm not sure how many bytes it would take, but it might be worth looking into.
For instance:
Level 1: *
Level 2: * *
Level 3: * * *
...
Level 8:***** * * *
...
Level 11:***** ***** *
...
Level 32:***** ***** ***** ***** ***** ***** * * *
A gap every 5 blocks might be computationally expensive. Maybe both missiles with NUSIZ set for triple copies and black color, displayed on top of the PF, could allow for an easy-to-implement gap every 4 playfield pixels.
  • Report
Supercat had some cool "dot" solution going for his missile command 1K entry last year.
  • Report
Actually I was hoping the different "city" colors would help for recognizing the level progress. Maybe it would help to write down the colors in the manual?

Else some simple binary display is probably the best I can offer (if I have enough space, after implementing the sounds).

Something simple like:
*
**
***
...
Or maybe even a binary pattern:
	*
   *
   **
  *  
Most likely using PF graphics.

The code is really very tight and heavily optimized. E.g. the top and bottom borders are drawn by the normal kernel, which saves ROM but wastes RAM. And I don't have to disable/enable any objects or the PF anywhere else, except inside the kernel. I am using VBLANK to hide the PF outside the kernel, which saves some bytes to.
  • Report

MacbthPSW, on Fri May 26, 2006 5:37 AM, said:

I played it on my 7800 tonight (with Cuttle Cart 2), and had some fun. I also feel the 2nd level is a little tougher than the first.
So it works on real hardware? Cool, I didn't even test it there yet. :D

Quote

I'd much rather have no sfx if it meant some kind of level counter could go in.
Really? IMO its the other way around. Hmmm... :)

And the city colors should give you at least some hint, don't they? They are:
1: Magenta ($5x)
2: Cyan ($Ax)
3: Ochre ($Fx)
4: Red ($4x)
5: Blue ($9x)
6: Green-Yellow ($Ex)
7: Orange ($3x)
8: Blue ($8x)
9: Green ($Dx)
10: Gold ($2x)
11: Purple ($7x)
12: Green ($Cx)
13: Yellow ($1x)
14: Magenta ($6x)
15: Cyan ($Bx)
16: White ($0x)

I could reorder them (e.g. putting the very recognizable White into the middle) or use a gap of e.g. $30 instead of $50. ;)

Quote

P.S. This is Robin Harbron, the Minima/Splatform guy :D
Any competition from you this time?
  • Report
BTW: Maybe I shouldn't tell anybody, but currently (depends on the starting speed) around level 12, the game becomes almost unplayable, due to some design compromises (the player's ship moves too fast then and may "miss" some junctions). But I strongly doubt anyone will ever make it that far. :)
  • Report
ALERT!

That SFX is eating up my bytes! I started with 77 bytes free and now I am down to 36 bytes with only about 50% of the sounds done. My former three minigames had much less different actions happing, therefore requireing only a few (not more than 3) different sounds. But Robot City is very different.

These are the sounds I had planned:
Channel 0:
0: player moving (canceled already!)
1. player shot (laser sound)
2. iBot destroyed (explosion)
3. city complete (something "happy")

Channel 1 (done):
4. iBots moving (tick sound)
5. iBot missile (some alarming noise)
6. player killed, game over (something "annoying")

1, 2, 5 and 6 are a must, right?

3 could be replaced with 4 stopping when the last tank is killed (just 4 bytes for a check with a branch).

Any suggestions?
  • Report
I'd suggest combining #s 2 and 6. Or maybe 1 and 5.

EDIT: Got to level #8 (I think...it was blue) just now. :)

EDIT 2: Level 9. ;)
  • Report
... but now I have some more experiences in compact coding

I wouldn't have thought that this was possible for you, the master code bummer.
  • Report
Very cool game. Never played the O2 version, so I couldn't figure out right away why I couldn't shoot the robots from the front (and of course, reading the instructions would take all of the fun out of it). :)

I like the player sprite as-is. I don't think there's any reason to change it.

Color changes to indicate the level you're on should work fine. I look forward to hearing the sound effects.

Will this become a 4k release someday?
  • Report

vdub_bobby, on Fri May 26, 2006 5:09 PM, said:

EDIT: Got to level #8 (I think...it was blue) just now. :)

EDIT 2: Level 9. :D
Hm, looks like I need to speed up the tanks a bit. ;)

Currently they are half as fast as the tanks. How about 2/3rd?
  • Report