Jump to content
IGNORED

Jumper - Final Version Complete


Atarius Maximus

Recommended Posts

Thanks to everyone for the suggestions. I've revamped the missile speed routine, cleaned up the code a little more, and made a few more changes. I think I've squeezed about all I can out of this game for now -- I really need the MSK to support the 8k romsize to go any further on this.

 

It's a pretty complete game, the only major things it's missing now are audio routines and scoring, and as I said, there's no more room to add them.

 

Here's a rundown of the changes:

 

Level 1 (Treasures 1-4): Slowest Missile Speed, really easy level.

Level 2 (Treasures 5-8 ): Missile Speed increases, screen color changes.

Level 3 (Treasures 9-12): Missile Speed increases, screen color changes, one top ladder is removed.

Level 4 (Treasures 13-16): Missile Speed increases, screen color changes, another top ladder is removed

Level 5 (Treasures 17-20): Missile Speed increases, screen color changes, middle ladder removed, missiles 4 pixels.

Level 6 (Treasures 21+): Missile Speed increases, screen color changes, bottom ladder removed, missiles 8 pixels.

 

After Level 6, the difficulty of the game never changes, but it's It's pretty difficult to last much longer than that anyway. You have to avoid the missiles, there's no way to jump over them, and they're moving really fast.

 

So this is it for now... there's no more room for changes, so I probably won't be updating this again until the next update of the multisprite kernel.

 

Enjoy!

 

EDIT: I updated the source & bin files, I had forgotten to set the number of lives back to 3...I had it set to 99 for my testing.

 

Steve

post-2143-1146171391_thumb.jpg

jumpman7.txt

jumpman7.bin

Edited by Atarius Maximus
Link to comment
Share on other sites

I can't get the latest source to compile. When I save as jumpman7.bas, open and compile with 99b I get "-304 bytes of rom space left. Error : reverse - indexed.

 

You'll need to use this custom multisprite kernel to compile it.

multisprite_kernel.zip

Link to comment
Share on other sites

It seems like you would be able to eliminate most of the gravity section by replacing it with just an if then like:

 

if !collision(player0, player1) || !collision(player0, playfield) then d = d + 1

 

Then if the player is touching a ladder or the playfieild, they stay in the same y position, if not, they fall. I'm not sure why you need all the extra code?

 

Also making this tiny change made the game more fun for me:

 

ballx= 160 - e

Edited by MausBoy
Link to comment
Share on other sites

It seems like you would be able to eliminate most of the gravity section by replacing it with just an if then like:

 

if !collision(player0, player1) || !collision(player0, playfield) then d = d + 1

 

Then if the player is touching a ladder or the playfieild, they stay in the same y position, if not, they fall. I'm not sure why you need all the extra code?

 

Thanks for looking through the code and making a suggestion. It's amazing how you can miss the most obvious things when you're working on something by yourself. :)

 

I've put a lot of trial and error testing into this (25-30 hours or so), and I truthfully don't remember exactly all the reasons the gravity code is so bloated, but I think it was all neccessary to make player movement, jumping, and collision detection "just right". I'll use your example and see what I can do. If you already played around with simplifying the gravity code and made it work, please share, I'd love to take a look.

 

Also making this tiny change made the game more fun for me:

 

ballx= 160 - e

 

I Like that! Great idea. It definitely makes the game more challenging. So no one has to guess what that does, it makes the ball move from right to left, instead of both the ball and missile starting from the left side of the screen. The changed souce and bin are posted below.

jumpman8.bin

jumpman8.txt

Edited by Atarius Maximus
Link to comment
Share on other sites

It seems like you would be able to eliminate most of the gravity section by replacing it with just an if then like:

 

if !collision(player0, player1) || !collision(player0, playfield) then d = d + 1

 

Then if the player is touching a ladder or the playfieild, they stay in the same y position, if not, they fall. I'm not sure why you need all the extra code?

MausBoy,

 

