Hacker News

New stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Planly – offline-first day planner PWA, self-hosts with one Docker Compose up (github.com/drkokorev)
    —discuss
  2. Oya, an agent does a browser task once, then it replays with no LLM (oyabrowser.com)
    —discuss
  3. Meta Enterprise Platform to be led by outgoing MongoDB boss (siliconrepublic.com)
    —discuss
  4. A surprising number of Americans use AI for spiritual reasons (npr.org)
    —discuss
  5. Autonomous AI in Space Exploration Raises New Stakes (ieee.org)
    —discuss
  6. Poetry for Engineers: User Interface Design (ieee.org)
    —discuss
  7. Show HN: HankyDoodle – a Draw Something-style game I built with my kids (hankydoodle.app)
    1comments
  8. 220 Per Cent More Code: Why Meta Stopped Replacing Staff With AI (smarterarticles.co.uk)
    —discuss
  9. The Listening Room Is Having a Design Moment (design-milk.com)
    —discuss
  10. Friends embark on 20-year board game battle (bbc.com)
    —discuss
  11. The days of the online job application are OVER (recruited.org.uk)
    —discuss
  12. Protobuf Everywhere: How Lupyd Uses Protocol Buffers Across Web, Mobile, DB (lupyd.com)
    —discuss
  13. Show HN: Publish a Notion database as a Next.js blog (github.com/loriscomba97)
    1comments
  14. The new Firefox design is here (blog.mozilla.org)
    —discuss
  15. Show HN: Gangway, self-hosted artifacts and apps from folders, PRs, and agents (github.com/charlesabarnes)
    —discuss
  16. AI is like a wall hack for real life (geekbeard.dev)
    —discuss
  17. -2000 Lines of Code (2004) (folklore.org)
    —discuss
  18. The „Nicolae Trump" Experiment: Testing the Limits of AI Information Streams (labnews.ai)
    —discuss
  19. MongoDB Launches Atlas Infinite and Atlas Agent Engine (mongodb.com)
    —discuss
  20. Show HN: Paste – suggests which copied item you'll paste next, on your Mac (apps.apple.com)
    —discuss
  21. I built an assistant that listens instead of one that watches (athenaos.net)
    —discuss
  22. Strangers don't scare me. But raising kids who can't solve their problems does (devarajsouthworth.substack.com)
    —discuss
  23. Nvidia Open Agent Safety Platform (nvidia.com)
    —discuss
  24. Building a Post-Quantum CA with Merkle Tree Certificates (cloudflare.com)
    —discuss
  25. Cities' Morphology (csh.ac.at)
    1comments
  26. Show HN: NetWasm – New .NET Compiler/Runtime (82.5 KB Hello World WASM/WASI) (netwasm.com)
    3comments
  27. Cargo-Crap: Triaging Duplicates with TypeSafe (minikin.me)
    —discuss
  28. US bans $1 Billion in Canadian imports, including alcohol, dairy and motorcycles (apnews.com)
    1comments
  29. Kling 4 prompts and video examples with original sources (github.com/kingvid-ai)
    —discuss
  30. CRDTs are not enough: From CRDTs to a local-first sync engine (loro.dev)
    —discuss

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

1 pointsby 9m 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.

3m 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...