Jump to content
IGNORED

[In Store!] Dare Devil


Muddyfunster

Recommended Posts

Dare Devil [Release Candidate]

 

This is a WIP for my new project "DareDevil"

 

Complete https://atariage.com/store/index.php?l=product_detail&p=1228

 

Inspiration.

 

I recently played a 2600 game called "Parachute" and despite what I'd call some odd execution choices and grating music, the actual game kept me coming back for another go. I decided, as just a quick test, I'd pull together a test bin to see if I could do something similar in bB and well, that little test turned into a few late night coding sessions over the holidays and then into a full project and has put SpaceBank on the back burner for a bit.

 

"Dare Devil" is intended to be something of a homage / remaster / my take of "Parachute".

 

Playing

 

Avoid obstacles like hot air balloons and airplanes or you fall to your doom.

 

Birds won't kill you but will knock you off your flight path. Maybe that can be used to get you out of a tricky situation?

 

As you progress through each screen in the level, you will speed up, starting slow, eventually going quite fast.

 

Land in the circle/middle for maximum points, if you are going too fast, you will splatter. Later levels have different obstacles to negotiate when you land. Later levels you have to land on very defined landing points.

 

Weather vane in the bottom left shows the direction of the wind currently. Level 1 has no wind.

 

If you beat level 8 (good luck with that...) then you will go round again, except now everything is faster.

 

Options

 

Two mode are available and are selectable from the title screen

 

Easy - Slower more forgiving speed.

Hard - Much faster

 

Controls

 

Fire start after selecting your game, fire also skips any intro or death screens. If the game pauses, it's usually waiting for you to press fire.

Left and right to move left and right

Down =  Zoom - this speeds you up by around 2/3rds of your base falling speed,  useful for zooming through small gaps.

Up = slow your descent by about 30%, useful for those, "OMG I misjudged how close the next obstacle is"  moments.

 

Scoring

 

Score points by progressing through each screen and landing.

When Landing you need to slow down or you will crater

 

Balloons

 

Balloons can be risky to pick up so the score reflects the risk.

 

Red Balloon = 300 pts

Purple Balloon = 600 pts

Green Balloon = 150 + 4x Points Multiplier for 18 seconds (Your parachute flashes RED)

Gold Balloon = invulnerability for 15 seconds (Your parachute flashes WHITE)

 

Tips

 

Gliding into the wind is slow, but going with the wind is fast, use this to your advantage.

Don't be afraid to use the whole width of the screen.

The first screen in each level is usually intentionally slow, so you can get to grips with the level, thinking of removing this.

learn to "zoom-zag" between the middle rows

A timely "zoom" can be a lifesaver.

learn to look ahead at the top row as you approach row 4, slowdown and look!

 

ToDo (December 2019)

 

  • Demo Version
  • SFX revisions

 

Help and Acknowledgements (in no particular order!)

 

 

Updates & changes

 

30th December 2018 - V62: First public test build , early days, feedback / suggestions very welcome!

 

30th December 2018 - v64 - working to add the wind elements (in but not active), changed the altitude readout to just a number.

 

31st December 2018 - V70, more iterative progress. More sprites added and some new level movement code for 2,3 and 4. Various systems in the code are coming together. I expect a few more updates will be ready this week.

 

1st January 2019 - V88, Seems we have a bit of wind affecting things from level 2 onwards. Further down you go, the stronger the wind becomes.

 

8th January 2019 - v105Branch2 - So I've been busy adding in some new graphics that change each screen and there are now 4 functioning test levels of maybe 15 planned and a bunch of new sprites.Code needs a clean and optimise then it's onto landing obstacles and moving / alternate landing pads and bonus balloons!

 

11th January 2019 Decided it was time to stop adding stuff for 5 minutes and take some time to optimise the code some, especially as I'd missed a RHC (Real Hardware Crash) that Cimmerian from ZeroPage had spotted on game over. Fixed that! (Gosub issues)

 

