Jump to content
IGNORED

Doodle Jump INTV


Recommended Posts

Since my bird looks like a rabbit, can someone design me a bird to replace it with?

I am not an artist, but somewhat decent at using Google to find animations other people made + processing the results in Photoshop. This is what I came up with, 7 frames 8x16. For some reason it looks broken in animation. You might want to fix some pixels, or ignore it completely.

 

post-5454-0-74473000-1531088961.gif

 

Edit: I realized my code only used 4 of 7 frames, plus that I edited one of the previously not displayed ones.

 

 

 

bird:
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap ".ooo...."
  bitmap ".oooo..."
  bitmap "ooooooo."
  bitmap "o..ooooo"
  bitmap "...oo..."
  bitmap "...o...."
  bitmap "..oo...."
  bitmap "..o....."
  bitmap "........"
  bitmap "........"

  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "ooooooo."
  bitmap "oooooooo"
  bitmap "....oooo"
  bitmap "....ooo."
  bitmap "...ooo.."
  bitmap "...ooo.."
  bitmap "...oo..."
  bitmap "...o...."
  bitmap "..oo...."

  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "oo......"
  bitmap ".oo....."
  bitmap "..oo...."
  bitmap "...ooo.."
  bitmap "...ooooo"
  bitmap "...ooooo"
  bitmap ".....oo."
  bitmap ".....oo."
  bitmap ".....oo."
  bitmap ".....oo."
  bitmap "........"
  bitmap "........"

  bitmap "........"
  bitmap "..o....."
  bitmap "..oo...."
  bitmap "..oo...."
  bitmap "..ooo..."
  bitmap "...oo..."
  bitmap "...ooo.."
  bitmap "...ooo.."
  bitmap "...oooo."
  bitmap "...ooooo"
  bitmap "......o."
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"

  bitmap "...o...."
  bitmap "...oo..."
  bitmap "...oo..."
  bitmap "..ooo..."
  bitmap "..ooo..."
  bitmap "..ooo..."
  bitmap "..ooo..o"
  bitmap "...oooo."
  bitmap "..oooo.."
  bitmap ".oooooo."
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"

  bitmap "........"
  bitmap "...o...."
  bitmap "...o...."
  bitmap "..oo...."
  bitmap "..oo...."
  bitmap ".ooo...."
  bitmap ".ooo...."
  bitmap "..oooooo"
  bitmap ".oooo..."
  bitmap "oooooo.."
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"

  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap ".o......"
  bitmap "..oo...."
  bitmap "..ooo..."
  bitmap "..oooo.."
  bitmap ".oooooo."
  bitmap "....oo.."
  bitmap ".....o.."
  bitmap ".....o.."
  bitmap "........"
  bitmap "........"
  bitmap "........"

 

Edited by carlsson
  • Like 2
Link to comment
Share on other sites

 

I am not an artist, but somewhat decent at using Google to find animations other people made + processing the results in Photoshop. This is what I came up with, 7 frames 8x16. For some reason it looks broken in animation. You might want to fix some pixels, or ignore it completely.

 

attachicon.gifbird.gif

 

 

 

