Jump to content
  • entries
    37
  • comments
    607
  • views
    145,225

Robot City revisited

Sign in to follow this  
Thomas Jentzsch

5,951 views

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.

Robot_City.png

Robot_City__v1.0_.zip

  • Like 1
Sign in to follow this  


70 Comments


Recommended Comments



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?)

Share this comment


Link to comment
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.

 

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?

 

(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.

Share this comment


Link to comment
You mean vertically and horizontally? Any suggestions?

 

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

 

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

 

Oh... I see :)

Share this comment


Link to comment

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!

Share this comment


Link to comment
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.

 

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

 

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)

 

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.

 

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.

Share this comment


Link to comment
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.

Share this comment


Link to comment
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.

Share this comment


Link to comment

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 :)

Share this comment


Link to comment
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:***** ***** ***** ***** ***** ***** * *

Share this comment


Link to comment
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.

Share this comment


Link to comment

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.

Share this comment


Link to comment
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

 

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. ;)

 

P.S. This is Robin Harbron, the Minima/Splatform guy :D

Any competition from you this time?

Share this comment


Link to comment

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. :)

Share this comment


Link to comment

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?

Share this comment


Link to comment

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. ;)

Share this comment


Link to comment

... 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.

Share this comment


Link to comment

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?

Share this comment


Link to comment
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?

Share this comment


Link to comment
... 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.

You never ever stop learning, so you can always improve.

 

BTW: I just found another 4 bytes. :)

Share this comment


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

I'll post a first beta (including SFX) tomorrow.

 

Will this become a 4k release someday?

That's part of the plan. Start with an 1K version for the 1K competition and then continue the 4K version (which I will have to refactor massively now) for the 4K competition. Finally maybe even an 8K version, though I don't think I will have enough ideas to fill that much space.

Share this comment


Link to comment
So it works on real hardware? Cool, I didn't even test it there yet. ;)

Yup, it worked great - only glitch I noticed was between levels, sometimes the screen would jump/roll, probably just for one frame. No big deal.

 

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... :)

I'm sure I'm in the minority with this - without sfx it does seem unfinished/unpolished, but the sense of accomplishment/progress far outweighs sfx on my own priority list.

 

And the city colors should give you at least some hint, don't they? They are:
They're a help now that you've listed them, though I'm pretty bad with colours. A binary display in the PF would be fine by me :D I got to level 7 now, though I see I'm not keeping up with the record...

 

Any competition from you this time?

Not in the 1k category for sure - I have an unfinished 4k from last year that I've been fiddling around with a bit, so I might get that done. However, I'm pretty burnt out. I just finished my first commercial GBA game in 3.5 months, and I felt like I was "sprinting" to meet the milestones for the last two months, so I'm really enjoying having no deadlines at the moment :D

Share this comment


Link to comment

I am wondering about the increase of difficulty.

 

Currently all speeds (player, iBots, player's shots, iBot's shots) are increased by 1/8th after completing a level. So the relative speed remains constant, all strategies which work on the lower levels will still work on the higher levels. You just have to react faster.

 

If I would add a constant value (or values) to the speeds, then the relative speed would change (especially between the player and the iBots). You most likely had to use different patterns in the higher levels, because the iBots will speed up more than the player does.

 

Sounds good?

Share this comment


Link to comment
Yup, it worked great - only glitch I noticed was between levels, sometimes the screen would jump/roll, probably just for one frame. No big deal.

I might be able to fix that, though I'm not sure.

 

I'm sure I'm in the minority with this - without sfx it does seem unfinished/unpolished, but the sense of accomplishment/progress far outweighs sfx on my own priority list.
I hope you understand, that I'll have to go with the majority here. ;)

 

They're a help now that you've listed them, though I'm pretty bad with colours. A binary display in the PF would be fine by me :D I got to level 7 now, though I see I'm not keeping up with the record...

I never made it that far without cheating. Looks like I really need to adjust the difficulty. :)

 

Not in the 1k category for sure - I have an unfinished 4k from last year that I've been fiddling around with a bit, so I might get that done. However, I'm pretty burnt out. I just finished my first commercial GBA game in 3.5 months, and I felt like I was "sprinting" to meet the milestones for the last two months, so I'm really enjoying having no deadlines at the moment :D

I know what you are talking about. Fortunately my job is currently in a less stressful phase.

Share this comment


Link to comment

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...