Hacker News

New stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. How to Live Better? (dlgrv.github.io)
    —discuss
  2. A challenging, contamination-free LLM benchmark (livebench.ai)
    —discuss
  3. Sculpting DTS support into a 2020 LG CX (jhm.nz)
    —discuss
  4. Using Device Linking to Eavesdrop on WhatsApp and Signal (schneier.com)
    —discuss
  5. Show HN: Check whether a job posting is still real before you apply (unlisted.careers)
    —discuss
  6. Backblaze Drive Stats for Q2 2026 (backblaze.com)
    —discuss
  7. Rust coreutils acknowledges copying of GNU GPL code (github.com/uutils)
    1comments
  8. Show HN: GitHub has no API to put an image in a PR, so I built a place for one (godrop.sh)
    —discuss
  9. Optimising for fast builds with GHC [video] (youtube.com)
    —discuss
  10. Minecraft inside a particle accelerator is weird [video] (youtube.com)
    —discuss
  11. What makes software development engineering (parksb.github.io)
    —discuss
  12. CoW – a stacking window manager for Wayland (codeberg.page)
    —discuss
  13. What's a CEO Worth Anyway? (mleverything.substack.com)
    —discuss
  14. Show HN: Find Wazuh rules that never fire, including ones dropped at load (github.com/xuxu298)
    —discuss
  15. Planly – offline-first day planner PWA, self-hosts with one Docker Compose up (github.com/drkokorev)
    —discuss
  16. Oya, an agent does a browser task once, then it replays with no LLM (oyabrowser.com)
    —discuss
  17. Meta Enterprise Platform to be led by outgoing MongoDB boss (siliconrepublic.com)
    —discuss
  18. A surprising number of Americans use AI for spiritual reasons (npr.org)
    —discuss
  19. Autonomous AI in Space Exploration Raises New Stakes (ieee.org)
    —discuss
  20. Poetry for Engineers: User Interface Design (ieee.org)
    —discuss
  21. Show HN: HankyDoodle – a Draw Something-style game I built with my kids (hankydoodle.app)
    1comments
  22. 220 Per Cent More Code: Why Meta Stopped Replacing Staff With AI (smarterarticles.co.uk)
    —discuss
  23. The Listening Room Is Having a Design Moment (design-milk.com)
    —discuss
  24. Friends embark on 20-year board game battle (bbc.com)
    —discuss
  25. The days of the online job application are OVER (recruited.org.uk)
    —discuss
  26. Protobuf Everywhere: How Lupyd Uses Protocol Buffers Across Web, Mobile, DB (lupyd.com)
    —discuss
  27. Show HN: Publish a Notion database as a Next.js blog (github.com/loriscomba97)
    1comments
  28. The new Firefox design is here (blog.mozilla.org)
    —discuss
  29. Show HN: Gangway, self-hosted artifacts and apps from folders, PRs, and agents (github.com/charlesabarnes)
    —discuss
  30. AI is like a wall hack for real life (geekbeard.dev)
    —discuss

Show HN: HankyDoodle – a Draw Something-style game I built with my kids

1 pointsby 19m agohankydoodle.app
1 comments
Hi. I'm a self-employed dev of ~15 years mainly known for my SQLPro products. Recently my kids have been getting into drawing and I wanted a game like the old DrawSomething which I used to play a ton. It no longer seems to exist, and the alternatives I tried either had 'watch this ad' or 'pay for coins' to unlock either tools or drawing colours.

HankyDoodle is a draw-and-guess game for iOS and Android. The main part I enjoyed working on was the file storage. I had to come up with a format for the drawing animations that had to be small but store enough information to be able to animate it at playback speeds. It also had to be practical to store and serve hundreds of thousands of them - right now I'm sitting at slightly less than 20,000 drawings. Currently, the drawing sizes are typically between 1 and 12kb.

Drawings are recorded as a stream of operations that include each stroke's tool, colour, points and timing. The format (a small RLE/palette/varint container) and the renderer are one C core, which gets shared + linked multiple ways. This makes sure the rendering is byte-identical across all platforms (iOS, Android and WebAssembly). Unfortunately I did mess up some of the code used for flood fills and if I don't render the image at the same size the drawings come out slightly differently (for that reason I render all drawings at one size then resize after when I need thumbnails). Luckily I did build a version system into the drawings, so it's something future me (sucker) can deal with at some point.

Drawings are stored in S3 and served via CloudFront. The backend is PHP and MySQL, but built in a way that I should be able to scale it out/replace it as needed.

Although it was not originally planned, it makes a pretty neat demo that you can navigate to the website and playback drawings as well. https://hankydoodle.app/d/01M37AKQF6MCRRXCHB3YSAVBVG is an example of one of the more detailed drawings by someone with way more talent than me. The app has a 'word of the day' feature where users can submit their own artwork and that's an example of an extremely detailed one.

Features of the game:

- 1v1 async drawing and guessing. You draw a picture. Your opponent guesses when they get the chance.

- A forever guess mode. If you don't want to draw you can just go in and guess drawings made by others. Drawings get 'released' into the forever guess pool once a user has guessed the drawing.

- A word of the day where anyone can take a crack at drawing the word.

- A showcase where the best drawings can be found.

- Offline drawing, where you can draw while offline and without any sort of signup.

- A 'doodlepedia' where you can try and draw every word.

- An online portfolio of your drawings (such as https://hankydoodle.app/u/TP1N34).

- Privacy mode, where your drawings are private and only the folks you draw with can see them.

- Family mode where certain drawings and words get filtered completely out of your view.

The app has an unobtrusive banner ad which can be removed via a $3.99USD/year subscription. I know people don't like subscriptions, but that was the best alternative I could come up with and still keep the app free to most while covering my costs.

Happy to go deep on the format, the renderer, the fill, or the solo-dev tradeoffs.

12m agoHN ↗

Tech:

It's built with SwiftUI on iOS and Jetpack Compose on Android, both sitting on top of a shared C codec and renderer (also compiled to WebAssembly for the website). PHP/MySQL for the backend, and S3/CloudFront for storage.

Every new use starts with a game that includes one of my previous drawings. Yes, that's really me (I get lots of folks writing 'Are you an AI?'). Depending on what I'm up to, it may take me a bit to respond to drawings. I do store my drawings so I can re-send them to different users as I get LOTS of drawings per day and drawing a new one each time would leave me with no time left to work on anything else.

App Store: https://apps.apple.com/app/hankydoodle/id6754983889 Google Play: https://play.google.com/store/apps/details?id=com.hankinsoft...