bird:
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap ".ooo...."
  bitmap ".oooo..."
  bitmap "ooooooo."
  bitmap "o..ooooo"
  bitmap "...oo..."
  bitmap "...o...."
  bitmap "..oo...."
  bitmap "..o....."
  bitmap "........"
  bitmap "........"

  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "ooooooo."
  bitmap "oooooooo"
  bitmap "....oooo"
  bitmap "....ooo."
  bitmap "...ooo.."
  bitmap "...ooo.."
  bitmap "...oo..."
  bitmap "...o...."
  bitmap "..oo...."

  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "oo......"
  bitmap ".oo....."
  bitmap "..oo...."
  bitmap "...ooo.."
  bitmap "...ooooo"
  bitmap "...ooooo"
  bitmap ".....oo."
  bitmap ".....oo."
  bitmap ".....oo."
  bitmap ".....oo."
  bitmap "........"
  bitmap "........"

  bitmap "........"
  bitmap "..o....."
  bitmap "..oo...."
  bitmap "..oo...."
  bitmap "..ooo..."
  bitmap "...oo..."
  bitmap "...ooo.."
  bitmap "...ooo.."
  bitmap "...oooo."
  bitmap "...ooooo"
  bitmap "......o."
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"

  bitmap "...o...."
  bitmap "...oo..."
  bitmap "...oo..."
  bitmap "..ooo..."
  bitmap "..ooo..."
  bitmap "..ooo..."
  bitmap "..ooo..o"
  bitmap "...oooo."
  bitmap "..oooo.."
  bitmap ".oooooo."
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"

  bitmap "........"
  bitmap "...o...."
  bitmap "...o...."
  bitmap "..oo...."
  bitmap "..oo...."
  bitmap ".ooo...."
  bitmap ".ooo...."
  bitmap "..oooooo"
  bitmap ".oooo..."
  bitmap "oooooo.."
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"

  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "........"
  bitmap "..o....."
  bitmap "...oo..."
  bitmap "...ooo.."
  bitmap "...oooo."
  bitmap "..oooooo"
  bitmap ".....oo."
  bitmap "......o."
  bitmap "......o."
  bitmap "........"
  bitmap "........"
  bitmap "........"

 

 

 

That's pretty good! Definitely not a rabbit. :grin:

 

I wonder if the head could be distinguished a little more from the right-wing by judiciously selecting one pixel to remove. Although there's not much room to wiggle in there.

Link to comment
Share on other sites

Changed sprites around so the upmonsters (sprites 1-2) and bird (sprite 0) go in front of the platforms (sprites 3-7). I also tried to make it so the upmonsters' feet don't go past the platforms.

 

 

Much better! It is starting to feel a lot more smooth, and the bird looks the part. I also like quite a lot the "chirp! chirp!" sound effect that announces that a bird attack is imminent. :thumbsup:

 

The game is much more playable now, and I feel like I can advance further than before. Here are a few observations to help with polish:

  • I still feel that the jumping (vertical) range is much too limited, and the Up Monster going off the screen on every high jump feels awkward. I wonder if this game warrants making the Up Monster smaller, instead of 2x zoomed sprite, and the playable area more narrow.
  • It seems that new platforms are introduced on the third or fourth background row. Would it be possible to extend the vertical range by making them come in only at the very top, on the first row?
  • Since the Up Monster can only go up, instead of trying to keep the Up Monster in the center of the screen and scrolling down to adjust the view port, perhaps the focus should be on keeping him on the bottom two rows. That way, all the rest of the screen space is actual jumping area.
  • The Up Monster still stops for a few frames at the apex of his jump arc -- it's just hard to notice because he usually goes off the screen when he jumps. You should try to make the arc smoother, following gravity: decelerating as he gets to the apex and accelerating as he comes back down. If you need help with this, I recommend you share your jumping code (not necessarily the whole source code!) for me and others to take a peek.

Now, granted, the above are very minor nitpicks but in my opinion, they would go a long way into making the game feel more solid and polished than just adding new features. I mention this in case you are considering submitting it to the IntyBASIC contest: a tightly polished but simple game with potential, could be preferable to a full-featured but buggy and clunky one. Remember, the "hook" of Doodle Jump was its simple mechanics and its highly addictive nature. Everything else is extra icing on that delicious cake. ;)

 

That said, among new features you could consider are:

  • Making some platforms special:
    • Some could flash and disappear after jumping on them once (making them single-use platforms and adding to the challenge)
    • Some could make the Up Monster jump higher or lower
    • Some could give a random direction adjustment, making the Up Monster move erratically
    • Some could move horizontally making the game more challenging
  • Adding power-ups, like the Doodle Jump jet pack or trampoline
  • Adding more baddies
  • Making the bird do more than just flying steadily from one end to the other

