Jump to content

Planet Bob

  • entries
    430
  • comments
    1,870
  • views
    659,794

Colony 7: New Title Screen

Sign in to follow this  
Cybergoth

1,378 views

Hi there!

 

Inspired by the recent work on the Juno First title screen did I rework mine some as well. I never liked the totally assymetrical look of my score infos and they were also using way too much space. So the idea was to do something similar than the recent JF trickery. Only instead of two dots, I rather wanted a fifth sprite to work with, which unfortunately requires an impossible timing :sad:

 

I managed doing it anyway though, (with an evil trick :D):

c7intro_new.gif

 

Greetings,

Manuel

Sign in to follow this  


48 Comments


Recommended Comments



I haven't played this game in a while but I think it needs some more sound fx. When the aliens hit your shield it doesn't make any sound, for instance.

Share this comment


Link to comment

Hmm... is "evil trick" referring to the shrinky digits, or the use of TXS/TSX? The latter reminds me of my 1994 Color-'ems (later Strat-O-Gems) kernel. 8-) Useful trick then and now. BTW, in Toyshop Trouble I could have saved a cycle in one of my kernels, at the expense of 14 bytes of RAM, by using the "LAS" instruction (the irony is that the RAM waste would be from storing the same data in RAM 15 times to allow for the ",y" addressing mode of LAS).

 

There are other tricks one can use there for certain score colors. For example, if you wanted colors $06, $08, $46, $48, $86, $88, $C6, or $C8, you could swap the roles of P0/P1, set up the right combination of P0/P1 and M0/M1 collisions, and then use "DEC COLUP1" or "INC COLUP1" to set the color. This would allow you to load the accumulator with a GRPx value instead of the stack pointer, thus saving you the four cycles you'd otherwise spend on TXS/TSX.

 

Using LSR or ROR on COLUP1 would let you have $n2, where 'n' is any even number. Using ASL on COLUP0 or COLUP1 would let you have $0C, $0E, $8C, or $8E.

 

Obviously an NTSC/PAL translation would have to be hand-tweaked in this scenario; usual methods of using color-equates would not suffice.

 

What about, as an another "evil" alternative, using one or both missiles for the last digit? That would let you make the other digits full-sized. Use the playfield to obscure the extra missile copies.

Share this comment


Link to comment
Hmm... is "evil trick" referring to the shrinky digits, or the use of TXS/TSX?

 

Close. The actual thing I considered evil is this one: Since the timing *really* doesn't work, I'm keeping the rightmost bit of the second P0 copy intentionally empty :)

 

When desperately needing this pixel, it could be reclaimed I think: The whole display could be shifted 3 pixels to the right, then the resulting garbage in the rightmost pixel of the first P0 copy could be hidden underneath a PF column.

 

The latter reminds me of my 1994 Color-'ems (later Strat-O-Gems) kernel. 8-) Useful trick then and now.

 

Definitely. I saw it first when Robin tried doing a 6-char without VDEL :)

 

BTW, in Toyshop Trouble I could have saved a cycle in one of my kernels, at the expense of 14 bytes of RAM, by using the "LAS" instruction (the irony is that the RAM waste would be from storing the same data in RAM 15 times to allow for the ",y" addressing mode of LAS).

 

That's really a giant trade-off! :)

(But if it's that cycle that makes the difference...)

 

I think in the case of my display wouldn't extra cycles really help it. If I needed some I could just go from indirect to direct addressing for the reads, like it's done in the JF kernel.

 

There are other tricks one can use there for certain score colors. For example, if you wanted colors $06, $08, $46, $48, $86, $88, $C6, or $C8, you could swap the roles of P0/P1, set up the right combination of P0/P1 and M0/M1 collisions, and then use "DEC COLUP1" or "INC COLUP1" to set the color. This would allow you to load the accumulator with a GRPx value instead of the stack pointer, thus saving you the four cycles you'd otherwise spend on TXS/TSX.

 

Using LSR or ROR on COLUP1 would let you have $n2, where 'n' is any even number. Using ASL on COLUP0 or COLUP1 would let you have $0C, $0E, $8C, or $8E.

 

Obviously an NTSC/PAL translation would have to be hand-tweaked in this scenario; usual methods of using color-equates would not suffice.

 

Thanks, I'll add those to my spellbook :)

 

What about, as an another "evil" alternative, using one or both missiles for the last digit? That would let you make the other digits full-sized. Use the playfield to obscure the extra missile copies.

 

Hm... that would definitely need some more cycles then. I'm not really concerned about the digit size though, since I copied the font straight from the arcade. Just adds to authenticy :)

Share this comment


Link to comment
Nice! (I'm guessing "s" = "squad")

 

What's left to do on the game? AI?

 

Yes squad, since I'm using that term in the intermission screens. I couldn't think of making the multiply effect more clear graphically :)

 

I used to call it AI myself, but "movement schemes" is probably a better term for it. I still want to model the fighter movement a bit closer to the arcade, yes.

 

I haven't played this game in a while but I think it needs some more sound fx. When the aliens hit your shield it doesn't make any sound, for instance.

 

I just checked and thank heavens the SFX code/data resides in the intro bank :)

