A downloadable app

Buy Now$12.00 USD or more

This is an application for the Panic Playdate game console.  It recreates the classic MacOS MacPaint from 1984.  Surprisingly this is actually quite a good match as both the Playdate and early Macintosh only have Black & White displays (no color; no grayscale).  

I have some changes to improve the drawing experience on Playdate, but where possible it is nearly pixel perfect to drawings made with the original MacPaint app.  Notably I've added a new brush selection panel on the right side (formerly buried inside a submenu) and you can easily toggle between snap-to "Grid" (fast move 8 pixels)  and precision (move 1 pixel) because that's more important without a mouse.

This is EARLY ACCESS, but it is extremely usable, even by kids.

Drawing Features:

Tools
 - [x] Rectangle / Filled Rectangel (v0.2.0)
 - [x] Rounded Rectangle / Filled Rounded Rectangle (v0.2.0)
 - [x] Ellipse / Filled Ellipse (v0.2.0)
 - [x] Polygon / Filled Polygon (v0.2.1 on-stream 7/11/23)
 - [x] Eraser: 5 Sizes (v0.2.0)
 - [x] Pencil: Pixel perfect drawing (v0.2.0)
 - [ ] Paint Bucket
 - [x] Paint Brush (v0.2.0 details below)

Paint brush shapes - 36 Options (v0.2.0)
 - [x] Square & Round: • ◼
 - [x] Horizontal, Vertical & Diagonal: |  ─ ⟍  ⟋
 - [x] Dotted lines: ︙⋯ ⋱
 - [ ] Mirrored brushes / symmetrical drawing

Visual Effects:
- [x] 40 Different Mouse cursor icons (v0.2.0)
- [x] Preview shapes and fill patterns while drawing  (v0.2.0)
- [x] Filled Polygon inverts colors on overlapping segments  (v0.2.0)
- [ ] Animated reselection 

Fill Patterns
 - [x] 25+ fill pattern choices + solid black and white (v0.2.0)
 - [ ] Fix accidentally bit-inverted fill patterns (there's a couple)
 - [ ]  Visual Fill Editor / Create Custom Fills
 - [ ] 25 Bonus fill patterns (e.g. second row in toolbar)

Stroke selection  (v0.2.0)
 - [x] Filled shapes - 4 weights of outline strokes + no outline
 - [x] Four sizes for each brush shape

File management:
- [x] Save as Gif (v0.2.0)
- [x] Save as PDI - PlayDate Image format (v0.2.0) 
- [x] New Document / Clear canvas (v0.2.0)
- [ ] Save/Save As: Custom filename support
- [ ] Open: Load from File
- [x] Auto-Recovery: save WIP drawing when leaving app
- [x] Save as SVG (v0.5.0 see devlog)

Hand tool:
- [x] Document canvas is larger than window
- [ ] Support panning canvas
- [ ] Goodies Menu -> Show Page

Selection tool
 - [ ] Rectangular Selection Tool
 - [ ] Edit menu: Undo/Cut/Copy/Paste/Clear/Invert/Flip/Rotate Selection

Text tool
 - [ ] Font face (Athens, Chicago, Geneva, London, Monaco, New York, Venice) 
 - [ ] Font size (9, 10, 12, 14, 18, 24, 36, 48, 72)
 - [ ] Font style (Plain, Bold, Italic, Underline, Shadow)
 - [ ] Text alignment (Left, Right, Justified)

Playdate Specific and Bonus Features:
- [x] Use Crank to select tools (v0.2.0)
- [x] Kid-friendly input -- Never require holding and pressing multiple buttons at the same time. Small kids lack the dexterity to do this. (v0.3.0 see devlog )
- [x] Keyboard support (Simulator only)
- [ ] Multiple levels of Undo/Redo
- [ ] Goodies menu: Fat Bits (Zoom)
- [ ] About Menu
- [ ] Gallery view of multiple images

As this is an early-access version of PlayPaint, there is no guarantee that all these or  features will be implemented. That said, every version posted here is a fully capable painting application.  Rather than focus on implementing every last feature, I focused on stability and performance -- suddenly I found myself with a stable app that can draw, fill, paint, erase and export to your hearts content and so I decided to release it early. This is not an unstable / unsupported build, quite the opposite. I have never observed a crash in any of the released versions and have an automated testing setup to ensure new features don't break existing functionality. 

As development progresses I will post additional builds and devlogs here so you'll get new features/refinements as they are completed -- this includes the any 1.x releases when I feel things are feature-complete. 

Acknowledgements:

  • Bill Atkinson, the original MacPaint author. QuickDraw and MacPaint are still impressive feats of engineering 40 years later.
  • Susan Kare, the designer of all the icons used by the original Macintosh and MacPaint.  Likely the greatest 1bit designer of all time.
  • Playdate team at Panic whose excellent Playdate SDK enabled me to implement this initial beta in <1000 lines of pure Lua. 
  • Apple: Thanks for not immediately suing me.
  • The original QuickDraw+MacPaint Source is available. I haven't read any of the ~25k lines of pascal and assembler, but I'm really happy it was preserved. 

Technical requirements: This game can be played on the Panic Playdate game console or on the PlayDate Simulator on Mac, Windows or Linux (free download of Playdate SDK required).

Side-loaded to your device via usb or play.date/account/sideload and it will appear under Settings->Games. You can even purchase & download on iPhone/Android and upload the zip file to play.date/account/sideload from your phone -- no computer required!

If you've read this far you're probably my ideal customer. You have a Playdate or are eagerly waiting for one to arrive.  You've sunk at least $199 (probably $219) into the device...and you may have spent more than a few hours trying to make a game. What's an hour of your time worth -- surely more than $20.

Are you curious how this thing works and want to see the ~1000 lines of code for yourself? You can follow along  live-coding  at @notnotpeter on twitch but if you wanna encourage me to keeping making odd shit for playdate consider donating $99 more to get a copy of the source code and I'll happily add you to the GitHub repo so you can see the full history and follow along in real-time.

Past devlogs:

Purchase

Buy Now$12.00 USD or more

In order to download this app you must purchase it at or above the minimum price of $12 USD. You will get access to the following files:

playdate-playpaint_0.5.0.pdx.zip 62 kB
playdate-playpaint-source-0.5.0.zip 84 kB
if you pay $39 USD or more

Development log