Jump to content





Star Castle Brainstorming

Posted by cd-w, 20 January 2012 · 1,064 views

Here is another minor update to Star Castle:
  • The rings can now move at variable speeds - I have slowed them down a bit in this version.
  • The ring segment now disappear immediately when they are hit.
  • The rings will regenerate when the outer ring is removed.
  • The gun will fire projectiles at you when the inner ring is breached.
Attached Image

The big question now is how closely the 2600 version should match the arcade version. There are two sticking points, where I think it might be better to deviate slightly:
  • In the arcade version, the ring segments take 2 hits to be destroyed. After the first hit, the ring segment increases in brightness to indicate that it has been hit. Unfortunately this effect isn't possible on the 2600. As a result, I am thinking that it might be better to remove the ring segments after a single hit. Otherwise the player is going to have difficult remembering which segments have already been hit, and it may make the collision detection appear flawed if nothing (visible) happens when a ring is hit. This will naturally simplify the gameplay a bit, but I think this may be offset by the second change.
  • In the arcade version there can be 3 bullets on-screen at the same time (fired from the ship). However, in the 2600 version there can currently only be one. Increasing this number means that far more collision detection operations will be required. This can be handled by making the collision detection less precise (e.g. by checking the bullets on alternate frames). However, I'd prefer to keep the collision detection as accurate as possible as poor collision detection can really ruin a game. Having only 1 bullet on screen makes the game slightly more difficult, since the player will need to conserve bullets to deal with approaching mines.
I think this increase in difficulty in 2) may offset the decrease in difficulty in 1). However, these changes do take the game away from being arcade perfect. Some compromises are going to be necessary, as they were when I programmed Juno First, but I want to keep the underlying gameplay intact. Let me know if you think these changes are too much, or if you think they are acceptable?

Thanks,
Chris

Attached File  starkernel7.bin (12KB)
downloads: 94
Attached File  starkernel7.zip (31.6KB)
downloads: 71

EDIT: Here is a version where each ring segment takes 2 hits to destroy:
Attached File  starkernel7_twohits.bin (12KB)
downloads: 80

EDIT2: Here is a version that changes the segments to dots after the first hit:
Attached File  starkernel7_dotted.bin (12KB)
downloads: 78




To make up for the double hits, you could also make the segments smaller.

I wouldn't limit the shots too much, since that might make the gameplay too static. Maybe you have to switch to software detection.
  • Report
Interesting idea, but I don't think it will be workable as it doubles the number of rotation calculations and collision zones.
  • Report
I don't remember what happens with the arcade version, but I would like it if there is no screen flash when you get shot or when you shoot the thing in the middle. I'd rather have the object that has been shot flash instead of the screen.

I can't play the normal, un-hacked version of Beamrider for the same reason. The whole screen flashing bothers my eyes.
  • Report
I think both elements are important to keep, if at all possible. They contribute to the "feel" of Star Castle. You get into a rhythm playing it - zipping in, firing off a burst of shots, zipping out. With the current binary, that's missing.

I don't think it's critical to be able to see which ring segments have already been hit - the player could just play by assuming they've already been hit once, and be pleasantly surprised to find out otherwise. ;) I just played it in MAME with the gamma cranked up so the dim and bright sections effectively looked the same, and I didn't think it had much of an impact. (But then, I'm not a very good player, either.)

Multiple shots would really help when trying to shoot the little sparky things that follow you around, since you often use the first shot to aim, and the second shot to hit (see for example - shooting saucers in 2600 Asteroids). Plus the aforementioned bursts of shots - especially when shooting from any distance at the rings. At least two shots are critical. Three would be ideal.

Maybe playing one shot/one hit could be a difficulty switch option?

A couple of other notes:
  • The center ship tracks you too fast at the moment. It appears in the arcade game that it starts out slower, and then gets faster as the game progresses.
  • The player's shots should wrap around when going off-screen. This is part of a different strategy where you camp out in the corners, and shoot from the opposite direction at the rings. Then when the sparky things come after you, you just tap thrust to move across the screen border. (They won't follow you off screen, and have to turn around and go all the way across to get you.)
  • Report
If there can only be one shot on screen at a time perhaps you could make the shots go twice as fast to compensate. Or maybe faster shots could be a difficulty switch option.
  • Report
I think as the game progresses, the sparks are able to follow you past the edge of the screen... maybe there's a difficulty setting in the arcade game??
  • Report
OK, it seems like these changes are not going to be popular!

I have now attached a binary to the top where each segment takes 2 hits to destroy. I think this illustrates my point nicely. Since you can't see the segments rotating nothing appears to happen at first, and then it seems random whether segments are removed or not.