12th Jan 2019 V122 : spent some time finishing the optimization splitting the graphics calls between those that are animated and called each frame and those that are only set once per screen, probably saved a few cycles. Also added poppable red balloons and clouds. Other colours to follow.

 

16th Jan V147 : refined the balloons some, still an occasional bug where the balloon inherits the clouds NUSIZ values, added to the squish list. Level 5 added along with some temporary sound fx.

 

20th Jan : The "bonus" balloons are all now in the build i'm currently working on. Red and Purple for points, Green = x2 points multiplier, Gold = invulnerability for 8 seconds.

 

23rd Jan : build 180, test build from 20th, some extra bugs squashed. No airships though :( next build for sure. I do have an absolutely kicking title tune that I'm hoping to put into the next test build courtesy of the super music skills of RushJet1

 

10th Feb : Build 199. So this new build was more about optimisation. My sloppy code needed a bit of a rethink and that effort saved me 500 bytes which will be put to good use. This build now has a new set of landing zones for level 4,5 & 6. (Desert Island). Levels 7,8 & 9 are coming next (water levels).

 

24th Feb: Build 201. After a short hiatus, I've got my coding mojo back again for this project. Levels 1 to 6 are done, 7-9 are nearly done, just thinking what to do with level 10... Added in stormy weather on level 3,6 and 9 as well as some ground obstacles. Moving landing zones are still being looked at for levels 7-9. Some over-cycle issues that need to be squished.

 

7th May : Build 210. So build 210 has the new music, it has some weather effects and pretty much all of the attributes for levels 1-9. There are some glitches so these are being squished now, odd sprite positioning etc. There are still some overcycle issues that need optimising, but this is getting very close to being done. Also done a bit of work on gameplay and balance tweaking,making the powerups more worthwhile but not too OP.

 

22nd August : Build 320. Build 320 is basically the final game code. 8 distinct levels are in the game, later levels have tiny boats to land on and even a moving landing zone. Tweaks to graphics and other things like varying the splat screens depending on whether you splat on grass, sand or water (feeding time for that shark from Tyre Trax..). Complete code restructure, efficiency gains from implementing stuff i've learned. added a "clocked" mode, so when you complete the final level (good luck with that), the game takes you back to level 1 but everything is a lot faster and a lot more difficult. Couple of minor overcycle issues to fix. 

 

26th August : Build 342 is done, looking for some folks to test it.

 

30th August : Build 356 : superb feedback from the testers. Version that was shown on ZPH had a bug that meant it was stuck in hard mode, now fixed. Speed balances, tree removed from the middle of landing zone on screen 2 and 3, score adjustments to balloons made (they are risky to go after so should reward more), adjusted duration for invulnerability and multiplying balloons, Zoom (pressing down) is now proportionate to the player speed instead of being a fixed value (speeds up by 2/3rds). Splat screen now has some laughing skulls to make it clear you cratered and lost a life.

 

11th September : Build 393 : more great feedback. Highlights for this version, new airship sprites (thanks @NostAlgae37 !), game plays at correct speed, speed up is now gradual rather than cliff edge, simple jingles for level change and landing, new splat sound.

 

25th September : Build 400 : P60 version in the process of being converted over. Last overcycle issue officially considered squashed!.

 

26th September : P60 version is done, palette needed work to raise the luminance in some areas,  PAL colours seem really muddy in places.

 

29th September : 3 level demo version added for folks to test. Decided to redo a lot of the SFX for the final version.

 

9th October : new SFX are done mostly, just 1 more to nail and then I think Dare Devil is done.

 

30th December : Dare Devil is pretty much done,  a year to the day that I posted the first test build. Some last bugs got squished, a few graphics got tweaked and some SFX were revised a little. RC Rom added to the post for people to test. A big thanks to all the folks that help with testing and those that provided feedback. If only I had 64kb DPC+ then I could probably fit everything in that I wanted to ! :)

  

8th December 2020 : In store now! https://atariage.com/store/index.php?l=product_detail&p=1228

 

 

  • Like 18
Link to comment
Share on other sites

This game is already pretty fun to play and the collision detection is spot on. I came pretty close to several obstacles. Can't wait for the additions.

 

