Original Summary

Hi. I&#x27;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 &#x27;watch this ad&#x27; or &#x27;pay for coins&#x27; to unlock either tools or drawing colours.<p>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&#x27;m sitting at slightly less than 20,000 drawings. Currently, the drawing sizes are typically between 1 and 12kb.<p>Drawings are recorded as a stream of operations that include each stroke&#x27;s tool, colour, points and timing. The format (a small RLE&#x2F;palette&#x2F;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&#x27;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&#x27;s something future me (sucker) can deal with at some point.<p>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&#x2F;replace it as needed.<p>Although it was not originally planned, it makes a pretty neat demo that you can navigate to the website and playback drawings as well. <a href="https:&#x2F;&#x2F;hankydoodle.app&#x2F;d&#x2F;01M37AKQF6MCRRXCHB3YSAVBVG" rel="nofollow">https:&#x2F;&#x2F;hankydoodle.app&#x2F;d&#x2F;01M37AKQF6MCRRXCHB3YSAVBVG</a> is an example of one of the more detailed drawings by someone with way more talent than me. The app has a &#x27;word of the day&#x27; feature where users can submit their own artwork and that&#x27;s an example of an extremely detailed one.<p>Features of the game:<p>- 1v1 async drawing and guessing. You draw a picture. Your opponent guesses when they get the chance.<p>- A forever guess mode. If you don&#x27;t want to draw you can just go in and guess drawings made by others. Drawings get &#x27;released&#x27; into the forever guess pool once a user has guessed the drawing.<p>- A word of the day where anyone can take a crack at drawing the word.<p>- A showcase where the best drawings can be found.<p>- Offline drawing, where you can draw while offline and without any sort of signup.<p>- A &#x27;doodlepedia&#x27; where you can try and draw every word.<p>- An online portfolio of your drawings (such as <a href="https:&#x2F;&#x2F;hankydoodle.app&#x2F;u&#x2F;TP1N34" rel="nofollow">https:&#x2F;&#x2F;hankydoodle.app&#x2F;u&#x2F;TP1N34</a>).<p>- Privacy mode, where your drawings are private and only the folks you draw with can see them.<p>- Family mode where certain drawings and words get filtered completely out of your view.<p>The app has an unobtrusive banner ad which can be removed via a $3.99USD&#x2F;year subscription. I know people don&#x27;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.<p>Happy to go deep on the format, the renderer, the fill, or the solo-dev tradeoffs.


  • 情报分类:商业与市场研究
  • 分类依据:内容涉及商业、投资或市场动态
  • 信息来源:Hacker News 新项目
  • 发布时间:2026/9/29 21:22:19