• londons_explore 5 hours ago

    Really wish the app store had a "only apps under 10MB" filter.

    The fastest, least ad-filled and micropayment filled apps are usually the small ones. By downloading a 3 megabyte thermometer app you'll be much happier than a 150 megabyte thermometer app.

    • onlyforthat 4 hours ago

      I remember there was a publisher in Play Store who had very small apps like single digit kb flashlight, sudoku, calender, etc. I can't find them now. Those apps were really small all within <200kb

      • Sarkie 18 minutes ago
        • butz 3 hours ago

          Google Play probably kicked them off for not using latest Android SDK or something. So many tiny and high quality apps were lost.

          • azthecx 2 hours ago

            I use the minesweeper, sudoku and solitaire apps from dustland design (search pub:Dustland Design) they're very minimalistic and clean.

            There's also currency / unit converter and calendar by Sam Ruston which are in the same vein very good and clean.

            • bcraven an hour ago
            • Vt71fcAqt7 an hour ago

              How would this feature handle an update that increases the file size? What about apps that download assets after you install them?

              • Ylpertnodi 10 minutes ago

                Isnt this one of the world’s software ...why would a thermometer (for example) app need updating? And, would you let it?

            • melvinroest 6 hours ago

              Tangentially related, I once wrote a literature review on why people play Flappy Bird. I was a graduate student in game studies at the time. Ultimately, I never pursued the academic route, just sharing it for fun.

              For the curious minds, here it is [1].

              [1] http://www.fdg2015.org/papers/fdg2015_paper_60.pdf

              • ddev0 4 hours ago

                I have always felt there is something fascinating going on behind Flappy Birds' infamous difficulty curve that warrants deeper study.

                On the one hand, there is no actual progression or ramping of difficulty in the game itself. The difficulty level remains the same whether your current score is 0 or 10 or 100. But every new highscore represents a new summit that the player has to scale. The first and maybe the most frustrating summit to scale is scoring a single point. To get your score into the double digits, the player has to have basic mastery of the core mechanics - including the precise physics, and timings- and learn how to handle a certain number of scenarios. The obstacles on the path to triple-digit territory and beyond seem almost self-imposed. The fear and tension as you approach your own highscore is the biggest impediment to breaking your highscore. Once you break that highscore - the hand tremors magically disappear the next time you approach it, only for it to re-appear as you near your new highscore.

                All this, when the basic concept of the gameplay is deceptively simple. Like i said, there are many layers to unpack for someone who is willing to look into it.

                • lencastre 28 minutes ago

                  Asking for a friend, are flappy bird’s levels always the same, or are the pipe heights/opening sizes random?

                  • code_duck 2 hours ago

                    Many early 80s 8-bit console games worked this way. I'm thinking of games like Transbot for the Sega Master System. There are a few different levels, with various enemy configurations and scenery, but it has no ending and goes on forever without any real changes.

                  • p0w3n3d 12 minutes ago

                    As an expert in Flappy Bird I Will tell it's because people love to approximate polynomials...

                    • mctt 4 hours ago

                      "It is surmised that conditioning is enforced via several cogni- tive biases that trick a player into expecting euphoria (liking- pathway), when instead frustration is yielded – with condi- tioning being iterated to a point that the player is motivated to interact with the game on a foremost instinctual level. We posit that these stimulations of the wanting-pathway may lead to players interacting with the game not only with- out actually liking it, but also without knowing why they are interacting with the game. Indeed, this calls for drawing another parallel between drug addiction, and play behaviour in which liking may be barely exhibited (cf. [16, 38, 40])."

                      • johnisgood 2 hours ago

                        Thank you for sharing, great work!

                      • habibur 7 hours ago

                        Less than 4k loc.

                           457 android_native_app_glue.c
                           360 audio.c
                           802 game.c
                           201 init.c
                            93 main.c
                            39 mouse.c
                            38 shaders.c
                           229 texture.c
                          1377 upng.c
                            27 utils.c
                          3623 total
                        • kgeist 5 hours ago

                          A student of mine had an assignment to write a game using SFML, they wrote a FlappyBird clone and it was like a few hundred lines of code. It's not a very complex program to write. To be honest, I think 4k is too much :)

                          • dario_od 5 hours ago

                            Are you including SFML loc in that total?

                            • kvemkon 4 hours ago

                              3623 total - 1377 upng.c (3rd-party tiny PNG image decoding library) = 2246

                              • snvzz 5 hours ago

                                To be fair, Android itself requires some level of fluff.

                                So does making the game work well in more than one device.

                              • londons_explore 5 hours ago

                                A shame that 4k loc compiles to over 100k of binary size.

                                • mdp2021 27 minutes ago

                                  It compiles to 37kb of 32bit code and to 48kb of 64bit code.

                                    /lib/arm64-v8a/libflappybird.so    48kb
                                    /lib/armeabi-v7a/libflappybird.so  37kb
                                    assets:     29kb
                                    icon:        3kb
                                    signature:  12kb
                                  
                                  Plus the manifest (2kb) and resources.arsc (0.5kb)
                                  • lern_too_spel an hour ago

                                    It doesn't. The total APK size is less than 100k, including images and sounds.

                                    • kvemkon 4 hours ago

                                      actually including both architectures: armeabi-v7a + arm64-v8a

                                      to check:

                                      - dependencies statically compiled-in

                                      - debug symbols

                                  • freitzzz 7 hours ago

                                    Really cool! I just love seeing Android apps that weight less than a 1MB and run anywhere, even on your old HTC.

                                    Congrats!

                                    • mdp2021 7 hours ago

                                      Also an assessment of speed gains would be nice.

                                    • tiffanyh 2 hours ago

                                      Super Mario Bros was just 40KB

                                      https://news.ycombinator.com/item?id=21213421

                                      • p0w3n3d 16 minutes ago

                                        Too fast on my Samsung A52s

                                        • robbiewxyz 4 hours ago

                                          This reminds me of code golf, an activity I had some good fun with as a young teen.

                                          Coincidentally, one of my first contributions to the community was a low fidelity "flappy bird" clone in less than 0.5 kb of javascript. Maybe someone will find fascination in my old hobby and its surrounding community:

                                          https://codegolf.stackexchange.com/a/23452

                                          • forgotpwd16 40 minutes ago

                                            If constrained by size of result rather source you get sizecoding, a generalization of demoscene.

                                            • lifthrasiir 3 hours ago

                                              Do you still accept more optimizations? :-) I believe there are tons of mechanical substitutions that can be made there, for example `i%17?r+=z:r+='|\n|'+z` should simplify into `r+=i%17?z:'|\n|'+z`.

                                            • mdp2021 7 hours ago

                                              Could this technique, using rawdrawandroid to write C applications for Android, also use raylib (and other C frameworks)?

                                              And maybe could this developing system be used through Termux, to have a C development environment on Android for Android?

                                              • deniska 5 hours ago

                                                Yes, raylib does support android. I have a slightly incomplete build script I use for my raylib projects (obviously you need to take better care of signing, you probably want to build for other targets besides aarch64, your SDK is probably not installed in /home/denis, and I'm not sure whether I'm adding .so files to apk in a way modern android prefers, but it still works).

                                                https://gist.github.com/deniska/f1ee73e18e1444eb724c01f933b6...

                                              • userbinator 7 hours ago

                                                "For Android" implies Java is usable, and bytecode can be very dense, so IMHO this could be even smaller.

                                              • huem0n 3 hours ago

                                                Nice codebase . That's some if the best looking C I've seen in a while.

                                                • sureglymop 7 hours ago

                                                  That's amazing! I wish there was something like rawdrawandroid for Rust.

                                                  • ladyanita22 7 hours ago

                                                    Same, would like to see the same but implemented in Rust

                                                  • akirk 7 hours ago

                                                    Great work! Good to see what only it takes to run on Android! On the other hand it also shows how much comes "for free" or made easier by using the provided sdks. For example volume control doesn't work while running this. Also resuming the game after switching away. Maybe that's relatively easy to save and restore state, though.

                                                    • nubinetwork 5 hours ago

                                                      So this is an android apk, and not a Linux app that just happens to run on android? I'd really be curious as to why most android apps are huge...

                                                      • freitzzz 5 hours ago

                                                        Most Android apps are huge because they bundle tons of assets just to accommodate the “initial experience of the user”. Also, using bloat libraries and frameworks (any shipped by Google), increase the apk size.

                                                        Nowadays Google offers a solution for this problem called app bundling. It’s especially good if you build a mono app that behaves differently in certain regions. Instead of delivering a raw apk, you deliver a region specific app bundle.

                                                        • londons_explore 5 hours ago

                                                          I'm unaware of any apps that behave totally differently in different regions.

                                                          Sure - there are sometimes a few disabled features in one region or another, but is that really worth shipping a totally different binary for?

                                                          Even language packs can be tiny even for 200+ languages if they're pure text.

                                                          It's only when you get language/region specific artwork that there's a problem.

                                                      • cies an hour ago

                                                        Interesting to see what a Windows-based project looks like. I haven't used Windows for ages. Seeing the .bat files and vsproj files gave me nostalgic feelings.

                                                        • laweijfmvo 5 hours ago

                                                          isn't this kind of what Flutter is? a (relatively big) framework to just draw frames to a barebones Android app.

                                                          • tropicalfruit 7 hours ago

                                                            i realised recently, there is a correlation between the file size of a game and how likely i am to enjoy it.

                                                            the smaller the file size the more likely i am to enjoy it. and the opposite is true.

                                                            i think part of it is time investment. having less time. i dont see much value in 60gb of 4k graphics textures.

                                                            pac man on the atari or snes is maybe less than 100kb, while modern pac man could be easily 10gb or more. same for tetris or any game with the same gameplay that hasn't changed much.

                                                            • animuchan 6 hours ago

                                                              I totally support this!

                                                              Coincidentally I wrote a small 2048-inspired game just recently, it's under 13 KiB (zipped; the "real" file is about 30 KiB): https://js13kgames.com/2024/games/king-thirteen

                                                              If you're interested to check it out, please tell me what you think :)

                                                              • msephton 5 hours ago

                                                                I got a GOTY 2023 for my game YOYOZO which is just 39KB and includes custom physics, online high scores, two music tracks, and more. https://news.ycombinator.com/item?id=38372936

                                                                • bubblesnort 6 hours ago

                                                                  The game I like most is a multiplayer immersive reality game in 0 bytes called frogger, where I'm the frog.

                                                                  Beat that! ;)

                                                                  • graynk 3 hours ago

                                                                    Animal Well is 33 MB and is absolutely great

                                                                    • coumbaya 7 hours ago

                                                                      You'll love Desert Golfing then.

                                                                      • nubinetwork 6 hours ago

                                                                        NESert golfing is better...