Jump to content
IGNORED

Minotaur (was TankMaze) (homebrew WIP)


vdub_bobby

Recommended Posts

UPDATES:

  • Bug fixes:
    • Routine that kills all tanks within small radius when you shoot a powerup
    • Endless score-increase loop if you press RESET/SELECT while getting the end-of-level brick bonus
    • Various minor logic bugs in the number of points you get for killing a tank (more on this below)
    • Scanline count steady at 262 lines/frame.  This was accomplished by some optimizations and also by skipping the sound subroutine if there isn't enough time for it, which I think only occurs when you shoot a powerup, and so is unnoticeable since a long explosion plays at the same time
  • Various optimizations
  • Revamped powerup icon animation.  Appreciate thoughts (and improvements? :D)
  • Power-up logic update: random counter set at the beginning of the level between 1 and 7.  Killing that many tanks (minus one) will produce a power-up.  Dying resets the counter to the max (7).
  • Similarly, the bonus for killing consecutive tanks without dying also resets after you die but can be built back up.  
  • Lots of fiddling with point amounts.  Currently: 100 for killing a tank + 75-pt bonus for each consecutive tank killed without dying, capped at 8x.
  • Some very minor fiddling with the enemy tank AI routines, basically switched which tanks have which routine and varied their speeds and respawn rates to match.  Current:
    • "PinkyBlinky" is tank 3 (right at level start) and moves slowest but respawns immediately
    • "Clyde" is tank 2 (middle at level start) and has medium speed and medium respawn rate
    • "BlinkyPinky" is tank 1 (left at level start) and has fastest speed and slowest respawn rate
  • Update to enemy tank firing routine so the same tank doesn't fire consecutively (sort of).  Not really noticeable until level 10+, not sure if this really works the way I want.

Feedback welcome!  Thanks for playing :)

Minotaur.asm Minotaur.bin

Edited by vdub_bobby
Goofed up which AI tank is which, corrected.
  • Like 5
Link to comment
Share on other sites

UPDATES:

  • Changed logic for where enemy tanks respawn.
  • Fixed logic (finally!) that is supposed to prevent enemy tanks from running into each other.
  • Numerous fixes to enemy tank shooting logic and routine.  Tanks now shoot much more often :evil: 
  • Relatedly, fiddled with initial difficulty and ramp-up and I am now much happier with it.  It might be too difficult now, too soon. 
  • A while back I put in a delay before the player tank respawns that got longer the more you died.  I added a graphical indicator of this delay so it didn't seem like the game was broken.  😆
  • Changes to how console switches are handled:
    • At the title screen, SELECT switches the starting level (between 1, 5, and 10).  During gameplay, SELECT is ignored.
    • At the title screen, RESET starts a game at the indicated level.  During a game, pressing RESET starts a new game at level 1.  (Pressing the joystick trigger at the title screen will also start a game at the selected level.)
    • At the title screen (only), the left (P0) difficulty switch is read: B enables power-ups during game play, A disables them.  Whatever is selected will be used for the duration of the game; the selection can't be changed until the game ends and returns you to the title screen.  If power-ups are enabled, the score is displayed in green; if they are disabled the score is displayed in very light gray.  The title screen also will display which is selected if you wait until the music kicks in.

Feel like I'm getting very close now.  Two biggest remaining features/improvements left on my list are (1) improving the music (I have about a page of ROM left in bank 0) and (2) fiddling with the tank colors.  On an Atari w/ TV the flickered/blended colors look pretty different from on an emulator (read: some combinations are unspeakably hideous).  

 

Other than that, a lot of playtesting and bug finding/killing.  

 

Thanks for playing and reading; all feedback is appreciated. :)

 

Minotaur.asm Minotaur.bin

  • Like 4
Link to comment
Share on other sites

ZeroPage Homebrew is playing Minotaur on tomorrow's ZPH stream LIVE on Twitch! Hope you can join us in the chat!

 

Games:

 

Link to comment
Share on other sites

On 11/30/2023 at 2:15 PM, vdub_bobby said:

UPDATES:

  • Changed logic for where enemy tanks respawn.
  • Fixed logic (finally!) that is supposed to prevent enemy tanks from running into each other.
  • Numerous fixes to enemy tank shooting logic and routine.  Tanks now shoot much more often :evil: 
  • Relatedly, fiddled with initial difficulty and ramp-up and I am now much happier with it.  It might be too difficult now, too soon. 
  • A while back I put in a delay before the player tank respawns that got longer the more you died.  I added a graphical indicator of this delay so it didn't seem like the game was broken.  😆
  • Changes to how console switches are handled:
    • At the title screen, SELECT switches the starting level (between 1, 5, and 10).  During gameplay, SELECT is ignored.
    • At the title screen, RESET starts a game at the indicated level.  During a game, pressing RESET starts a new game at level 1.  (Pressing the joystick trigger at the title screen will also start a game at the selected level.)
    • At the title screen (only), the left (P0) difficulty switch is read: B enables power-ups during game play, A disables them.  Whatever is selected will be used for the duration of the game; the selection can't be changed until the game ends and returns you to the title screen.  If power-ups are enabled, the score is displayed in green; if they are disabled the score is displayed in very light gray.  The title screen also will display which is selected if you wait until the music kicks in.