I'll try adding one for destroying shield bits. Any other effects missing?

Share this comment


Link to comment

Looks beautiful and the game itself is surprisingly addictive - cool conversion and great fun!

 

If I may drop a couple of suggestions:

 

- sounds: it would be nice to have an "alarm siren" at the begin and a victory jingle at the end of each wave. Also, if the bonus score would visualy and accustically add up instead of just display. Such small effects could enliven the game quite some and give it more drama, I believe.

 

- fire buttons: I noticed that while playing I'm actually holding the main fire button all the time. Which leads to the thought whether the bases could not fire automatically by default. That would free the fire button to be used for the smart bombs. No need for a special second controller set-up then anymore. I may have missed some of the earlier discussions on this, maybe there are others who do want to be able to control the bases' fire - if so, why not offer both control schemes?

 

- presentation: it would be nice to have the title screen alternate with an attract (in-game demo) screen. That would give it arcade-perfect polish :)

 

Cheers, Eric

Share this comment


Link to comment
Looks beautiful and the game itself is surprisingly addictive - cool conversion and great fun!

 

If I may drop a couple of suggestions:

 

Thanks, you're more than welcome! :)

 

- sounds: it would be nice to have an "alarm siren" at the begin and a victory jingle at the end of each wave. Also, if the bonus score would visualy and accustically add up instead of just display. Such small effects could enliven the game quite some and give it more drama, I believe.

 

I'll look into this :)

 

- fire buttons: I noticed that while playing I'm actually holding the main fire button all the time. Which leads to the thought whether the bases could not fire automatically by default. That would free the fire button to be used for the smart bombs.

 

Uh... feeling totally :) now...

I really never thought of this :)

 

I actually built in the auto-fire for myself, since I suffer from some RSI like problems. It seems everyone was liking it so far, so I just kept it as a feature. And now you come, thinking the idea to the end :)

 

I'll try that, so we can see what feedback it gets!

 

- presentation: it would be nice to have the title screen alternate with an attract (in-game demo) screen. That would give it arcade-perfect polish :)

 

Hm... I have to think some about this one. Depends a bit on the cost for realizing it.

Share this comment


Link to comment

:) Cool, great you're looking into these suggestions!

I guess sometimes a fresh look from the outside helps :)

 

Hmm, don't want to overdo it, but here's another observation (and possible remedy):

I find the game's (longterm) appeal suffers from the fact that the player has no way to influence and counter the inevitable destruction of all his shield/cities/bases. Very soon he will lose out, no matter how perfect he plays.

Granted, this shortfall is inherent to the arcade game - and probably one of the reasons it failed to succeed ... after all, that's never been a good design approach in video games :)

 

So, encouraged by your history of improving average arcade games, here's my suggestion:

 

:) introduce bonus "repair" targets (ships, or satellites, or comets, ...whatever).

The idea is that these would fly across the screen in more or less regular intervalls, in a very simple pattern, e.g. from left to right or right to left, in only one pass. To give the player a challenge they should fly pretty fast, so the player needs to decide whether he should go after them or concentrate on defending against the enemies.

Shooting the targets would not have an immediate effect. However at the end of the wave the number of repair targets would be displayed on the bonus screen (could be in several rows depending on the number of max sprites). Then the repairs would set in on screen (deducting the adequate number of targets with each repair): for instance 8 shield pixels per single bonus target, or one city per two targets, or one base for every four targets.

This obviously would need to be refined in detail (repair priorities, repair values, etc.), but I hope the basic idea is clear...

Also these repair targets should only start appearing in later levels (starting with the 3rd wave for instance) to give the game a nice difficulty curve. The intervalls of the targets would decrease in later levels to cope with the faster destruction. Again, a matter to find the right balance here.

 

... just thinking loud.. always feel embarrassed dropping ideas that would translate into hard programming work for others :)

