Jump to content
Revontuli

Dragon's Descent - Action/Roguelike for the 7800 (ported from the 2600)

Recommended Posts

Under 'real hardware' thanks to MCP DevCart...

 

-Dragon got stuck entering a room in Level 3. (I'll have a video up likely tomorrow for this).  Had to get hit by the enemy to reappear elsewhere.

 

-Level 8 towards middle, I'm taking too much time. The screen flashing black throughout and my dragon is getting hit pretty regularly.  Last room I enter before my death, I die pretty much instantly, the game is over.  However, the screen is presented different like a game "conquered" screen showing cast members one by one and "Thanks For Playing" message.  Not sure that was intended or what happened/I did to deserve that. 

 

-High Score entry with a player score of '0'.  Entry overwrites existing '0' 'AAA' entry.

 

-Music still plays when game paused.

 

Can't state I noticed any collision, and not any instances I would consider stuck (Outside of the above Level 3 mention), but maybe that's just my interpretation of the gameplay. 

 

What I did experience and may be considered a 'sticking situation' is if I go plowing into middle of the room 'border' object at full speed; but I took that more a penalty for reckless movement.  Not so much for the picture type obstacles, but state line a square or rectangle in the middle of the room.  Plowing into that full speed, sometimes, may take more than one press of the joystick to move away from it.

 

I'll have to do comparisons with A7800 emulator, but off the bat, I didn't feel overall difference in gameplay from the last beta, where I was almost nearly all via emulation.

 

Just have to emphasize again how well done the is game is and the music/melody is a pleasure to listen to throughout.  Sound effects are well chosen to and of course the graphics are a blast.

 

Plain binary for those with a Cuttle Cart or MCP Dev Cart (*.BIN) & Mateos Multi-Cart Format (*.48K), attached for those in need. 

 

Dragon's Descent (20200103).BINDragon's Descent (20200103).48K

 

Share this post


Link to post
Share on other sites

Thanks for the test run, Trebor!  Some responses to your observations...

2 hours ago, Trebor said:

-Level 8 towards middle, I'm taking too much time. The screen flashing black throughout and my dragon is getting hit pretty regularly.  Last room I enter before my death, I die pretty much instantly, the game is over.  However, the screen is presented different like a game "conquered" screen showing cast members one by one and "Thanks For Playing" message.  Not sure that was intended or what happened/I did to deserve that. 

Post-level 7 your main enemies are time (darkness, etc.) and limited ammo.  In the darkness I  usually just try to shoot once or twice per room to see where the enemy/walls are, and then maneuver in the dark.  That's even necessary if you want to maintain powerful fire breath, as you run out of ammo quickly otherwise.  I wanted a player to be careful, even with a fully powered up dragon and non-lethal walls.  The strategy shifts from "gain power" to "keep power" - it's possible, but still a challenge.  I didn't want a player to stop playing simply because they were too powerful to be defeated!

 

The "conquered" screen/credits appear if you've defeated the main boss in any mode - my current thinking is that if you can beat level 7, even on infinite mode, you deserve the end credits. You fought at least as hard as someone in the "Seven Levels" mode :) 

2 hours ago, Trebor said:

-High Score entry with a player score of '0'.  Entry overwrites existing '0' 'AAA' entry.

The high score system is based off of the high score module in 7800Basic - a lot of what it does is preset (I tell it to "handle the high scores" and it does its own thing for the most part) and it is meant to work with hardware peripherals that save scores, so I'm not sure what its "expected behavior" is for instances like this.  I'm letting the module run more or less as written for the moment - I admit the behavior you saw is a little odd, but not unprecedented for some games I've seen.

 

2 hours ago, Trebor said:

-Dragon got stuck entering a room in Level 3. (I'll have a video up likely tomorrow for this).  Had to get hit by the enemy to reappear elsewhere.

Grr...This main bug I've been hunting - I've had this happen as well 👿  I think I have a plan to fix this.  The biggest issue is in treasure rooms where you *can't* get hit by an enemy, so you have a bona fide "hard reset to fix" bug.  I'm still trying to find a way to reproduce this consistently so I can better fix the bug, but, scarily, I think this can occur on any room border if you move the (in)correct way.

 

2 hours ago, Trebor said:

Just have to emphasize again how well done the is game is and the music/melody is a pleasure to listen to throughout.  Sound effects are well chosen to and of course the graphics are a blast.

Thank you, and thank you for testing!  Even if I was testing on hardware myself, more people playing = better bug hunting and playtesting.  Cartridges are hard to patch, so I want to make sure I can get as good a build as I can.

Share this post


Link to post
Share on other sites
7 hours ago, Revontuli said:

Can you remember which rooms (for instance, what shape they are) and where in them specifically you get stuck?  If you can message me screenshots or pictures of where, that would also help - thank you!

Unfortunately not....but the roons,i got stuck,were not the treasure rooms.And i did not get stuck,always at the same place.

Share this post


Link to post
Share on other sites
1 minute ago, gambler172 said:

Unfortunately not....but the roons,i got stuck,were not the treasure rooms.And i did not get stuck,always at the same place.

 

3 hours ago, Trebor said:

What I did experience and may be considered a 'sticking situation' is if I go plowing into middle of the room 'border' object at full speed; but I took that more a penalty for reckless movement.

There are instances were you might "stick" to a wall, but can move out of it by moving in an opposite direction.   I might live with that behavior if it doesn't invite other buggy issues - and it's not as bad as some cases where the player might get properly "trapped" in a wall and can't get out, no matter how much they thrash the joystick.  *This* behavior is the main bug I'm trying to hunt down - it can lead to pretty much broken game where you'll need to reset.  It's relatively rare to happen, although it's one of those cases where I never had it happen, and a friend of mine found it in 5 minutes of play, so I'm trying to see if I can reproduce it consistently.  I'm pretty sure it can happen on any level, but mainly on the room borders, or in specific room types.  This can occur in emulation, so I'm hunting it down myself as well.

 

Thanks for everyone's help!

Share this post


Link to post
Share on other sites

Hi Revontuli

 

just played some more time.....Now i got stuck in level 1....and luckily.i could make a photo.My dragon got stuck and i could not move him anymore.IMG_20200119_094029.thumb.jpg.b3870a56ba91fbfee8eb4a0aa761fb52.jpg

Share this post


Link to post
Share on other sites
17 hours ago, Trebor said:

Under 'real hardware' thanks to MCP DevCart...

-Dragon got stuck entering a room in Level 3. (I'll have a video up likely tomorrow for this).  Had to get hit by the enemy to reappear elsewhere.

As promised below is the Level 03 stuck video.  You'll notice it is in B&W to start as the game was paused after I encountered the issue. 

 

Then I grabbed my phone and started recording. Apologies though, I thought I recorded a longer clip, but evidently stopped sooner.  A consequence of one handed recording while playing with the other hand. 

 

 

 

Took a snapshot prior to recording too:

 

1821013756_DD20200103-LVL03-StuckInWallExiting.thumb.JPG.104f0e416832e6406b58638537d9d09a.JPG

 

Moved to emulation via A7800 and had a 'stuck issue' occurred there too.  This time, instead of happening when I entered a room (As was the circumstances above - despite the direction the dragon is facing), this took place while trying to exit a room.  The dragon is not visible, still being flagged as present in the current room despite what looks to have been a clear pass of the exit on the right.  This occurred right on Level 01 captured on video below...

 

 

I don't recall the sticking/trapping while approaching straight vertical or horizontal, always on a diagonal.

 

To rectify the above two problematic scenarios and others, perhaps the border/divide for what is determined for exiting a room can be tripped/flagged traversed sooner, as well as modifying the dragon's initial placement at the start of a room. 

 

Maybe even as soon as (or even sooner than), the dragon's nose, top head, tail, or bottom is over the surrounding walls borderline, the game determines the Dragon has left the room.  

 

Below, for example, as soon as the dragon reached the demonstrated spots, the exit of the room 'flag' should be triggered.

 

0006.png.302bd741538bc7908f551c006ed25f9c.png0005.png.64264266add446d11e6a32b2dc8a1dae.png0004.png.617c381313d0db700ee86860f17ee400.png0011.png.bce49112b9a8b2dda0684361e51c2dbe.png

 

 

Additionally, the dragon's entry/first appearance in the next room could be placed further inside as well:

 

Going from these initial room entries/appearances...

 

0009.png.94cb0cda43485916cb962f9c1f20b44f.png0007.png.1c995ed55d9fce4e3cd1c178838f4d39.png

 

 

...to appearing and being placed further inside the room to start, in front of the wall perimeter area...

 

0010.png.e18507b6e1dec12dc569b39ec1ecdf7c.png0008.png.0385e5db4d9e2e7ebed77552b36b9f9c.png

 

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Posting a new build to try:

 

DragonsDescent_1_20_2020_CollisionTest.bas.a78

 

I'm trying a slightly updated approach to collision, which I *hope* avoids getting hopelessly stuck inside a wall.  I also adjusted the border values, helped a bit by Trebor's observations.  Currently I'm focusing on the exit on the right side, as I think that's the main problem area.  Adjusting the boundary coordinates for entering/exiting rooms is actually a little harder than it sounds.

 

If you can get stuck in a wall and can't wrench yourself free, let me know...

 

Also, since the collision checks are a little more complicated, let me know if the game slows down on actual hardware - a good place to check is the midboss battle.  It isn't *much* more calculation, but I'm still very unclear how well MAME7800 simulates actual game performance.

 

Gambler172, Trebor, thanks for the screenshots and help!

 

P.S. Gambler, for the crash, can you remember if anything might have been happening?  An enemy spawning, or shooting, maybe?  It's going to be hard to track down crashes like this on hardware, but I do want to know if there's any consistency, or if it's the odd rare occurrence.

  • Like 3

Share this post


Link to post
Share on other sites

Hi Rev

 

nothing special happened at the crash...i killed the enemy and moved on... then suddenly my dragon stopped and the game crashed....i had to load it from my Concerto cart again

Share this post


Link to post
Share on other sites

Hi Rev

just played around with the newest version......no

bugs found 😁

I played for more than two hours on my Concerto cart.

Will play again tomorrow.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

I'm with Walter on this latest release.  Several playthroughs on real hardware and emulation, nothing found or experienced that was a gameplay related issue. 

 

My only 'gripe' is the credit screen after passing the second boss.  I think it is giving away a enemy (boss) I had yet to encounter in the game up to that point.  I keep meaning to write down its name; something that starts with the letter "T", I believe, is its name.

 

 

Share this post


Link to post
Share on other sites

Small note that I meant to mention sooner: "Select" and "Reset" buttons have no effect in the middle of a game.  You need to either power cycle the console off/on or "game over" to make it back to the menu/title screen.

 

Thinking:

"Reset" should start the current game over with all current game options in place.

"Select" should return the player to the menu option/title page screen.

  • Like 1

Share this post


Link to post
Share on other sites

The video posted below is a playthrough to Level 19.

 

"Jeweled One" is the enemy mentioned earlier in the cast that I have still yet to encounter in-game. 

 

I'm playing default settings and was either incredibly lucky or perhaps it's intentional, but some of the later levels seemed to be very easy to find the key and lock.  They were very close to one another as opposed to some of the earlier (single digit) levels.

 

Level 19, I thought was going to sweep by with relative ease too; however, I couldn't find the door again after discovering it prior to the key.  A few screens over from the lock, I found the key, thought I doubled back properly, but could never find the lock again - either I somehow kept missing it, or thinking maybe the lock "moves" in later levels. 

 

Watched the video and now realize the lock was replaced with a boss character after the screen starting going to (flashing) black.  Nice touch!

 

I'm pretty certain I notice a difference also with 'dead' or no (mid-)boss present on some of the later levels, but as soon as too much time was taken, traversing the same rooms, which were either completely empty or a 'sleeping' boss, became now a room with an active boss in its place.  Ups the ante sweetly there as well.

 

 

  • Like 3

Share this post


Link to post
Share on other sites
8 hours ago, Trebor said:

The video posted below is a playthrough to Level 19.

Awesome!  And impressive!

8 hours ago, Trebor said:

"Jeweled One" is the enemy mentioned earlier in the cast that I have still yet to encounter in-game.

This one is a bit of a secret/easter egg, and only shows up if certain conditions are met - some others on the boards have encountered this one.  Worth some 2000 points if you can find/defeat it!  Not so much of a spoiler as a "you beat the last boss, but are you sure you found everything?"

8 hours ago, Trebor said:

either incredibly lucky or perhaps it's intentional, but some of the later levels seemed to be very easy to find the key and lock.

A quirk of the algorithm.  I couldn't guarantee the lock and key were necessarily a challenging distance apart with the way I was generating mazes, which is one reason I have the treasure rooms.  Two important rooms close to each other can happen, but three clustered is much less of a chance.  Even if you find the lock and exit in quick succession, you might still be tempted to look for the treasure room.  You might even be desperate for one...

 

Some folks are just starting to get to this "phase" of the game (post level 7) on the 2600 version - Some might think the game is "completed" since you've faced the main boss, but it's arguably just the "tutorial" phase, where everything has been introduced, and one hasn't really experienced all the pieces working together yet.  I'm curious how folks will play once they get here, either for score or to see how far they can get into the labyrinth - there's a bit of a trade off for either strategy.

8 hours ago, Trebor said:

Watched the video and now realize the lock was replaced with a boss character after the screen starting going to (flashing) black.  Nice touch!

The bosses double as exits, and you need to defeat them to move to the next stage - but you still need the level's key to "unlock" them, otherwise they'll just be shown as exits, or a vacant head.  When you get to a level with a boss, they're the only way down...

12 hours ago, gambler172 said:

Played again yesterday.....everything ok....not

stuck in the walls 😁

As a game programmer, I very much appreciate hearing this phrase 😁

 

9 hours ago, Trebor said:

Thinking:

"Reset" should start the current game over with all current game options in place.

"Select" should return the player to the menu option/title page screen.

Makes sense - I'll either do this or something very much like it.  

 

Thanks again for playing/posting!  I'm currently splitting time between testing this game and working on Dragon's Cache, but I'll see about posting an update for this game soon-if nothing else, I want to re-re-adjust where the screen changes over at the boundaries.  Seeing that it seems to have helped fixed a lot of the collision issues, I want to make sure it both looks okay on all sides while avoiding the player getting stuck.

Edited by Revontuli
  • Like 2

Share this post


Link to post
Share on other sites

Hi Rev

 

bad news.....played again for about one hour....and the game crashed,when reaching the boss in level 7

after my first shot...the game crashed 😢

IMG_20200202_104405.thumb.jpg.f59e572000cef56387a8df9aa615e3aa.jpg

both difficulty switches were set on left side.

Edited by gambler172
  • Like 1

Share this post


Link to post
Share on other sites
19 hours ago, gambler172 said:

Hi Rev

 

bad news.....played again for about one hour....and the game crashed,when reaching the boss in level 7

after my first shot...the game crashed 😢

IMG_20200202_104405.thumb.jpg.f59e572000cef56387a8df9aa615e3aa.jpg

both difficulty switches were set on left side.

Hmm...it might be a case of too many graphics in one line or place - is there any slowdown or graphical glitching during regular gameplay, especially during boss fights?  The "worst case scenario," in terms of taxing the graphics, would be the boss, player, boss shot and player shot all existing on one line horizontally.  It seems to be ok in MAME (even MAME would show some slowdown in this scenario before I did a few optimizations), but I'm curious how it plays on a 7800.  

 

Otherwise, it's hard to say what might be wrong, if it's something in my code, a quirk in 7800Basic, or the hardware.  If this is something that can be consistently reproduced then I might be able to focus in on what might the problem might be.  Please let me know if this happens again, and try to remember what might have been happening during gameplay (that goes for anyone playing :) ) - I appreciate the testing, thank you!

Share this post


Link to post
Share on other sites

Maybe it is an issue with the level 7 boss by chance? I guess try to get that far and see if it happens again?

  • Like 1

Share this post


Link to post
Share on other sites

Too many graphics on one line wouldn't cause a full-on crash. The two possible consequences of that are either graphics not displayed in the zone, or zone graphics getting a bit corrupted. (If there isn't enough dl memory to cover the number of display objects) In either case the game would be relatively oblivious.

 

Some common causes for crashing are running out of stack (lots of nested subs), unmatched gosub/return, overwriting too much memory with out-of-bounds array access, and on...goto/gosub with a too large index.

  • Thanks 1

Share this post


Link to post
Share on other sites

Just throwing it out there, but I have yet to see any crash under NTSC (Real HW or emulation).  Walter is under PAL. 

Perhaps something is being overlooked or accounting/timing difference between the regions (?)

 

From Walter's testing, it seems to be very infrequent; though, I may try it under A7800 PAL emulation to see if I can reproduce it.

Share this post


Link to post
Share on other sites
4 hours ago, Trebor said:

Just throwing it out there, but I have yet to see any crash under NTSC (Real HW or emulation).  Walter is under PAL. 

Perhaps something is being overlooked or accounting/timing difference between the regions (?)

 

From Walter's testing, it seems to be very infrequent; though, I may try it under A7800 PAL emulation to see if I can reproduce it.

Hi Trebor

you are wrong.....i played on my NTSC system on a TV with multinorm.......

The crash happened,when i made my first shot....

directly after 1st shot....the game crashed

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, gambler172 said:

Hi Trebor

you are wrong.....i played on my NTSC system on a TV with multinorm.......

The crash happened,when i made my first shot....

directly after 1st shot....the game crashed

Thanks for the clarification, Walter.

Scratch the PAL/NTSC hypothesis then.

Share this post


Link to post
Share on other sites
Just now, Trebor said:

Thanks for the clarification, Walter.

Scratch the PAL/NTSC hypothesis then.

I try to reproduce the crash tomorrow.....more soon.

  • Thanks 1

Share this post


Link to post
Share on other sites

Following was performed under 'Real HW':

Difficulty Switches Right/Left

Game ended at...

Level 8
Level 3 Beaten by "JEWELED ONE".
Level 23 "MOLOBROS" was encountered three times in this session.  No freeze including rapidly firing (holding down button) with and without shot upgrade plus shots coming from side of screen all within the same 'row'.  Some slow down under that situation but no freeze.

 

Difficulty Switches Left/Left
Level 7 -  Beat "MOLOBROS".  5 Hearts/Life left.  Earlier in the game beat "JEWELED ONE" on Level 3.  

Performed the above twice, again no issue.

 

Slowdown overall observations:
When facing another dragon, and especially if I am continuously firing, there may be some slowdown when enemy dragon and I are simultaneously firing at each other.

I do not experience any noticeable slow down when encountering Janus though, despite my rapid firing and Janus' firing as well.

  • Thanks 1

Share this post


Link to post
Share on other sites
16 hours ago, RevEng said:

Too many graphics on one line wouldn't cause a full-on crash. The two possible consequences of that are either graphics not displayed in the zone, or zone graphics getting a bit corrupted. (If there isn't enough dl memory to cover the number of display objects) In either case the game would be relatively oblivious.

 