Feel like I'm getting very close now.  Two biggest remaining features/improvements left on my list are (1) improving the music (I have about a page of ROM left in bank 0) and (2) fiddling with the tank colors.  On an Atari w/ TV the flickered/blended colors look pretty different from on an emulator (read: some combinations are unspeakably hideous).  

 

Other than that, a lot of playtesting and bug finding/killing.  

 

Thanks for playing and reading; all feedback is appreciated. :)

 

Minotaur.asm 204.13 kB · 4 downloads Minotaur.bin 8 kB · 18 downloads

You've made great strides on this.  Minotaur is an exciting game!  I enjoy how you often have to plan ahead, because of how your tank moves.  It's cool that unlike so many of the games it is patterned after, the enemy tanks don't often go straight for your base.  On my last game, I was one space away from sacrificing my tank on level 15(is that the number at the bottom?  or is that the number of tanks destroyed?) when the tank I was pursuing fired right in front of me,  through the space that a previous tank had cleared.  Dang it.😀

Link to comment
Share on other sites

Just saw @ZeroPage Homebrew's post above, so here's the latest binary.  Not a lot of changes, but a few:

UPDATES:

  • Title screen music is now two channels.  The harmonies need work, but it's a start :)
  • Slight changes to tank colors.
  • Changed enemy tank shooting logic; they now will only shoot towards the base if they are on the bottom half of the screen.
  • Optimized the routine that prevents tanks from driving through walls so it is faster, which I think/hope finally fixes all screen rolling/jumping issues.
  • Lots of subtle changes to how the difficulty increases, which are probably not individually very noticeable, but hopefully add up to a smooth ramping up of difficulty.
  • Various minor bug fixes.

Thanks for playing!

 

Minotaur.asm Minotaur.bin

  • Like 3
Link to comment
Share on other sites

On 12/5/2023 at 3:42 PM, ZeroPage Homebrew said:

 

Thanks Bob! Looking forward to playing it tonight on the show!

 

- James

Just finished watching the video on YouTube; and thanks - the feedback and watching people play the game is amazingly helpful :) 

 