Personally, I would suggest you work on polishing what you have first, rather than adding any new features, but that's up to you, of course. You could also ignore all of this. ;)

 

Great job so far! :thumbsup:

 

-dZ.

  • Like 1
Link to comment
Share on other sites

I tried making the Upmonster smaller, but he looks absolutely puny.

Here is my jumping/falling code.

 

    if jumping=1 then jumptimer=jumptimer+1 : falling=0 : gravitydown=0 : falltimer=0
    if noisetimer>0 then noisetimer=noisetimer-1 : SOUND 1,noisetimer*64,15 else SOUND 1,1,0
    
    if jumping=1 and jumpingthingy<120 then jumpingthingy=jumpingthingy-gravityup
    if jumptimer>18 then gravityup=gravityup-1
    if jumptimer>21 then jumping=0 : falling=1
    if falling=1 then noisetimer=0 : falltimer=falltimer+1 : jumpingthingy=jumpingthingy+gravitydown : jumping=0 : gravityup=3 : jumptimer=0
    if falltimer>8 and gravitydown<3 then falltimer=0 : gravitydown=gravitydown+1

post-9475-0-51395700-1531155190.gif

Link to comment
Share on other sites

Actually, The Up Monster looks kind of cool at that size, better fitting the scale.

 

As for the gravity jump code, it looks like it could be simplified with a simple physics simulation. I'll take a look.

Link to comment
Share on other sites

If you need all the vertical space, here's an odd thought - what if you don't display the score at all until the game is over?

 

Maybe change the background color like in Astrosmash as your score gets higher, and display the score at the end.

 

Or can you can remove the SCORE text and have only the score numbers, and move it to one of lower corners, and maybe this will reduce the amount of space needed

Link to comment
Share on other sites

I prefer to play games where I get to keep track of my score all the time, instead of guessing how good I am and get a verdict at the end.

 

By putting the borders, you also limit how much data you need to move, if I understand correctly 10 columns * 12 rows = 120 characters compared to before when you would move 20 columns * 11 rows = 220 characters. I didn't notice if you were running out of time during the vertical blank, though the less data to shuffle, the faster gameplay or more elements you should be able to add. I understand that you're not using hardware scrolling anyway, as your old score display would not stay in place unless you had implemented it with leftover MOBs, something you obviously could do even with the score on the right hand side.

Link to comment
Share on other sites

What do you think about this look?

attachicon.gifdj18.gif

I got to thinking that I needed all the vertical space I could get. So if I moved the score to the side, it would give me even more vertical space so the upmonster would go up off the screen less often.

 

That's interesting. How about if you move the whole thing to the left a few columns, instead of centered, and give more wiggle-room for the score on the right? You also get to put more stuff there, whatever you want. :)

 

-dZ.

Link to comment
Share on other sites

New version:

attachicon.gifshot0023.gif

 

It's playing better and I have to say that it feels more polished. :)

 

I didn't get take the time to play it too much, but I will say one comment about something that stands out to me as still something critical:

  • Now that the UpMonster is small and I can see him in full on the screen all the time, it has become more obvious that the jumping arc feels odd. There are two jumps that I can see: the "high jump" (the first jump on a platform) and the "short jump" (second and subsequent bounces on the same platform). I don't really understand why there is a difference there, but there is.

     

    The biggest problem is in the "short jump," where he seems to not just jump lower, but that his trajectory is arrested before the apex, causing him to freeze for a couple of frames before while moving up, then just drop down. That's the odd part.

     

    Why not just let him jump the same distance all the time? The "high jump" seems fine. :)

  • I also like the cloudy platforms better than the black blocks.

 

-dZ.

Link to comment
Share on other sites

I fixed the high jump/low jump problem.

 

Nope. It's better, but still there.

 

Can't someone help with the jumping code? Anyone?

 

I'll try to take a stab at it, but I wish others more steeped in IntyBASIC would chime in. Does it warrant moving this thread to the Intellivision Programming Forum?

 

