yappy blog

  • [Update] 2.1.1 (4/10/25)

    App store!

    It’s finally happening! After a months-long struggle with the iOS app store and a ton of back and forth, Lil Yappy was finally approved and live in the app store. It took meeting with a member of the App Review team in a zoom call and discussing it directly to finally get it through. The team member was very gracious, and I’m a bit more understanding towards them now… they’ve reviewed thousands of similar apps and at a high frequency, so the reviewers may miss things and things slip through the cracks.

    Anyways, just happy it’s over with and validated that my game is original enough to live in the app store. 🎉🎉🎉

    Links to the mobile app are on the home page.

    Challenges

    In my effort to differentiate this game from other “Flappy Bird” type games, I switched up the gameplay pretty significantly to be based around completing mini challenges. Completing a challenge gives the player a reward item (like the mushroom, potions, etc) and failing a challenge subtracts 1 life. Bombs don’t subtract lives anymore, they just stun the player for 3 seconds which makes it harder to complete challenges and collect rewards.

    Overall I’m very happy with this change, imo it does make the game feel pretty different than other “flappy” like games.

    wait so now what 👀

    I’m proud of the state that the game’s in but it still feels kinda half baked. There’s a lot more work to do on this game…

    • The XP system is just sort of “there”, I think there’s more things I can do with it.
    • I still need to push on my marketing ideas, and will probably focus on that now.
    • Monetization… I know I gotta add monetization eventually (ads?) but don’t want it to turn people off from trying the game initially while it’s still trying to find an audience
    • I also scrapped the “custom mode” entirely (for now?) because it got low interactions in the testing phase, and frankly I don’t expect anyone wants construct a messy JSON to create their own levels when there’s no incentive to.

    after months of grinding on this game, I also wanna try some other things, so I’ll be working on a different game at the same time. it feels good to get this one out there, I’ve built a lot of reusable components that I can use to make future games, if i decide to stick with using Phaser. which now I kinda wish i used unity instead cause man phaser can be such a pain in the ass. like all my text elements are just div elements cause i wanted more control over the text’s positioning and rendering but that also means they always render above the game canvas so i can’t put text under a game sprite for example. anyways.

  • [Update] 1.2.0 (3/15/25)

    LIL YAPPY

    Trying to shift the game’s identity away from being seen as just a “flappy bird clone” and make it more distinct. The default skin is also now the flying pizza slice instead of the pepe bird.

    All of this was triggered by a rejection from the iOS app store for being a “copycat app”, which I reject but can also understand their reasoning. Hopefully these changes make it clear that I want the game to be seen as its own thing… 🤞

    On the bright side, the app was approved on the Google Play store!

    https://play.google.com/store/apps/details?id=com.sqdbk.yappy

    The mobile site (on Android) will now show a banner to encourage users to download the game from the Play Store instead of playing in browser.

  • [Update] 1.0.3 (2/27/25)

    v1

    Jumped from 0.6.0 -> 1.0.x. It’s time, can’t wait forever. This is also the version initially submitted to app stores, so seems appropriate to call it the “official” release.

    Locales

    A bunch of locales have been added! Thank ChatGPT for the translations because I don’t have the budget or time for professional translations. I tried to audit the translations as best I could but likely has some weird errors. Should be fine for the MVP though.

      [LocaleTypes.Arabic]: 'العربية',
      [LocaleTypes.Bengali]: 'বাংলা',
      [LocaleTypes.German]: 'Deutsch',
      [LocaleTypes.English]: 'English',
      [LocaleTypes.Spanish]: 'Español',
      [LocaleTypes.French]: 'Français',
      [LocaleTypes.Hindi]: 'हिन्दी',
      [LocaleTypes.Italian]: 'Italiano',
      [LocaleTypes.Indonesian]: 'Bahasa\nIndonesia',
      [LocaleTypes.Japanese]: '日本語',
      [LocaleTypes.Korean]: '한국어',
      [LocaleTypes.Portuguese]: 'Português',
      [LocaleTypes.Russian]: 'Русский',
      [LocaleTypes.Thai]: 'ไทย',
      [LocaleTypes.Turkish]: 'Türkçe',
      [LocaleTypes.Vietnamese]: 'Tiếng Việt',
      [LocaleTypes.SimplifiedChinese]: '简体中文',

    The default locale for new users is set based on the browser’s default locale. Confirmed this works for the native version too, though I haven’t tested every locale.

    screenshot

    Menu NUX

    Pop up text bubbles now appear on key menu buttons to instruct users on how to change controls

    Default to tap controls

    Tap controls are now the default for new players, and voice controls can be optionally set manually. I received feedback that tap controls are a lot more fun and less awkward than voice controls, though the whole idea for this game revolved around supporting voice controls. I’ll just need to keep tweaking it and make it more fun…

    Custom mode

    Added a bunch of documentation on how to create custom mode levels. Since this will be a major focus in upcoming “marketing”, it seems important to actually explain how the levels are constructed. Also added in-app validation error modals whenever an invalid level is entered, with (hopefully) relevant error messages.

    I’m honestly not sure how accessible this feature actually is, but the functionality and documentation is there now.

  • [Update] 0.6.0 (2/14/25)

    Unlockable backgrounds

    Added some backgrounds that can be unlocked by unlocking a certain amount of bird skins. Main motivation for including this was to have more variety of visuals to use in app store screenshots, but also seems like a fun thing to have in the game anyways.

    screenshot

    Spanish localization

    This also sets up localization for other languages with longer words than English. Chinese was easier because the characters all typically fit into whatever space was allocated for English words, but many of the Spanish words ended up being longer which required some UI tweaking.

    New spawn chunks in different designs

    Rainbows and stars and other fun stuff

    Custom level improvements

    Removed the json input box for preset custom levels. Originally intended to include those as examples for how to construct a custom level, but received feedback that it wouldn’t be useful to anyone who isn’t familiar with random json formatted text and can even seem intimidating. Replaced it with preview videos of what the custom level looks like.

    screenshot

  • [Update] 0.5.0 (2/3/25)

    The navbar is back because i don’t want to build a new website for squidbeak studios right now, I already have this stuff anyways. might as well keep going with it.

    There’ve been a few minor updates to fix random bugs that came about because I was rushing other updates out, and also finally fixing the annoying iOS AudioContext bug stopping. I’ll probably put out a separate post detailing the problem and fix for that in case it helps anyone else building a phaser game is running into this.

    Otherwise, just some random gameplay tweaks here and there. We’re getting close!

  • [Update] Pre-0.5.0

    Using wordpress for the blog content instead of hardcoded markdown. Still all static content in the end, but this makes things easier for me. Also I’m still assuming I’m just talking to myself here 🌝

    Recording old updates here for posterity…

    🌎 0.4.0 (1/31/25)

    • removing the navbar from the web page, which means this site wont be accessible either i guess? gonna spin up a new website for squidbeak studios instead for this content. but still wanna record all the deployment version and what i’m updating
    • big change to replace all of the english strings previously rendered with bitmap text to be div elements and text rendered by the browser itself, so it’s easier to control and lets me localize strings to other languages. which does present a new unfortunate side effect that i cant overlay multiple modals that contain text since all the dom elements are on top of the game itself, and the modal backgrounds are still images inside the game. but i dont do overlaid modals currently anyways so its fine
    • increased the game height because it looks goofy in the native app with such big header and footers. this definitely feels better, but will need to test it out and make sure everything still feels fine. luckily most things relied on “GridY” instead of a hardcoded y value so good on me for setting it up that way i guess
    • and of course the big update… chinese localization woohooo now the fam can enjoy it more

    🏆 0.3.0 (1/29/25)

    • added leaderboards for normal and classic modes
    • better game over screens
    • more dom elements for texts, eventually wanna switch over every bitmap text to a dom element so i can localize all strings
    • gameplay tweaks
    • half-fixed a bug where audio stops after backgrounding the tab

    ☕️ 0.2.0 (1/24/25)

    • just chuggin along. think it’s getting close to being a “complete” version of the game
    • more variety of spawn patterns
    • added potion power ups that spawn bombs after it, which transform into coins/gems matching the potion’s color
    • changed mushrooms to spawn bombs in the shape of words after it
    • more skins for normal and custom modes
    • custom mode improvements and more validation logic on inputs

    🧳 0.1.0 (1/21/25)

    • tweaking how things are spawned
    • new skins for collecting items
    • added extra heart item that has a posibility to appear when player has 1 life remaining
    • high score indicator
    • custom mode improvements and some validation logic on custom mode inputs
    • fix some issues with google indexing
    • gonna start numbering versions by major/minor version (x.y.?) and won’t call out changes in patch versions (?.?.x)

    🔧 0.0.2 (1/14/25)

    • navbar for web version to include more content on page. originally i wanted it to be a simple, single page but still need somewhere to put misc content like this and the privacy policy. and i need the content to get ads on the game
    • fleshing out the custom mode stuff. it’s still not very straightforward, like you need to manually create the json that describes where all the items should go, but will work towards making it easier. like a drag n drop gui or something that spits out the corresponding json

    🎉 0.0.1 (12/31/24)

    • first version of yappy bird is up 🎉🎉🎉
    • basic version of game to collect some early feedback. lots of improvements incoming…