PlayPaint v0.3.0 - Tiny Hands Edition
PlayPaint v0.3.0 (2023-07-18)
Today's release of PlayPaint for PlayDate v0.3.0 is mostly a behind the scenes release. I did a lot of code cleanup, adding Lua Type Annotations and fixing every error and warning from Luacheck. Screen updates is also significant optimized -- we only redraw where/when it's really required now which should improve performance and battery life.
Then I completely refactored my input handling. I wanted to make it simpler, but more importantly I wanted to fully support single-finger, no thumb use.
Much of my initial work designing the interface for PlayPaint was/is focused on making it as efficient as possible to create drawings. For example you can quickly spin the crank and select a tool or you may have noticed the mouse can move quickly using grid-based movement 8 pixels at a time as well as pixel-perfect precision mode. While you can manually toggle between these (just press and hold B or toggle the grid/precision icons) as needed we automatically enable fast grid-movement when you are outside of the document itself.
This is what also led me to the default mode for drawing lines and shapes. Where you can press-and-hold the A button, see a preview while move the dpad diagonally to grow the shape and then just release the A button when you're done to paint the shape onto your document. Until today, this was the only way to draw shapes, just drag-and-drop.
No, accessibility first.
It turns out when you are a six year old you don't have the dexterity of someone who has been playing video games and using controllers for a decade or more. In fact, even with a system as small and light as the playdate, just the act of holding the system in-hand can be extremely difficult. Holding the playdate and pushing a button? Hard. Holding the playdate and holding a button while pushing the DPAD a bunch of times? Literally impossible.
New: Support for tiny hands (Look Ma! No thumbs!)
In handing PlayPaint to a six year old I observed a play style I wouldn't have imagined on my own. She took the playdate, put it flat on the table and then used one finger (her pointer) to push each button individually, one at a time. I know there are plenty of kids that age which have developed the dexterity and familiarity with "standard" controllers that they will use the dpad with their left thumb and the A/B buttons with their right thumb, but I'm hoping this is really a universally usable app and not just for able bodied adults.
Single Finger Use
Now that I've done the refactoring necessary to support both the quick ("drag and drop" while holding A) and easy ("A", dpad, dpad, dpad, "A") modes my hope is to support this will all past and future features of the app. I think this should be possible and will help make PlayPaint kid-accessible -- even if they aren't holding the playdate or even using it with a single finger and not using both hands.
This was fun!
Forward looking statements
Now finger, next is the hand
I have an initial prototype of using the hand tool to move the page around. This will allow drawing to an image that is larger than the size of the PlayDate display. The original MacPaint drew to a canvas roughly the shape of a portrait page, slightly wider and 2-3x larger than could be displayed in the main document window. I intended to offer a similar experience.
Progress on the rectangular selection tool is ongoing. I don't expect it to be too difficult, but will likely wait and release it with the Edit Menu at the same time. By default the tool supports selection and moving a selection so it shouldn't be too difficult to implement a clipboard buffer with full Cut/Copy/Paste support. Clear/Invert/Flip/Rotate should also be relatively straight forward to implement as well.
As always, if you're interested in supporting me any purchase of >$99 also gets you a zip file with the Lua source code and graphical assets and access to the GitHub repository including full history, etc. Thanks!
Get PlayPaint - A Drawing App for Playdate
Leave a comment
Log in with itch.io to leave a comment.