For the moving landing points, could you make a boat bobbing in the ocean? Or how about a truck bouncing over rough terrain?

 

Thanks. :)

 

post-21941-0-36167300-1546575288.jpg

  • Like 1
Link to comment
Share on other sites

This game is already pretty fun to play and the collision detection is spot on. I came pretty close to several obstacles. Can't wait for the additions.

 

For the moving landing points, could you make a boat bobbing in the ocean? Or how about a truck bouncing over rough terrain?

 

Thanks. :)

 

attachicon.gifDare Devil_88.jpg

 

Those are great ideas Sramirez, thanks. I really like the boat one.

 

I'm about 1/2 way through adding in some new sprites and making the sprites change by level or screen then I'll be working on the landing zones, so I'll probably update this weekend on that.

 

Thanks everyone for the feedback and testing, it's really appreciated.

Link to comment
Share on other sites

Finally got to play this one. Very nice! I even landed once :) Keep working on this one, I thought it was very fun. I missed it on last nights video ( I was late). You have to give me a clue on your collision detection on NUSIZ sprites... please :)

 

Thanks Winkdot appreciate the feedback. I have a lot more that I plan to add :)

 

For collision detection, it depends on what you want to achieve.

 

For Dare Devil I don't always need to know which virtual NUSIZ sprite, just that I've hit one. Sometimes I need to check which one I've hit but mostly, I just need to know if I've it any part of any NUSIZ player sprites and then report a collision.

 

