carlsson Posted July 8, 2018 Share Posted July 8, 2018 (edited) 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. 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 July 8, 2018 by carlsson 2 Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted July 8, 2018 Share Posted July 8, 2018 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. bird.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. 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. Quote Link to comment Share on other sites More sharing options...
carlsson Posted July 8, 2018 Share Posted July 8, 2018 Thanks. It seems even two frames would be good enough if you pick the extreme ones: Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted July 8, 2018 Author Share Posted July 8, 2018 (edited) Tried again. This time I took the rightmost bird in carlsson's gif above and (tried to) Intellivision-ize it. I also made a little chirping sound to warn you that the bird is about to come on screen. Edited July 8, 2018 by atari2600land 4 Quote Link to comment Share on other sites More sharing options...
carlsson Posted July 8, 2018 Share Posted July 8, 2018 Cute! I'll admit the square and simple animation better fits rest of your graphics, if you're going for the look of how this game could've looked 40 years ago, as a quick cash-in port of an Atari 2600 game. Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted July 9, 2018 Author Share Posted July 9, 2018 Added more frames to the flapping sequence: Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted July 9, 2018 Share Posted July 9, 2018 Added more frames to the flapping sequence: You may want to unset the priority bit of the bird so that it flies in front of the platforms. Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted July 9, 2018 Author Share Posted July 9, 2018 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. dj16.rom 2 Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted July 9, 2018 Share Posted July 9, 2018 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. 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! -dZ. 1 Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted July 9, 2018 Author Share Posted July 9, 2018 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 Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted July 9, 2018 Share Posted July 9, 2018 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. Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted July 11, 2018 Author Share Posted July 11, 2018 New version. Found and fixed a bug that wasn't allowing player 2 to warp around the screen like player 1 was. dj17b.rom 1 Quote Link to comment Share on other sites More sharing options...
+JasonlikesINTV Posted July 11, 2018 Share Posted July 11, 2018 (edited) I didn't like the way the bird looked, so I changed it. ^^This is by far my favorite bird! Well, second only to this one: https://youtu.be/p_85Vvqes3o Edited July 11, 2018 by JasonlikesINTV Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted July 12, 2018 Author Share Posted July 12, 2018 What do you think about this look? 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. Quote Link to comment Share on other sites More sharing options...
+fdr4prez Posted July 12, 2018 Share Posted July 12, 2018 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 Quote Link to comment Share on other sites More sharing options...
carlsson Posted July 12, 2018 Share Posted July 12, 2018 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. Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted July 12, 2018 Author Share Posted July 12, 2018 New version: dj18.rom Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted July 12, 2018 Share Posted July 12, 2018 What do you think about this look? dj18.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. Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted July 12, 2018 Share Posted July 12, 2018 New version: shot0023.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. Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted July 12, 2018 Author Share Posted July 12, 2018 I don't know why there's two different types of jump, either. It just came out that way. I tried to fix that, but was unsuccessful. Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted July 12, 2018 Author Share Posted July 12, 2018 I fixed the high jump/low jump problem. dj19.rom Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted July 14, 2018 Author Share Posted July 14, 2018 (edited) Can't someone help with the jumping code? Anyone? Edited July 14, 2018 by atari2600land Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted July 14, 2018 Share Posted July 14, 2018 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. -dZ. Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted July 15, 2018 Author Share Posted July 15, 2018 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 Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted July 15, 2018 Share Posted July 15, 2018 (edited) 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 July 15, 2018 by DZ-Jay Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.