Share this comment


Link to comment
... just thinking loud.. always feel embarrassed dropping ideas that would translate into hard programming work for others :)

 

That's desperately needed feedback actually. There can never be enough suggestions - all the best ideas in my games came from outside feedback :)

 

It's sometimes hard to realize some ideas or to make them fit into exisiting hardware or design limitations. Some ideas can be tweaked, some need to be rejected for various reasons, like when it's going to far away from the original or when certain things simply have to be considered "done", or you'll never get a game out of the door :)

 

You were perfectly addressing the flaws of the arcade. Being doomed sucks. You always are in these older games, but it's rarely as obvious as in Colony 7 :)

 

Also, there's not much happening in later rounds, it just gets faster. I've been complaining about that design pattern myself: Two Types I'm done with

 

For my Colony 7 interpretation I'm stuck within this myself. Since the player is doomed, I went with 9 levels of difficulty. Also, I don't have enough RAM to track variable speeds of enemies. My engine is limited to 1 page of data for all sprites on the screen, which is full to the last byte already with the arcade objects and their explosions.

 

When I wrote all of this code, I just modeled it after the Arcade and most of that code do I consider done by now.

 

That all being said, within those limitations I still have a chance to introduce a concept for "repairs", maybe even with some added strategy: Based on your idea, I thought I could possibly realize small "repairs" by adding some "use" into the advisor enemy. I could have it color cycling for example, and depending on its color when you shoot it, it could either repair the shield some, restore a building, reload a smartbomb or add some score. How about this for a little compromise? :)

Share this comment


Link to comment

So, in the arcade game you can't earn back anything? Guns, buildings or shields? That is pretty weak (but typical for a quarter-eater). I guess I assumed at some point you'd earn something back, but never played it enough to find out. Definitely would be good to find a way to address that. Even if it's just the typical x number of points, or x number of squads, where things would get restored in a certain order, based on what was already destroyed. Guns first, then buildings, then shields, I would think.

 

I think using the Advisor has promise. The trick would be limiting how often (or seldom) it offered a repair bonus, so that the game didn't become too easy.

Share this comment


Link to comment

The Advisor variant would work great, I think!

Would actually add more depth to both the repair idea as well to the gameplay as a whole! :)

Main design challenge would be to finetune the length of the different colour stati and their effects to maintain a well balanced and challenging game. No worry here though - I understand you've developed a Pro hand for such things working on Crazy Balloon :)

 

Regarding the speed-up design fallacy, it's certainly true that that alone is a perfect recipee for boredom. :)

On the other hand, those videogame pioneers of the 70's/80's quickly discovered a simple yet highly efficient way to keep players addicted even after they topped the difficulty curve: eye candy. Be it Missile Command/Centipede's simplistic changing of color patterns (some of those combinations made for hypnotizing effects) or Namco's universally adapted bonus fruits approach. The underlying principle of course is to keep the player motivated by offering him new things to discover - it doesn't need to be sophisticated at all, as long at it offers a minimal surprise factor.

It worked beautifully then, as it still does today! :)

 

Thinking about it, wouldn't this trick benefit Colony7 as well?

Applying the Missile Command approach: changing the colour patterns for ships/ ground objects/ etc. every 8th or 10th wave, or so. A skillfull design of a set of different colour palettes may provide a strong motivation for players to try to discover the next beautiful combination...

Share this comment


Link to comment
You were perfectly addressing the flaws of the arcade. Being doomed sucks. You always are in these older games, but it's rarely as obvious as in Colony 7 :)

 

Some Asteroids players might disagree with you about 'always' being doomed.

 

My more specific complaint with Colony7 is that once an enemy has fired a shot toward one of your guns, you can't do anything about it unless you have a super-bomb. Perhaps if the player could shoot enemy shots, that would help things.

Share this comment


Link to comment

Well, I just read the instructions for the arcade game (duh...) and you do earn replacement colonies at 10,000 points. You just don't earn back pieces incrementally (like Missile Command or Atlantis). So you aren't really doomed, as such.

 

That said, being able to earn back your guns more frequently would improve things a lot.

Share this comment


Link to comment
Thinking about it, wouldn't this trick benefit Colony7 as well?

Applying the Missile Command approach: changing the colour patterns for ships/ ground objects/ etc. every 8th or 10th wave, or so. A skillfull design of a set of different colour palettes may provide a strong motivation for players to try to discover the next beautiful combination...

 

I'll think about something like that, though it probably won't be color changes.

 