So I check to see if there is a collision and check to see if the bit for a "bird" has been set, if so, then do something different to a regular collision . (birds don't kill, they just bump)

 

I also check for the player position and within certain ranges and if so, ignore collision altogether so it doesn't register a hit if you fly through the wind vane or lives counters on the HUD for example.

 

If you want to "know" which of your virtual sprites that you have hit, then

if collision(player0,player1) 

On it's own is useless,

 

You have to back it up with some math work on the co-ordinates to figure things out. There is some great sample code HERE on RT's reference site that I used to learn about this and Lillapojkenpåön also gave me some great guidance on this when I was struggling with conditional collision detection on Tyre Trax.

 

My code in Dare Devil (and it's probably not the most efficient, but hey, it works :) ) currently looks a bit like this, I've added a few comments in brackets to explain :

if !collision(player0,player1) then goto skip_col_check (no collision?, do nothing)

 	if _bit7_p1_bird{7} && collision(player0,player1) && (player0y+15)>= player1y && player0y <= (player1y+14) then goto p1_bird_bump  (is player 1 set to a bird and did p0 hit him?)
        if _bit6_p2_bird{6} && collision(player0,player2) && (player0y+15)>= player2y && player0y <= (player2y+14) then goto p2_bird_bump  (is player 2 set to a bird and did p0 hit him?)
 	if parachute_x<12 && parachute_y >128 then goto skip_col_check (did p0 hit the weathervane ? ignore it)
 	if parachute_y <10 || parachute_y >200 then goto skip_col_check (did p0 hit the lives counter? ignore it)
  	if collision(player0,player1) then temp1=sfxtrigger(#sfxSPLASH): goto collis_detected (did p0 hit a "kill" obstacle, if so play a sound using SpiceWare's driver and animate the death)

collision(player0,player1)

collision(player0,player2)

I don't think it matters what player number goes in as they are all the same (clones of player1) (at least that's my interpretation)

 

Hope my ramble helps.

 

If you have specific questions, yell or post up your code, I'm sure folks will try to help.

Edited by Muddyfunster
Link to comment
Share on other sites

Hi Muddyfunster, I love this game! The graphics are beautiful to look at, and the game is so much fun. I think that the quality is better than most of the original releases for the 2600 that I actually bought back in the day, and if this were available as a cartridge back then I would have certainly bought it and played the heck out of it.

 

Can I request that you to add one element to this game? Can you please add dirigibles as one of the obstacles/enemies? You can give them their own unique behavior / movement pattern as you deem fit, I just want to see them in the game because I dig airships / blimps and think that they are cool. Thanks very much for making this super-fun game and for listening to my ramblings. :dunce:

  • Like 2
Link to comment
Share on other sites

Hi Muddyfunster, I love this game! The graphics are beautiful to look at, and the game is so much fun. I think that the quality is better than most of the original releases for the 2600 that I actually bought back in the day, and if this were available as a cartridge back then I would have certainly bought it and played the heck out of it.

 

Can I request that you to add one element to this game? Can you please add dirigibles as one of the obstacles/enemies? You can give them their own unique behavior / movement pattern as you deem fit, I just want to see them in the game because I dig airships / blimps and think that they are cool. Thanks very much for making this super-fun game and for listening to my ramblings. :dunce:

 

NostAlgae37, You know that's a great idea, I love it.

 

I sat thinking of things to have in the game for the obstacles and I honestly never thought of dirigibles / airships. :thumbsup:

 

I'll be putting up a new build on Sunday, hopefully with some dirigible fun.

  • Like 1
Link to comment
Share on other sites

 

Thanks Winkdot appreciate the feedback. I have a lot more that I plan to add :)

 

For collision detection, it depends on what you want to achieve.

 

For Dare Devil I don't always need to know which virtual NUSIZ sprite, just that I've hit one. Sometimes I need to check which one I've hit but mostly, I just need to know if I've it any part of any NUSIZ player sprites and then report a collision.

 

So I check to see if there is a collision and check to see if the bit for a "bird" has been set, if so, then do something different to a regular collision . (birds don't kill, they just bump)

 

I also check for the player position and within certain ranges and if so, ignore collision altogether so it doesn't register a hit if you fly through the wind vane or lives counters on the HUD for example.

 

If you want to "know" which of your virtual sprites that you have hit, then

if collision(player0,player1) 

On it's own is useless,

 

You have to back it up with some math work on the co-ordinates to figure things out. There is some great sample code HERE on RT's reference site that I used to learn about this and Lillapojkenpåön also gave me some great guidance on this when I was struggling with conditional collision detection on Tyre Trax.

 

My code in Dare Devil (and it's probably not the most efficient, but hey, it works :) ) currently looks a bit like this, I've added a few comments in brackets to explain :

if !collision(player0,player1) then goto skip_col_check (no collision?, do nothing)

 	if _bit7_p1_bird{7} && collision(player0,player1) && (player0y+15)>= player1y && player0y <= (player1y+14) then goto p1_bird_bump  (is player 1 set to a bird and did p0 hit him?)
        if _bit6_p2_bird{6} && collision(player0,player2) && (player0y+15)>= player2y && player0y <= (player2y+14) then goto p2_bird_bump  (is player 2 set to a bird and did p0 hit him?)
 	if parachute_x<12 && parachute_y >128 then goto skip_col_check (did p0 hit the weathervane ? ignore it)
 	if parachute_y <10 || parachute_y >200 then goto skip_col_check (did p0 hit the lives counter? ignore it)
  	if collision(player0,player1) then temp1=sfxtrigger(#sfxSPLASH): goto collis_detected (did p0 hit a "kill" obstacle, if so play a sound using SpiceWare's driver and animate the death)

collision(player0,player1)

collision(player0,player2)

I don't think it matters what player number goes in as they are all the same (clones of player1) (at least that's my interpretation)

 

Hope my ramble helps.

 

If you have specific questions, yell or post up your code, I'm sure folks will try to help.

Thanks much! Gives me something to chew on. I have not started a game that would use this currently so I have nothing to share yet.

Link to comment
Share on other sites

I got around to trying this when Maggie and I were evaluating WIP games for the Atari awards. It's fun, and I love the controls and graphics. My only nitpick would be that I'd like the obstacles to change when I go to a new screen so it really looks like I'm still descending. I'd understand keeping them in the same place so one can strategize accordingly, though.

 

Alternately, you might want to consider moving the obstacles up instead to give the illusion of continuous scrolling until you reach the target, Just a thought; it is also plenty fun as it is now. :)

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

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