Author Topic: Flappy Bird by Josiah W  (Read 28822 times)

0 Members and 2 Guests are viewing this topic.

Offline JWinslow23

  • Coder Of Tomorrow
  • LV7 Elite (Next: 700)
  • *******
  • Posts: 556
  • Rating: +43/-6
  • I make quality calculator games...when I have time
    • View Profile
Flappy Bird by Josiah W
« on: February 20, 2014, 06:54:24 pm »
Everyone, here it is...MY OWN FLAPPY BIRD!

This started out as a demo I made in a day, and it has since expanded into something a little bit extra. ;)
Rules
If you live in a modern era, you don't need to be explained to about what this game is. :P
Controls
UP: Fly
2nd: (at GAME OVER): Restart
CLEAR: Exit
Del (at GAME OVER): Delete highscore (no confirmation!)

v1.10 download attached (one of my latest posts should have the lastest version). Source is AFLPBIRD, No-Shell compiled game is FLPYBIRD.

Together, we can all get more of OUR Flappy Bird calculator downloads than the ORIGINAL... :evillaugh:
Spoiler For Changelog:
v1.0: First public release
v1.1: Made minutes afterwards; heavy optimization thanks to Runer112 :)
v1.2: More eyecandy, optimizations thanks to Hayleia, and HIGHSCORES due to Matrefeytontias :D
Thanks, all of you! ;D
v1.3: Parallax!!!!!! ;D
v1.4: Added clouds, added "highscore delete" feature, and made some minor optimizations
Please don't blame me if your highscore gets deleted. :/
v1.5: Changed graphics due to suggestions by DJ Omnimaga and LDStudios (surprised it still beats ClrDraw's version in terms of bytes, but optimizations are still welcome ;) )
v1.6: Changed pipe graphics as suggested by LDStudios and Hayleia, and added GAME OVER debounce from Streetwalrus :)
v1.7: Made some minor optimizations, updated bird graphic at request of nobody, and added MEDALS! ;D
Thanks to Matrefeytontias for explaining strGet() to me! :D
v1.8: Made a LOTLOTLOT of optimizations, including optimization of the point increment routine, AND made my code unreadable to any human :P
v1.9: Optimization FRENZY!!!!!!!! Size: 2,524 bytes, which is mainly due to me eliminating the need for the flying/falling flag F.
Thanks to Runer for pointing it out to me!!! :D
v1.10: Optimization FRENZY 2!!!!!!!!!!! Size: 2,372 bytes!!!!!!!!! ;D ClrDraw, you have just met your maker.
(thank you, Runer XD )
v2.0: Thanks to willrandship for explaining Bitmap() to me (and Kerm Martian's SourceCoder for converting), I have bitmapped my way to new eyecandy. :D
v2.1: Optimized, and added a tasty Easter egg...see if you can find it. ;)
v2.2: Optimized, and added another Easter egg...find it, too... >:D
Oh, and some more optimization/feature suggestions are welcomed!

P.S. ClrDraw, you have met your match. This program is it.
« Last Edit: April 07, 2014, 07:53:13 pm by JWinslow23 »
Did you know that "Ammonia Gas" rearranged is "As Omnimaga"?
Click here for the only set of games you'll ever need
= ?

Offline LDStudios

  • Coder Of Tomorrow
  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 388
  • Rating: +41/-1
    • View Profile
    • LD Studios
Re: Flappy Bird by Josiah W
« Reply #1 on: February 20, 2014, 07:01:38 pm »
Looks nice Winsy, as always. Pretty soon, ticalc will have a whole folder for flappy bird category games :P



Offline JWinslow23

  • Coder Of Tomorrow
  • LV7 Elite (Next: 700)
  • *******
  • Posts: 556
  • Rating: +43/-6
  • I make quality calculator games...when I have time
    • View Profile
Re: Flappy Bird by Josiah W
« Reply #2 on: February 20, 2014, 07:05:06 pm »
Lol, kinda like the whole folder for "Lights Out" games in BASIC. :P I hate sharing Shutdown's spotlight.

Anyways, thanks, LD! Ironic you're the first to respond...you and I could team up with our Flappy Bird clones to take down [wikipedia=]Dong_Nguyen[/wikipedia]... :evillaugh:
« Last Edit: February 20, 2014, 07:05:22 pm by JWinslow23 »
Did you know that "Ammonia Gas" rearranged is "As Omnimaga"?
Click here for the only set of games you'll ever need
= ?