Some Asteroids players might disagree with you about 'always' being doomed.

 

They should try game 32A then :)

 

My more specific complaint with Colony7 is that once an enemy has fired a shot toward one of your guns, you can't do anything about it unless you have a super-bomb. Perhaps if the player could shoot enemy shots, that would help things.

 

Might be worth a try :)

 

I think the situation will also improve once the proper fighter movement schemes are ready, since then there will no longer be any sudden death shots and success is more depending on the players descissions.

 

Well, I just read the instructions for the arcade game (duh...) and you do earn replacement colonies at 10,000 points. You just don't earn back pieces incrementally (like Missile Command or Atlantis). So you aren't really doomed, as such.

 

I think you get only two extra colonies though, at fixed score values. After that you're doomed again :)

 

That said, being able to earn back your guns more frequently would improve things a lot.

 

I'm not sure about this one. Defending the guns is the players primary job after all :)

Share this comment


Link to comment
I think the situation will also improve once the proper fighter movement schemes are ready, since then there will no longer be any sudden death shots and success is more depending on the players descissions.

That sounds good. As it is now, they're a little too "on target".

Share this comment


Link to comment

Added a new binary with two changes:

 

- Added a shield-destruction SFX

- Tried the autofire suggestion, ie. the smartbomb is now triggered with fire

 

These two changes also required a tweak to my SFX driver. Since I have now zillions of almost simultaneous mini-sounds, they tended to overwrite each other, as I only had a very simple detection that did seek the least-busy channel and then launched a new SFX on it.

 

I added some more logic there, so now the new SFX must be longer than what is remaining of the currently played sound.

 

That way they're pretty much priorising themselves, i.e. for example a new-shot SFX can no longer overwrite a shield-destruction SFX that has just started :)

 

=> Anyway, mainly interested in feedback regarding the new controls! :)

Share this comment


Link to comment

I like the autofire, too. But I'd like to be able to press fire to start a level - it feels weird not being able to initiate the autofire - and then maybe not have the smart bomb be usable for a few seconds until the first enemies materialize, so you don't accidentally use one up when starting a level.

 

A few other notes:

  • After you die, it shouldn't entirely rebuild your cities and shields. I think it should only do this when you reach certain point levels (but it should always rebuild your cannons).
  • Is there enough room for another line below the score to show how many smart bombs you have left?
  • Currently, there are some enemy patterns where they don't do anything but move up and down, or left and right, and never fire. If you get a few of these on screen and just leave them alone, you can blast the other one that comes out at will, and play basically forever. They need to be able to break that pattern, or switch which one is firing, or something.
  • Does the speed change yet? It doesn't seem to get any harder. I played up through level 9 with no problem (without using the aforementioned "cheat").

Share this comment


Link to comment
I like the autofire, too. But I'd like to be able to press fire to start a level - it feels weird not being able to initiate the autofire - and then maybe not have the smart bomb be usable for a few seconds until the first enemies materialize, so you don't accidentally use one up when starting a level.

 

Hm... the intermission sequence is running by timers, it doesn't react on the fire button anyway, so why would you want to press it then? :)

 

[*]After you die, it shouldn't entirely rebuild your cities and shields. I think it should only do this when you reach certain point levels (but it should always rebuild your cannons).

 

This is modeled after the arcade, I'm not sure if I want to change this.

 

[*]Is there enough room for another line below the score to show how many smart bombs you have left?

 

There's not a single scanline left. The remaining smart bombs are indicated via the animated bottom thingies. If you use them, they stopped animating. And if an enemy shoots them they're gone. I think that's a pretty cool design from Taito :)

 

[*]Currently, there are some enemy patterns where they don't do anything but move up and down, or left and right, and never fire. If you get a few of these on screen and just leave them alone, you can blast the other one that comes out at will, and play basically forever. They need to be able to break that pattern, or switch which one is firing, or something.

 

Yup, this will definitely be adressed when I add a better enemy movement scheme.

 

[*]Does the speed change yet? It doesn't seem to get any harder. I played up through level 9 with no problem (without using the aforementioned "cheat").

 

I will have to think of other means of making it more difficult, as it probably won't speed up at all :) :)

Share this comment


Link to comment
I will have to think of other means of making it more difficult, as it probably won't speed up at all :) :)

Ideas?

More enemies at a time.

Enemies spawn faster.

Enemies use harder flight patterns, or go into them sooner and more often, or are more aggressive in general.

More of the harder enemies.

Enemies shoot more frequently.