In answer to the other points:
  • There will be no screen flashes in the final game - I also find them very annoying
  • I intend to make the bullets and sparks wrap around the screen edges
  • I'm going to revisit having multiple shots on screen
  • Report
Why not make the rings double in width when they need two hits to destroy and make them look like they look like now when they only need one hit?
  • Report
How about flickering the rings that have been hit once? On the first frame display all ring segments that have had 0 or 1 hits. On alternate frames you'd remove the segments that have been hit once from the displayed bitmap. This would have the effect of dimming them slightly. Its the reverse of the arcade but it'd give you the desired visual cues.
  • Report

OK, it seems like these changes are not going to be popular! I have now attached a binary to the top where each segment takes 2 hits to destroy. I think this illustrates my point nicely. Since you can't see the segments rotating nothing appears to happen at first, and then it seems random whether segments are removed or not.


Yeah... that is weird.

What about when a segment is hit the second time, only alternate scanlines are displayed? (For segments running across the top of the ring, it would need to be every other pixel).

Not hit:

Posted Image

Hit once:

Posted Image

Not sure what that would do to collision detection though.
  • Report
Thanks for all the suggestions. I'll need to have a good long think now to see if any of them are possible.
  • Report

Yeah... that is weird.What about when a segment is hit the second time, only alternate scanlines are displayed? (For segments running across the top of the ring, it would need to be every other pixel)


I managed to do a rough implementation of this idea (see starkernel7_dotted.bin at the top). However, I think the dots are rather visually confusing, particularly on the smaller rings. It works OK when there are just a few dotted segments, but when there are lots it just ends up a flickering mass of dots. Let me know what you think?

Chris
  • Report
That looks pretty good, and definitely gets the point across, but it seems that when you shoot a dotted segment it doesn't disappear immediately - it sort of scrolls off, if that makes sense.

As for the mass of flickering dots look - maybe flickering between dotted and non-dotted for segments that have been hit would look better? Then they'd be partially-flickering. Or rather, half of the dots would. At any rate, I think the dotted version is working pretty well as a starting point.
  • Report

That looks pretty good, and definitely gets the point across, but it seems that when you shoot a dotted segment it doesn't disappear immediately - it sort of scrolls off, if that makes sense.As for the mass of flickering dots look - maybe flickering between dotted and non-dotted for segments that have been hit would look better? Then they'd be partially-flickering. Or rather, half of the dots would. At any rate, I think the dotted version is working pretty well as a starting point.


OK, the dotted version is starting to grow on me. I think I'm going to make this an option with the difficulty switch: Beginner - 1 shot segments, Advanced - 2 shot segments (with dots).

The scrolling-off of the segments is because this was a quick hack. I'll modify it so the segment disappears immediately in the next version. Unfortunately, flashing the dotted segments isn't really possible.

Chris
  • Report
Instead of a dotted version of a dotted segment, you could flash (off/on) the segment when hit. That would give the player feedback that he really hit it.

And the already hit segment could continue to blink (e.g. ~twice a second, 66% on, 33% of).
  • Report
I should explain a bit more about how the rings are drawn. The extra RAM+ memory is used as a frame buffer for the rings. Rather than redrawing every frame, the previous frame is modified to produce the next frame. Each ring requires just 12 pixels to be updated (one for each segment). This means that only 36 pixels need to be updated per frame, which fits nicely into the overscan region.

The problem with flashing the rings is that it basically requires all of the ring segments to be redrawn every frame.
This would require 108+84+60=252 pixel updates and unfortunately there isn't nearly enough time to do this without completely changing the approach that I use, e.g. making bitmaps for all the available ring positions.

Chris
  • Report
36 pixels only? Don't you have to switch off 1 pixel and switch on another one? Or do you do that in different frames?

No chance for updating 2 pixel/segment and frame? Then you could animate the segment instead of letting it blink.

Or you animate the ring while it moves. You do not enable (all) pixels for some degrees.
  • Report
Looks and feels great!
I love that the shields are different colors and how your shields regenerate.
Very nice.
  • Report
Personally, I don't mind the one hit ring segments plus one bullet one screen at the same time. An Arcade perfect version would be cool, but so would a variation on the game. If it can't be arcade perfect, may as well add a little bit of your own spin on it if possible.
  • Report
Thanks - I've now posted an update with 2 bullets and dotted ring segments.
  • Report

December 2014

S M T W T F S
 123456
78910111213
1415161718 19 20
21222324252627
28293031   

Recent Entries

Recent Comments

Search My Blog