Jump to content
IGNORED

Draconian (2600)


SpiceWare

Recommended Posts

Small update - after a bunch of play testing I revised the I-Type and P-Type Missiles to have a slower ramp-up as the later levels were way too difficult.

 

In the prior build the speedup formula was this:

gEnemySpeed     = 80 + 20 * MM_LEVEL + s * 5;

In the current build the formula is:

gEnemySpeed     = 80 + 20 * MM_LEVEL + s * 3;

MM_LEVEL = 0 for KIDS, 1 for Easy, 2 for Normal and 3 for Hard

 

s = sector - 1, so if you're on sector 3 then s = 2. Additionally, s maxes out at 31, so selecting Sector 32-256 are all at the maximum speed.

 

For reference, the speed of the Star Fighter is 128, so if the Enemy Speed is 80 the missiles move slower than the player, while if it's 140 they move faster. As such, the * 3 means the enemy speed currently increases by 3/128 per sector.

 

Let me know what you think of the change, I might split the difference and make the last part s * 4.

 

Also note that this is the ROM to use for your contest entry!

 

For Harmony or Stella (requires Stella 5.0.0 or newer)

draconian_20170929.bin

  • Like 3
Link to comment
Share on other sites

Revised the startup sequence to:

  • show SECTOR # during new game tune OR an initial 2 second delay
  • show SCORE/RADAR/LIVES while saying "Blast Off!" (gives you time to get your bearings)
  • when done speaking the ship starts to move
also fixed a few minor bugs and cosmetic issues. See blog entry for details.

 

There's an interesting sector experiment in ∆-1

 

For Harmony or Stella (requires Stella 5.0.0 or newer)

draconian_20171001.bin

  • Like 1
Link to comment
Share on other sites

This is one of only a few 2600 games that my son will play. He recently saw me playing this and wanted to try to beat my score. He's playing Jr. Pac Man right now. He also liked Ladybug. Darryl, I just recently downloaded this and after seeing Quadrun talk with the screen blanked out, I am amazed to hear the talking in this while I am playing. Looking forward to a cart release. Awesome work!!

Link to comment
Share on other sites

One of the final things on the To Do list is a collision detection glitch that Nathan encountered at the end of August - P-Type on the left was hit, but not destroyed:

post-3056-0-61315000-1507123727_thumb.png

 

but I hadn't encountered it myself until last night while play testing the new Epsilon Quadrant. I saw it on hardware, so no screen shot of that.

 

I reviewed the routines this morning and suspect I know what's going on. There's a array gSpriteState[#] that uses bits to keep track of info about each sprite. The routines check for specific SPrite States:

  • MissileCollisions() tests for SPS_DEADLY_TO_PLAYER
  • MoveEnemyShips() tests for SPS_ENEMYSHIP
  • MoveFormation() tests for SPS_DEADLY_TO_PLAYER
  • MoveSpyShip() tests for SPS_DEADLY_TO_PLAYER
When an enemy ship (the I-Type and P-Type missiles) are created the state is set to this:

 

 gSpriteState[index]    = SPS_DEADLY_TO_PLAYER | SPS_ENEMYSHIP | dir;

where dir is the direction the ship is traveling. I think that somehow SPS_DEADLY_TO_PLAYER is getting cleared (as that would disable collision detection) while SPS_ENEMYSHIP stays set(which means the ships would move like normal). To test this theory I've added this bit of code at the end of MoveEnemyShips()

 

       if ((gSpriteState[i] & SPS_DEADLY_TO_PLAYER) == 0)
          gSpriteColor[i] = gObjectColors[COLOR_SHIP];

What that will do is change the color of the enemy ship to white if SPS_DEADLY_TO_PLAYER was cleared.

 

I've played a few rounds since making the change, but haven't seen any white ships yet. Not surprising though as it's taken about a month since Nathan reported the issue for me to encounter it. As such, I need lots of people to test this and see if they spot any white ships! The lots of people is why this technical update is in the homebrew topic instead of my blog.

 

Additionally, this build has the test of the Epsilon Quadrant which generates random station layouts for each sector. I still need to put in the final sound effects but am hopefully this will also make it to the final build.

 

For Harmony or Stella (requires Stella 5.0.0 or newer)

draconian_20171004.bin

  • Like 8
Link to comment
Share on other sites

I have to say I'm simply baffled by the speed you adapt this.

I knew before that I'm a rather good coder, but I suck a writing and designing games (and yes, levels). But I did know how much I suck at it :-)

  • Like 1
Link to comment
Share on other sites

I have to say I'm simply baffled by the speed you adapt this.

I don't know about that - initial build was back in 2014 ;)

 

I knew before that I'm a rather good coder, but I suck a writing and designing games (and yes, levels). But I did know how much I suck at it :-)

Haven't designed much - this is my third arcade port and Stay Frosty was Nathan's idea. Nathan also created the A, B, and most of Γ, sectors in Draconian.

  • Like 1
Link to comment
Share on other sites

We're out hunting for the white ship this evening. Is there any one level where it is more likely to show up?

Hard to say, I've only encountered the problem once and have been on the lookout for it since Nathan reported it back in August. I don't even know if I've identified what's wrong, so it's possible nobody will encounter a white ship.

 

If we do then I know the problem, but still don't know what's causing it. So far this evening I've reviewed all instances of SPS_DEADLY_TO_PLAYER to see if anything was done incorrectly with the flag. This sets it:

gSpriteState[index] |= SPS_DEADLY_TO_PLAYER;

while this clears it:

gSpriteState[index] &= ~SPS_DEADLY_TO_PLAYER;

Everything looked as expected, so now I need to review every instance of gSpriteState, of which there are 131, to see if something's being done that might case the problem.

  • Like 1
Link to comment
Share on other sites

Grumpf, the "not" was missing in "But I didn't know how much I suck at it :-)" - my favorite typo right after "now" instead of "not". Hey, I'm German, that's a valid excuse.

 

 

initial build was back in 2014

 

OK, totally missed that. I found this only after Bosconian was released for the 8-bit this year. So I stand corrected it is: ".... speed and patience" :-)

  • Like 1
Link to comment
Share on other sites

OK, totally missed that. I found this only after Bosconian was released for the 8-bit this year. So I stand corrected it is: ".... speed and patience" :-)

 

 

There was, of course, a huge detour due to BUS then CDF, then an additional 2 month delay due to improvements to CDF such as the new FastJump feature whereby JMP $0000 is overridden by the CDF driver which saves 10 cycles per scanline.

  • Like 1
Link to comment
Share on other sites

You could leave in the code that turns it white even if nobody runs across the ship, that way it turns a bug into a feature!! Beware the indestructible white ship!!

 


Hard to say, I've only encountered the problem once and have been on the lookout for it since Nathan reported it back in August. I don't even know if I've identified what's wrong, so it's possible nobody will encounter a white ship.

Link to comment
Share on other sites

You could leave in the code that turns it white even if nobody runs across the ship, that way it turns a bug into a feature!! Beware the indestructible white ship!!

 

I like the idea of indestructible enemies, as long as they don't hang around and harass you. You should award a huge point bonus for kamakazi one of the things! :D

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

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