Jump to content
IGNORED

Dr. Sam Beckett stepped into the Quantum Leap accelerator......


CyranoJ

Recommended Posts

Seeing GB's 'Rocketeer' in the Inty forums has made me feel like 'putting right what once went wrong'...

 

Anyway, here's about an hours worth of effort. I'm actually having some fun with this, and a lot of the code for the game logic (Rocket/fuel) can be CTRL-C/CTRL-V from the older game (The enemies need changing, obviously)

 

For once, I thought I'd post progress builds here, just to see how that goes. It's not our normal way of doing things, and I can't promise I'll even continue working on this, or even finish it, but let's see where this takes us, eh?

 

post-11520-0-67680800-1362798303_thumb.jpg

 

Comments are welcome - even if they're 'why the f**k are you even bothering?' ;)

 

 

[EDIT] If our wonderful forum host, Al, could enable posting *.ABS that would be wonderful! (Hopefully the compliment will work, hehe)

RAPAPP.zip

Edited by CyranoJ
  • Like 8
Link to comment
Share on other sites

OK, lets try and get some forum participation going! This thing is going to need a name. Obviously, we can't call it 'Jetpac' and I don't want to call it 'Rocketeer' because GB has that name.... so... suggestions please?

 

If we (Reboot) think one is particularly pleasing, we'll use it, and you'll get credit for naming the game.

Link to comment
Share on other sites

Got the fuel drops working, you can collect them, and drop them over the rocket. Once I get the rocket blast off/landing in I'll post another build... and then... onto the baddies!!!

 

This is pretty much how we build up games normally, element by element, and then start skinning them later when it all works - so expect it to look crap for a little while longer. We're focussing on 'core functionality' at this point.

  • Like 2
Link to comment
Share on other sites

Feel free to call it Rocketeer. Plenty of people have gone on to make Downfall versions of their own and use the same name so I don't see a problem with it personally.

 

Ah, good suggestion, let's name this game "Downfall 2" :P

  • Like 1
Link to comment
Share on other sites

Ok, got a bit of time this morning to work on this a bit more, so trusty notepad++ in hand, a copy of the source from 20 years ago, and armed with a RAPTOR library, I converted all the code from the fuel/rocket assembly/lift off routines into a raptor friendly format.

 

And here's the result...

 

You can now assemble the rocket, fill it with fuel, and lift off. I've also added a nice 505 module as well, just to have something to listen to. Keen observers might recognise the tune, but not from a Jaguar game :)

RAPAPP.ABS

  • Like 3
Link to comment
Share on other sites

Well, I've added the first type of enemies - brainless asteroids!

 

They'll drift around, causing an annoyance...

 

lea sprite_table+(IDenemies*sprite_tabwidth),a6 ; raptor object base address
moveq #max_enemies-1,d7 ; number of enemies
.finder: tst.l sprite_active(a6) ; is this one active?
bmi.s .found_e ; no, so we can use it!
lea sprite_tabwidth(a6),a6 ; next enemy
dbra d7,.finder ; loop around
rts ; no free enemies
.found_e: move.l #is_active,sprite_active(a6) ; tell raptor this sprite is now active
bsr random ; generate a random 32bit number in D0
and.w #$df,d0 ; 0-255 ; make it smaller
add.w #16,d0 ; ensure it isnt 0-15
move.w d0,sprite_y(a6) ; and that's the new y-pos of this enemy
move.w #0,d1 ; x-position
move.l #$00020000,d2 ; 16.16 x velocity (+2 pixels)
move.l #is_flipped,d3 ; sprite is flipped
btst #7,d0 ; bit 7 of random number test?
beq.s .lef ; if not set then move it left
move.w #352,d1 ; otherwise, put it on the right!
move.l #$fffe0000,d2 ; 16.16 x velocity (-2 pixels)
move.l #is_normal,d3 ; sprite isn't flipped
.lef: move.w d1,sprite_x(a6) ; store it's x-pos
move.l d2,sprite_xadd(a6) ; store it's x-velocity
swap.w d0 ; get the other 16 bit word of the random number
asr.w d0 ; divide by 2 (shallow angle)
bclr #15,d0 ; make sure it's positive
move.w d0,sprite_yadd+2(a6) ; and store in its 16.16 y velocity (so it'll track downwards slowly)
move.l d3,sprite_flip(a6) ; store it's horizontal flipped status
move.l #-1,sprite_was_hit(a6) ; tell raptor this sprite wasn't hit yet
move.l #can_hit,sprite_colchk(a6) ; tell raptor we can hit this sprite
rts

 

Notice that this is the enemy setup code - once we've created this object with its initial position, and x/y velocities, we dont have to track it or even 'think' about it again - Raptor will process all it's movement until a pre-defined 'exit condition' is met, such as an edge wrap, or a 'life timer expiration' or a collision. Fire and forget sprites!

 

 

they'll disappear if they hit the ground or a platform....

 

; enemies hit platforms?
move.l #IDplatform,rcd_sourcel
move.l #IDplatform+3,rcd_sourceh
move.l #IDenemies,rcd_targetl
move.l #IDenemies+max_enemies,rcd_targeth
lea RAPTOR_GPU_COLLISION,a0
bsr call_GPU_code 

 

 

or you shoot them....

 

; lasers hit enemies?
move.l #IDlasers,rcd_sourcel
move.l #IDlasers+max_lasers,rcd_sourceh
move.l #IDenemies,rcd_targetl
move.l #IDenemies+max_enemies,rcd_targeth
lea RAPTOR_GPU_COLLISION,a0
bsr call_GPU_code 

 

 

or if they hit you....

 

; jetman hit enemies?
move.l #IDjetman,rcd_sourcel
move.l #IDjetman,rcd_sourceh
move.l #IDenemies,rcd_targetl
move.l #IDenemies+max_enemies,rcd_targeth
lea RAPTOR_GPU_COLLISION,a0
bsr call_GPU_code
move.l rcd_result,jetman_dead

 

Notice that there is no code to remove the objects if they're hit. Raptor assigns hitpoints and damage to each object, and handles all that stuff - if there was a collision, and the objects hitpoints-(damage from object it hit) goes negative... well, that object no longer exists. We can scan through the object list and find out what was hit if required, in order to generate an explosion, but that is for later.

 

So, we're now at a point where all the basic gameplay elements are in place, and it already feels better than the old version. Not bad!

RAPAPP.ABS

Edited by CyranoJ
  • Like 5
Link to comment
Share on other sites

Found a bug where if you die while carrying fuel, the fuel gets 'stuck' (It'll fix itself when the next fuel drops though), also the top of the rocket will flash if you 'dock' with the final fuel pod.

 

I'll clear these up for the next binary.

Edited by CyranoJ
Link to comment
Share on other sites

Dropping the rocket parts and fuel onto the ship seems like it's only checking one x-pos, maybe it'd be better to check a good 8 or 12 and make it less likely to let you fly right past and not drop them?

 

Bullets seem to pass right through the enemies, I could have sworn I could shoot them in earlier builds :-)

 

Should enemies die if they hit falling fuel? I thought I just saw that.

 

I worked on some animations for a jetpac man, here's some unfinished frames:

 

 

  • Like 2
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...