I tried to change the source and implement the change you suggested. While it does work (and freed up about 340 bytes), it was causing other glitches with player movement and positioning that i just couldn't fix in the short amount of time I've had to work on it today. It definitely could work, but it looks like it would require re-writing other sections of the code as well.

 

Steve

Link to comment
Share on other sites

I tried a little more to revamp the gravity code, but I just couldn't get it to work properly any other way than how it is now. I made a compromise with this version, and removed the code that forces the player to pop up to the top of the platform when you get off of a ladder - the player sprite can move across the platform with his body in the middle of the platform, but you can still jump up to correct it and land on the platform properly (or just not get off the ladder until you get to the top of it ;)). Removing that code freed up lots of space, over 400 bytes. I then added a lives counter using the last remaining unused sprite, and added a run animation when the player is moving or jumping. There's still 340 bytes free, so I should be able to put in some audio, add a few more sprite animations, and add a few more levels of difficulty. The last remaining item would be the score, which hopefully will be an added feature of the MSK in the future (batari? :) )

 

If any talented artist would like to provide some new, better looking sprites, I'd appreciate the help. I know mine don't look very good. The problem is the height - with the current spacing between the platforms, the sprite can't be taller than 6 pixels, or when you jump you'll hit the platform on top of you, and the collision detection will then pop you up to the next platform without using a ladder. That makes it very challenging to make a good looking sprite.

 

Here's the updated bin and source, but with all the extra space I've got now, I'm sure this will not be the final verison.

 

Steve

jumpman9.bin

jumpman9.txt

Edited by Atarius Maximus
Link to comment
Share on other sites

Almost Done! :)

 

I've decided to rename the game 'Jumper'. Because this isn't anywhere close to a real Jumpman clone, and (hopefully) Cybergoth is working on a real clone, I thought a name change was in order.

 

This version adds a number of new features:

 

1. The Left Difficulty Switch is now used. There are 2 levels of missile speed, A is fast missiles, B is the normal speed missiles.

2. A Title Screen was added, with a cool, color-cycling title sprite.

3. More Sprite Animations were added for using the ladder, running, and jumping.

4. The Audio Code was added, however I've currently got the volume set to 0 for all of the sound effects. I'm having a hard time finding sounds that fit the game perfectly.

5. An additional level of difficulty added, the game now reaches it's hardest difficulty after 24 treasures have been collected. Once you master that, set the difficulty switch to 'A'. :evil:

6. The lives counter was changed to a single sprite. Rather than using the numbers 3-2-1 as individual sprites, there is now a single sprite that decrements from 3-2-1 with a simple NUSIZ change. It saved some more space, and looks pretty good. :)

7. A Pause was added after you lose your last life, so it doesn't just immediately jump back to the title screen. When you lose your last life, the player sprite turns into a (crude) skull and crossbones to mark where you were hit.

 

It's amazing I've been able to cram all this additional stuff in, the space I've got to work with is sooooo tight. I found a few more items that could be consolidated or removed entirely, allowing me to make the additional changes.

 

EDIT: I updated the bin and source with a quick bugfix. When you get hit by a missile on the very bottom, the missile stays put and can kill you three times in a row without you having a chance to move. I added a routine to push the missile ahead 5 pixels when you're hit to avoid this problem.

 

Enjoy!

 

Steve

post-2143-1146687675_thumb.jpg

post-2143-1146687684_thumb.jpg

post-2143-1146687692_thumb.jpg

jumper14.bin

jumper14.txt

Edited by Atarius Maximus
Link to comment
Share on other sites

Looks really nice; like your title screen! :)

 

Bugs...

 

I still got hit twice by a missile on the floor. It was a wide missile and, actually, the program behaved very weirdly:

It hit me twice, then picked up my jumper and carried him 2/3s of the way up the screen and to the right side before dropping me and letting me control my guy! :o

 

Also: when you jump on top of a ladder you fall halfway down the ladder.

 

And a suggestion: beyond varying the ladder layout (which is really cool), varying the platform layout would be cool too, if possible.