Offline TIfanx1999

  • ಠ_ಠ ( ͡° ͜ʖ ͡°)
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 6173
  • Rating: +191/-9
    • View Profile
Re: Flappy Bird by Josiah W
« Reply #3 on: February 20, 2014, 07:53:21 pm »
Yet another Flappy bird clone I see. It does look pretty nice though. :) I like the bird sprite too, It kind of reminds me of pac-man. :D

Offline JWinslow23

  • Coder Of Tomorrow
  • LV7 Elite (Next: 700)
  • *******
  • Posts: 556
  • Rating: +43/-6
  • I make quality calculator games...when I have time
    • View Profile
Re: Flappy Bird by Josiah W
« Reply #4 on: February 20, 2014, 08:07:05 pm »
Everybody says that. Why does everybody say that he's PacMan? :mad:

I'll probably change the sprite.


Oh, and this is only the 4th for TI-OS. :P
Did you know that "Ammonia Gas" rearranged is "As Omnimaga"?
Click here for the only set of games you'll ever need
= ?

Offline nspireguy

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 158
  • Rating: +11/-6
    • View Profile
    • NspireGuy
Re: Flappy Bird by Josiah W
« Reply #5 on: February 20, 2014, 09:20:47 pm »
to much flappy. i like it!!!

Offline JWinslow23

  • Coder Of Tomorrow
  • LV7 Elite (Next: 700)
  • *******
  • Posts: 556
  • Rating: +43/-6
  • I make quality calculator games...when I have time
    • View Profile
Re: Flappy Bird by Josiah W
« Reply #6 on: February 20, 2014, 09:22:02 pm »
Thanks! But there's more to come. *.*

EDIT: Update!

Look in the original post.
« Last Edit: February 20, 2014, 09:38:47 pm by JWinslow23 »
Did you know that "Ammonia Gas" rearranged is "As Omnimaga"?
Click here for the only set of games you'll ever need
= ?

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Flappy Bird by Josiah W
« Reply #7 on: February 20, 2014, 11:16:19 pm »
Looks nice, but I think that at this rate, it's only a matter of time before the following links work :P http://www.ticalc.org/pub/83plus/basic/games/arcade/flappybird/ & http://www.ticalc.org/pub/83plus/asm/games/arcade/flappybird/

Offline JWinslow23

  • Coder Of Tomorrow
  • LV7 Elite (Next: 700)
  • *******
  • Posts: 556
  • Rating: +43/-6
  • I make quality calculator games...when I have time
    • View Profile
Re: Flappy Bird by Josiah W
« Reply #8 on: February 21, 2014, 12:09:12 am »
Lol. :P

Update tomorrow! It will fix a bug I had in scoring. And, what everyone was (hopefully) hoping for...
HIGH SCORES! ;D

Anyways, it will also have a different layout (i.e. the score will appear on the right :P ).
Did you know that "Ammonia Gas" rearranged is "As Omnimaga"?
Click here for the only set of games you'll ever need
= ?

Offline TIfanx1999

  • ಠ_ಠ ( ͡° ͜ʖ ͡°)
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 6173
  • Rating: +191/-9
    • View Profile
Re: Flappy Bird by Josiah W
« Reply #9 on: February 21, 2014, 12:15:59 am »
I actually like the sprite, so i wouldn't mind if you left it the same.

Offline JWinslow23

  • Coder Of Tomorrow
  • LV7 Elite (Next: 700)
  • *******
  • Posts: 556
  • Rating: +43/-6
  • I make quality calculator games...when I have time
    • View Profile