Enemy bullets move faster.

Enemies are more accurate.

Enemies aim more at your cannons. Or more at your shield. Whichever is harder. Or have the enemies aim intelligently; all of them aiming at a single target until it is dead, then moving to a new target.

 

It's a little hard for me to judge this, since I've played this a bunch as well as the coin-op (MAME), but the first level of the coin-op seems impressively hard. You might want to ease up the difficulty of the initial wave for your port and work up from there.

 

Back to the control scheme - I didn't think I'd like the auto fire, but it works very well and even if it only worked OK the benefit of not needing to use a 2nd controller is so great that it'd still be worth doing. :)

Share this comment


Link to comment

Autofire: :)

(controls are much easier now, without affecting the game difficulty. Interestingly, I also felt much more "drawn" into the game now)

Shield-destruction SFX: :)

 

More suggestions/comments:

 

- besides a smartbomb indicator, it would also be good to have a "remaining-life" indicator during play.

A possible approach would be to color-code a static feature of the screen, for instance the ground or, better, the score (or its background). An obvious code would be green/yellow/red for 3/2/1 lives remaining.

 

- after losing a life, the game should continue from where it stopped (e.g. the same amount of remaining enemies). I find it rather irritating to have to restart the same level from start. This does break the flow of the game, IMO. (like commercial breaks on TV)

 

- play a short "requiem" jingle a the game over screen.

- display the last wawe number at the game over screen.

 

- tweaking the enemies speed, patterns, etc. should work fine to steadily increase the difficulty.

...I would however avoid increasing the difficulty through the enemies shots behaviour, as that's something the player could hardly react to and primarly create frustration, IMO.

Share this comment


Link to comment

Thanks again for all the feedback guys, it'll all be taken into consideration! :)

 

- besides a smartbomb indicator, it would also be good to have a "remaining-life" indicator during play.

A possible approach would be to color-code a static feature of the screen, for instance the ground or, better, the score (or its background). An obvious code would be green/yellow/red for 3/2/1 lives remaining.

 

You're sure that this is required? Since it didn't fit on the screen I'm already printing the number of tries on the intermission screens.

 

- after losing a life, the game should continue from where it stopped (e.g. the same amount of remaining enemies). I find it rather irritating to have to restart the same level from start. This does break the flow of the game, IMO. (like commercial breaks on TV)

 

I think you're right on this one! :)

 

- play a short "requiem" jingle a the game over screen.

 

I'm not good at all at doing jingles, so here is a deal: If I get a good jingle submission from someone, I'll use it :)

 

- display the last wawe number at the game over screen.

 

Should be easy.

 

- tweaking the enemies speed, patterns, etc. should work fine to steadily increase the difficulty.

...I would however avoid increasing the difficulty through the enemies shots behaviour, as that's something the player could hardly react to and primarly create frustration, IMO.

 

I don't know yet how this all will turn out. Right now I still have two free RAM bytes reserved per enemy, so we'll see how to make the best use out of them :)

Share this comment


Link to comment
I'm not good at all at doing jingles, so here is a deal: If I get a good jingle submission from someone, I'll use it :)

 

I should mention that they need to be very small, ie. 100 Bytes max. for one. I started working on the AI yesterday and realized that meanwhile I'm down to a single page of free ROM.

Share this comment


Link to comment
- besides a smartbomb indicator, it would also be good to have a "remaining-life" indicator during play.

A possible approach would be to color-code a static feature of the screen, for instance the ground or, better, the score (or its background). An obvious code would be green/yellow/red for 3/2/1 lives remaining.

 

You're sure that this is required? Since it didn't fit on the screen I'm already printing the number of tries on the intermission screens.

 

That's an interesting point. It should indeed be sufficient, however I found that while playing I tend to forget how many lives are still left. :)

I guess that's because a life is basically made out of two chances (two bases), so once you lost one and consequently things start to get intense, your attention focuses on the single base and the memory page in your brain where you had stored the life numbers gets erased.

Well, Freud, I'm not - not sure whether that makes sense... :)

 

 

- play a short "requiem" jingle a the game over screen.

 

I'm not good at all at doing jingles, so here is a deal: If I get a good jingle submission from someone, I'll use it :)

 

I guess my wording gets too pompuous at times :)

A two or three tones sound would perfectly do the job actually.

Same applies to the earlier proposed "jingles": just some accoustic effect to enforce the emotion of loss (game over), alert (siren at wave begin) and relief/clearance (end of wave) ...

That should also lessen ROM headaches :)

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