Link to comment
Share on other sites

Yeah, I agree that a score would be nice. I think you could still keep a score and display it only when you died (using sprites or playfield graphics). Now, when you die, it is rather unceremonious.

 

Did you know that you can jump off the top of a ladder up to a platform straight above you? It's not really a bug.

 

Having trouble coming up with good sound FX? Well, just play Hunchy and do the opposite. :D Actually, I'd go with some classic Atari sounds but using a bit of pitch bend to give that doing effect.

 

I don't think you need to change the sprites, they look classic.

Link to comment
Share on other sites

Looks really nice; like your title screen! :)
Thanks!

 

Bugs...

 

I still got hit twice by a missile on the floor. It was a wide missile and, actually, the program behaved very weirdly:

It hit me twice, then picked up my jumper and carried him 2/3s of the way up the screen and to the right side before dropping me and letting me control my guy! :o

I've seen this behavior randomly when playing the game, but not very often. I'm not sure exactly what's causing it, it may take a while to fix it.

 

Also: when you jump on top of a ladder you fall halfway down the ladder.
I've noticed this too, and just haven't tried to fix it yet.

 

And a suggestion: beyond varying the ladder layout (which is really cool), varying the platform layout would be cool too, if possible.
With the multisprite kernel, you have to update the entire playfield all at once. Putting in the code for a second level with a different playfield layout would take up more space than I have, unfortunately.
Link to comment
Share on other sites

Yeah, I agree that a score would be nice. I think you could still keep a score and display it only when you died (using sprites or playfield graphics). Now, when you die, it is rather unceremonious.
That's a good idea, I hadn't thought of that. The biggest problem with that is having the space for all of the number sprites. I may be able to squeeze in a score now, but it would probably mean sacrificing the graphics on the title screen to free up the space. I could just have the 'Jumper' sprite along with a score.

 

Did you know that you can jump off the top of a ladder up to a platform straight above you? It's not really a bug.
Actually, I'd never done that. :D That's because when you're at the top of the ladder, player0 is a few pixels higher than normal. When you jump up, a collision is registered and you're popped up to the next level. It's going to have to stay like that, the code to detect that situation would take up too much space.

 

Having trouble coming up with good sound FX? Well, just play Hunchy and do the opposite. Actually, I'd go with some classic Atari sounds but using a bit of pitch bend to give that doing effect.
I've never played Hunchy, but I can certainly appreciate now how hard it is to make good sounds. The sound effects in roadblaster were easy...one of the settings sounds just like an engine rumble. ;)

 

I don't think you need to change the sprites, they look classic.
Thanks!

 

Well, I guess it's time to go do some more bug-fixing.

 

Steve

Link to comment
Share on other sites

A couple of quick bugfixes.

 

I changed the ladder sprites to be slightly shorter, and changed the platform Y level where the player sprite walks to one pixel lower -- this was to fix the problem of jumping onto a ladder and falling halfway down. This should also solve the problem of being able to jump up to the next level from the top of a ladder. The ladder is no longer tall enough to allow that.

 

I also had the H variable reset when you're hit by a missile or ball, which should resolve the random problem of the player sprite rising up the screen -- I've been unable to replicate that problem thus far.

 

I've been trying to put in a scoring system, but I'm having a hard time squeezing it in. It will probably fit if I eliminate the entire title screen, and just flash the score on a screen by itself when you die. Which would be more desirable? Any suggestions on the most code efficient method to put the score in? I've never had to do it before, as the standard kernel had it built in.

 

Steve

jumper15.txt

jumper15.bin

Edited by Atarius Maximus
Link to comment
Share on other sites

I just couldn't come up with a way to make a scoring system work without removing the title screen, which I don't really want to do. I came up with an alternative that I was able to make work instead -- a ranking system. After you lose all of your lives, your rank will be displayed on the title screen. The ranking system takes up very little space, and I think works pretty well given the constraints I have on size. It works like this:

 

one star - Collect 8+ treasures

two stars - Collect 16+ treasures