Re: Flappy Bird by Josiah W
« Reply #10 on: February 21, 2014, 12:18:11 am »
Well, good. I can't sprite a bird 8x8 to save my life, anyway. :P
Did you know that "Ammonia Gas" rearranged is "As Omnimaga"?
Click here for the only set of games you'll ever need
= ?

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Flappy Bird by Josiah W
« Reply #11 on: February 21, 2014, 01:07:11 am »
Some optimizations I might have seen in your code ("might" because maybe they don't work, try at your own risks :P).

You did that: 0->Y->E->P
But for some reason, you didn't do that, just below: 1->F->Q
Moreover, +1 is more optimized than 1 (if hl=0 obviously) so you can do 0->Y->E->P+1->F->Q.

rand^35+1->R
35->S
rand^35+1->T
69->U
rand^35+1->V

You can routinize the rand^35+1->V, and maybe you can do 35->S*2-1->U to avoid loading 69, but I am not sure it saves that much space. Must save one byte at most -.-

~1->X
For(12)
Pt-On(X,43,Pic2)^^r
X+8->X
End

can be written as
~9->X
For(12)
Pt-On(X+8->X,43,Pic2)^^r
End

(where ~ is the little minus sign)

Repeat getKey(15)
<whatever>
End

is less optimized as
While 1
<whatever>
EndIf getKey(15)

if you don't mind <whatever> to be executed at least once.

If E<<0
0->E
1->F
End

can be written as
If E<<0
->F-1->E
End


!If F
E-38->E
If E<<0
->F-1->E
End
Else
E+25->E
End

is better as
!If F
If E<<0
->F-1->E
End
~38->E
Else
25
End
+E->E


A=B?? is less optimized than A-B?.

If B=9
0->F
500->E
End

is better as
!If B-9
0->F
500->E
End

and is even better as
!If B-9
->F
500->E
End


rand^35+1->R was said previously, but you still can routinize rand^35+1 ;)

Rect(83,0,10,R
Rect(83,R+24,10,39

IIRC, you have a 84+ or a 84+SE, so you can waste two bytes and close those parentheses to avoid triggering unnecessary Axe bugs :P
Matref usef to have only a regular 83+, so he used to did everything to save space, but that's not your case (and by the way, if this is the reason why he lost points in source code in the Omnimaga contest, this is stupid because his code was ten times more optimized than TipOver's. TipOver for example included that part
T++
If T=256
0->T
End

which can be optimized as
T++
If =256
0->T
End

then
T++
!If -256
0->T
End

then
T++
!If -256
->T
End

and if you think 4 seconds about 256, you even realize that this fits in 3 bytes with {°T}++).

Pic0+X is less optimized than X+Pic0. Always put constants at the end of an expression (if you can, obviously).

Text(0,0,P>Dec is better as Text(0,,P>Dec) (same for Text(0,0,"Score: ",P>Dec). And instead of calculating P at the previous line, you can include it in the Text command. I feel like P+(Q=15??(S=15??U=15))->P is optimizable but I have school in one hour :P

That's all for now :P
Once again, I advise you to backup your code and try those optimizations one after the other and try them separately in case I coined "opts" that don't work :P
And of course, those are only "basic" opts, I didn't try to figure out what the whole code did to find an algorithm that does the same in a faster/smaller way.
« Last Edit: February 22, 2014, 03:55:46 am by Hayleia »
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s

Offline TheMachine02

  • LV6 Super Member (Next: 500)
  • ******
  • Posts: 452
  • Rating: +105/-0
  • me = EF99+F41A
    • View Profile
Re: Flappy Bird by Josiah W
« Reply #12 on: February 21, 2014, 05:35:58 am »
Also, every

Code: [Select]
If E<<0
...
can be optimized like that :
Code: [Select]
If E.32768
.it is the plot   .   token

(this is mainly a speed optimization, don't know if it will save some bytes).

Anyway, seems pretty good  version of Flappy :P
« Last Edit: February 21, 2014, 05:36:55 am by TheMachine02 »
AXE/asm programmer - unleash the power of z80 //C++//C

epic 3D things http://www.ntu.edu.sg/home/ehchua/programming/opengl/CG_BasicsTheory.html

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Flappy Bird by Josiah W
« Reply #13 on: February 21, 2014, 11:20:24 am »
I don't know if that optimizes speed either, but if you use this, don't use the optimizations I added because this
If E<<0
->F-1->E
End

will not do the same with a E.32768.
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s

Offline JWinslow23

  • Coder Of Tomorrow
  • LV7 Elite (Next: 700)
  • *******
  • Posts: 556
  • Rating: +43/-6
  • I make quality calculator games...when I have time
    • View Profile
Re: Flappy Bird by Josiah W
« Reply #14 on: February 21, 2014, 01:36:56 pm »
Some of them worked...yet not the one with !If F (mostly due to command flow). :P

I did, however, make a routine which saved a lot of space!
Did you know that "Ammonia Gas" rearranged is "As Omnimaga"?
Click here for the only set of games you'll ever need
= ?