Some common causes for crashing are running out of stack (lots of nested subs), unmatched gosub/return, overwriting too much memory with out-of-bounds array access, and on...goto/gosub with a too large index.

Good to know about the graphics - I pointed that out mainly due to the fact that the screenshot looked like everything was on one line - and I remember that being a graphically precarious scenario when I was optimizing some elements (although as you mention it wouldn't crash when I was developing the game).

 

I use gosubs sparingly (an artifact of 2600 Basic gosubs being pretty performance heavy compared to a well-placed goto), and to the best of my knowledge don't nest them.  I use subroutines mainly for collision detection, and I think I made sure variables and return states are accounted for.  on...goto/gosubs are used for a few things, but again I try to make sure the indices are "clamped" before calling them.  While these do give me places to look if the crash is reproducible, I don't know why the game would crash at the specific moment in the screenshot.  I feel like any behavior that would make it crash at that point would have crashed it much earlier.  My running theory is that it has something to do with the dragon generating its fire breath, but why it would crash at that particular moment and not any time earlier during gameplay is a mystery...

 

Regardless, I do have a few places I can look/test for the time being, but if the crash can be reproduced that would help immensely - everyone's feedback and tests are appreciated, thank you!  

 

Edited by Revontuli
  • Like 2

Share this post


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

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