three stars - Collect 24+ treasures

medal - Collect 28+ treasures

medal w/bar - Collect 32+ treasures

 

It flickers so badly that I can't do screenshots to show what they look like, so I made an image that represents kind of what they look like, attached below. I forgot to mention that I changed the missile/ball behavior on the last edit -- they now reset when you're hit to avoid the problem of getting hit twice in rapid succession on the bottom platform.

 

Now I just have to finish up on the audio! :)

 

Steve

jumper16.bin

jumper16.txt

post-2143-1146757010_thumb.jpg

Link to comment
Share on other sites

Maybe I should stop posting all these minor updates and just post the final version when I'm done, huh? ;)

 

I had 38 bytes free on the previous version, and I figured out a way to use 'em all up. This version now has 0 bytes free, but has a new title screen with better resolution. :D I'm counting on having some time tonight to work on sounds, I can't really do that here at work.

 

Steve

 

Note: If you try to compile this yourself, you'll have to modify your score_graphics.asm. The bottom part of the zero shows up at the top of the title screen, just change the byte lines to all zeros. Not sure why that happens, that's just what I did to fix it when it compiles.

post-2143-1146767467_thumb.jpg

jumper17.txt

jumper17.bin

Edited by Atarius Maximus
Link to comment
Share on other sites

Tried that one real quick and it has a funny glitch, where after you grab the prize and drift down to the bottom of the screen you then zip back up the screen to rest upon one of the top most platforms.

 

Ha! You're right. I guess I didn't test play this version before I posted it, version 16 doesn't do that. I'll see what I can do to fix it.

Link to comment
Share on other sites

Tried that one real quick and it has a funny glitch, where after you grab the prize and drift down to the bottom of the screen you then zip back up the screen to rest upon one of the top most platforms.

Hold up while you are falling with the prize to see that glitch. Also, when you reach the top of a ladder, hold up to jitter in place; that's minor but should be fixed and probably is an easy fix.

Link to comment
Share on other sites

Tried that one real quick and it has a funny glitch, where after you grab the prize and drift down to the bottom of the screen you then zip back up the screen to rest upon one of the top most platforms.

 

It's fixed, I updated the orginal posting with the newer version.

Link to comment
Share on other sites

At the start of the game, hold the jump button down. Then press left and right... randomly while still holding the button. Who needs ladders? (or platforms for that matter) :)

Wow, that's kind of funny. I'd never tried that before, I should be able to fix that too.

Link to comment
Share on other sites

At the start of the game, hold the jump button down. Then press left and right... randomly while still holding the button. Who needs ladders? (or platforms for that matter) :)

Wow, that's kind of funny. I'd never tried that before, I should be able to fix that too.

 

I think it would probably be fixed if you had to press the jump button every time you intend to jump - rather than having the character jump when the jump button is pressed and he is colliding with the background. (at least that is what appears to be happening).

 

Although, I was able to pass a lot of stages fairly quickly this way. :lol:

 

I've been watching this one closely. Great work! ;)

Link to comment
Share on other sites

At the start of the game, hold the jump button down. Then press left and right... randomly while still holding the button. Who needs ladders? (or platforms for that matter) :)

Wow, that's kind of funny. I'd never tried that before, I should be able to fix that too.

 

I think it would probably be fixed if you had to press the jump button every time you intend to jump - rather than having the character jump when the jump button is pressed and he is colliding with the background. (at least that is what appears to be happening).

 

Although, I was able to pass a lot of stages fairly quickly this way. :lol:

 

I've been watching this one closely. Great work! ;)

 

I figured out what the problem was. I had removed a line of code from version 16 to free up some space -- it disallowed jumping when you're touching a ladder. I put that line back in, and you can't do what you described anymore. I've updated the original post with the 'new' v17. Thanks for pointing out that bug, it sure helps when other people report these things, it's so hard to catch everything yourself! :)

 

Thanks for the compliement, it's been really fun working on this.

 

Steve

Edited by Atarius Maximus
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...