My main notes: 

  • Screen rolls are way more frequent than I thought, I need to do a lot of work in the collision routine to optimize
  • I knew that occasionally bullets would appear to hit a tank but the collision wouldn't register.  I thought/hoped it was rare enough to be acceptable.  After watching it happen to you guys a few times, it seems clear I need to tighten that up.
  • Difficulty seems ok (though I'll probably keep fiddling with it)
  • I'll see if I can make all game options accessible with the joystick, though we'll see.  I think for sure I'll make it possible to select your starting level with the joystick.
  • Right now you can't shoot tanks that are partially on the screen (just entering the screen), which is by design - but I'm rethinking that, it almost seems like a bug when it happens.  

 

Thanks again!

 

To answer a question that came up: the level # on the bottom is drawn with the missiles, which is why (a) the font is different from the score font and (b) why there are no "holes" in any of the digits.  :D 

Edited by vdub_bobby
  • Thanks 1
Link to comment
Share on other sites

  • 2 weeks later...

UPDATES:

  • Updated Title Screen music
  • I believe all screen rolling/jitter has been eliminated (pinky swear!), though I need to do more testing to confirm.
  • Updated powerup icon animation (thanks @Nathan Strum!)
  • Reworked the game variation code.  Now there are 8 variations and they can be cycled through with the SELECT switch at the title screen:
    • 1: power-ups enabled, starting level 1, standard mazes
    • 2: power-ups disabled, starting level 1, standard mazes
    • 3: power-ups enabled, starting level 10, standard mazes
    • 4: power-ups disabled, starting level 10, standard mazes
    • 5: power-ups enabled, starting level 1, random mazes
    • 6: power-ups disabled, starting level 1, random mazes
    • 7: power-ups enabled, starting level 10, random mazes
    • 8: power-ups disabled, starting level 10, random mazes
  • Added maze indicator on title screen to indicate whether standard or random mazes are selected.
  • Lots of back-end optimizations that shouldn't (!) be noticeable

 

Minotaur.asm Minotaur.bin

  • Like 3
Link to comment
Share on other sites

  • 2 weeks later...

UPDATES IN THE NEW YEAR:

  • Bug fixed in power-up explosion routine
  • Change to console switch handling:
    • pressing SELECT at any time will update the game variation and take you to the title screen if you aren't there already
    • RESET will restart the game with the current variation at any time
  • Can also change game variations at the title screen with the joystick (U/D to increase/decrease)
  • Game variation # will be displayed in place of the score when the game variation is changed
  • Changed bullet-to-tank collision handling to use software routines rather than the hardware routines.  Collisions are detected much more reliably now, but ...
  • This reintroduced some jitter and screen rolling :(, which I mitigated somewhat but still needs more work

Minotaur.bin Minotaur.asm

  • Like 5
Link to comment
Share on other sites

On 1/6/2024 at 8:46 AM, CrazyChris said:

I like tank games. :thumbsup:

Me too!  😂

 

UPDATES:

  • Most noticeable: I changed the enemy tank graphics pretty drastically.  This was *mostly* to make collision detection work better (see below) but also to differentiate them from the player tank.  I really like how they turned out, but interested in others' feedback. :)
  • Also changed the power-up icon graphic slightly (made it bigger, and added forehead/bulge).  This was also mostly to make collision detection work better; I am less pleased with this change but it turned out OK I think (thanks again to @Nathan Strum for giving me a great animation starting point) :) 
  • Bug fixes to how the SELECT switch is handled and the code that changed the game variations in particular.  Now things should be much more consistent.
  • Changed (slowed) vertical speed of bullets so they match the apparent horizontal speed.
  • Lots of optimizations, mostly for execution speed.
  • Biggest change under the hood is, after a lot of optimizations and cycle counting I realized that it just wasn't going to happen - 100% software collision detection between 4 bullets and 4 tanks was never going to be fast enough.  So I switched (back) to hardware collision detection between bullets (ball) and tanks (players/missiles).  This required the graphic redesigns mentioned above so that bullets would not 'pass through' tanks or the power-up icon.   I think with the graphic changes and slowing down the bullets' vertical speed, that 'pass through' should almost never happen.  🤞
  • This should (????) have completely eliminated any jitter or screen rolling, though I haven't thoroughly tested this yet.

Minotaur.bin Minotaur.asm

  • Like 4
Link to comment
Share on other sites

(MINOR) UPDATES:

  • Updated the icon for standard mazes. 
  • Also updated the icon for random mazes, now animated!
  • Some bug fixes:
    • Fixed transitional bug in the music routine that played an odd tone when a new level started
    • Fixed bug where shooting a power-up icon could "kill" an offscreen tank that was waiting to respawn
    • Fixed maze generation routine so it wouldn't trap enemy tanks in the top row

 

Minotaur.asm Minotaur.bin

  • Like 3
Link to comment
Share on other sites

UPDATE:

  • Worked on colors for the tanks.  I'm more or less happy with what I came up with, though still need to test it on real hardware and confirm it looks ok.
  • Changes to the scoring bonuses for killing tanks.  Old method was complicated; new method:
    • 100 points for killing a tank
    • +75 points for every consecutive tank that you kill without dying
    • This applies to tanks killed by getting the second power-up and to tanks killed by shooting a power-up
  • Some minor bug fixes:
    • Now tanks move on screen the same frame they are respawned; previously they waited four frames which meant they could be killed (via power-up explosion) while completely off screen.  Now at least one row/column of pixels will be visible. :D
    • Minor graphic glitch with drawing missile 1 in the left most column of the maze on the bottom row has been fixed; the write to ENAM1 was happening 1 cycle too late.  

I've been doing a fair amount of stress testing to see if I get any jitters or screen rolls and haven't seen any and so I am cautiously pronouncing victory on that point.  And so, barring any last-minute bugs or further color/sound tweaking, I think this is the final (NTSC) version.  I'm not sure when it will have its official release, so I'll continue testing (and I still welcome feedback!) and fixing anything that comes up.  I have a few bits of RAM free and about 80 scattered bytes of ROM free, so there's a little room for additional tweaking, so if you have any suggestions, let me know.  ;) 

 

Quick question - I am planning to make a PAL60 version.  Is there any reason to create a PAL (50Hz) ROM? 

 

EDIT: Added first crack at a PAL60 version.   Screenshot comparison:

NTSC

image.thumb.png.245e2e926f0e4b34e2167ab2e3333b24.png

 

PAL60

image.thumb.png.c149ee4ef78206b77bb5fc1870fbb03f.png

 

 

Minotaur.bin Minotaur.asm

Minotaur_PAL60.bin

Edited by vdub_bobby
  • Like 3
  • Thanks 1
Link to comment
Share on other sites

MINOR UPDATES:

  • Fixed scoring bug; the bonus for number of consecutive kills wasn't resetting between levels.
  • Added a hard-coded "city block" maze for levels that end in "5" (i.e., level 5, level 15, etc.)

 image.thumb.png.46cfc30734b3370ab7918250e35757f1.png

I'd love feedback on difficulty.  I feel like it starts well and ramps up nicely, but I have played it a lot. :D 

Minotaur.bin Minotaur_PAL60.bin Minotaur.asm

  • Like 3
Link to comment
Share on other sites

On 1/26/2024 at 10:33 AM, Bomberman94 said:

Here‘s a screenshot of the „PAL60 Wednesday version“ - plays and looks great! Just a small thing: in the title screen the green tank should be animated (but is not). 
 

 

 

Thanks for the feedback, I'll take a look at this. ❤️

 

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