By the way, here's some more feedback on your last revision:

  • I think the vertical space is too narrow. How about expanding it by, say, two columns?
  • Because the jump area is too narrow, a lot of the platforms appear in single file, on top of each other, which reduces the challenge.
  • The jumping still needs a bit of work (but you knew that already)

 

Still, it's getting better. :thumbsup:

 

-dZ.

Link to comment
Share on other sites

For the gravity, I tried to Intellivision-ize what I found here:

http://atariage.com/forums/topic/179473-fake-gravity-platformer-test/

And it hasn't been going very well. Perhaps if I share the entire code, it will serve people better. I doubt anything is wrong with the jumping part, rather it's in the cloud collision part, but I don't know. I'm having so much trouble.

 

dj20.zip

Link to comment
Share on other sites

I'll take a look at the code and see if I can come up with something. Although, keep in mind that I am not an IntyBASIC programmer, so it'll take me a while just to figure out what the code does.

 

In any case, here's a bit of theory. Gravity is a rather simple mechanic to implement: it is just an acceleration adjustment added to the existing velocity of the sprite. The highest and lowest points in the trajectory occur rather "naturally": The former by the negative acceleration of gravity when going up, which eventually causes the velocity to reach zero; and the latter by just colliding with the floor or a platform.

 

 

Acceleration Due To Gravity

So, what do we need then? First we need a gravity constant, let's call it "G". The actual acceleration due to gravity on Earth is 9.8 m/s. However, since you are not making a physics simulation and presumably do not really care about sticking to real-life accuracy, just come up with a value and experiment until it feels right in your game. It also depends on how you measure speed, distance, and time in your game.

 

Then, we need to track the horizontal and vertical velocities of the object in motion, let's call them "VX" and "VY," respectively. These are the rate of change in displacement on a given axis. Again, these depend on how you track speed, distance, and time in your game. It could be pixels/second, pixels/frame, whatever.

 

The horizontal velocity is not affected by gravity (think about that: when you throw something forward, it is only stopped by either a wall, air friction, or when it finally hits the ground -- and even then, it may continue rolling forward with its own momentum). Therefore, we are only concerned with vertical velocity.

 

So, how does it work? Well, in its most simplest way, all you do is add the acceleration due to gravity G to your vertical velocity VY on every movement iteration. Then, update the sprite's vertical position based on this new velocity. In pseudo-code:

G = <set-acceleration-due-to-gravity>

Jump:
  VX = <set-initial-horizontal-velocity>
  VY = <set-initial-jump-velocity>

  While (Not Landed-On-Platform) And (Not Off-Bottom-Of-Screen)
    PosX = PosX + (VX * Time)
    PosY = PosY + (VY * Time)
    VY = VY + (G * Time)
  Loop

What is the "Time" value above? It's a factor that influences the rate of movement. Think of it as the "delay" for each pixel displacement. If, for example, you alternate the Time value between one and zero on every frame, it will cause the movements to be updated on every other frame.

 

 

How Does This Really Work?

If you think about it, since your vertical (jump) velocity is negative (because you are going up), and the acceleration due to gravity is positive (because it pulls you go down), adding +G to -VY will reduce the vertical velocity on every turn, eventually reaching zero. From zero, adding more +G will cause the vertical velocity to increment on every turn, going faster and faster until the sprite either goes off the bottom of the screen (player dies), or hits a platform (player bounces).

 

There is no need to keep track of complicated states like "going up" or "going down" unless there are specific things you want to happen on each case. The fact that the initial vertical velocity is negative and opposes gravity, and that gravity pulls it down little by little; will cause a nice parabolic arc in the actual jump: decelerating slowly until reaching the peak of the jump, then accelerating slowly until you hit the ground or go off the screen.

 

The trick is in picking some nice values for the initial velocity and the acceleration due to gravity constants, to make this cycle of going up and down as smooth and realistic as possible.

 

Does that help?

 

-dZ.

Edited by DZ-Jay
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...