MakeBot and MoonUnit
A Simple IDE for Learning Python Game Programming
Macintosh Version 1.4.2 released 24 Jan 2007 — Mac OS X 10.4 only. Email me some encouragement if you want a 10.5 version.
Windows Version 1.4 released Jan 2007
For my Video Game Programming for Kids course, I needed an IDE for students to use which was intuitive and quick to learn. The command line works well once you know how, but I wanted to have the absolutely shortest learning curve possible so my students could get to the fun stuff right away.
The top area is where you write your code, and then you just click Run to see what it does. To see a short video of it in action, look at my Video Game Programming for Kidspage. The video uses MakeBot plus a graphics library based on PyGame that I wrote. If you want to do game development or 3-D stuff, MakeBot is just the ticket. If you want to write Open-GL programs—fine, PyGame—great, text-only cryptography games—no problem. MakeBot is generic.
MakeBot was inspired by Processing. When I first saw Processing, I was overwhelmed by how fun it was to write programs and see the graphics immediately. It reminded me of my young Apple ][ days, programming in AppleSoft Basic and watching blocky colored shapes move around on the screen. I immediately started writing a little Space Invaders game. Processing however is written in Java which makes it sluggish, and I prefer teaching with Python over Java. Plus Processing has expanded their earlier simple interface into one that handles multiple files, but now it’s getting bulky. MakeBot brings programming simplicity, ease and fun back to kids.
Features
- Simple Interface — It’s not covered with buttons and side panels so as to not confuse the subject: your program.
- Small Interface — Uses screen real-estate sparingly so you can see more things simultaneously. It’s handy if you are writing a game and want to see the graphics output at the same time as your code. Especially handy if you are programming on a 12″ iBook without a lot of screen real estate. Or, if you are programming in your regular editor, you can keep this handy in the corner.
- Type and Run — No need to create files if you just want to test a few lines of code, just type them in and go. Why bother saving a file someplace when you’ll just have to remember to delete it later. “How do I add a value to a list? Was it .append(), .add() or .expand()?” Just type in one line to try it out.
- MoonUnit Graphics Package — This graphics package was developed for our Video Game Programming for Kids video game programming course, evolving and simplifying over the years. It features a straightforward API for drawing basic shapes, and also for animating frames and registering callbacks for UI events. The unique callback mechanism eliminates the need to teach event-driven programming.
- Output Window Takes Keyboard Input — Some editor’s output windows only show output so if your program asks a question, you can’t respond. MakeBot’s output window takes keyboard input so a raw_input() call will work and you can answer. Great for teaching math through cryptography.
- MakeBot Site-packages — When distributing MakeBot to student machines, you can include a site-packages folder that will be incorporated into the global Python path via a .pth file. This makes it easier to setup a computer lab since you need to distribute only one set of files installed in one place.
- Customizable Docs Button — The Docs button opens an HTML page in the same folder as MakeBot so you can replace it with documentation relevant to your class.
New in Version 1.4
- Line Numbers — Syntax errors are easier to find with line numbers shown on the screen.
- 3D Graphics — MoonUnit uses OpenGL for hardware accelerated speed and 3D graphics. In addition to 2D squares and circles, you can make 3D boxes, spheres, and import 3DS Max models too.
- Customizable Build Scripts — The script to run a program or show documentation is a customizable Python script. So you can write your own to use another language like Ruby or Logo if you want. Another example is a custom script that sends a student’s work off to the teacher’s computer at the end of the day.
Fixes in Macintosh Version 1.4.2
- Works on Intel and PowerPC Macintoshes, OSX 10.4 or greater
- New mpkg installer that has separate parts for applications, frameworks, and site-packages/MakeBot.pth.
- Includes universal binary forms of pygame, OpenGL, numarray, PyObjc, and py2app.
- Publish command works for some programs but not all. We’re still working on this. Patches welcome.
- When run the first time, Python is the default Builder, instead of (None).
- Uninstaller is included, for those who have previous versions of MakeBot.
Download, Install, and FAQ
Download and Installation Instructions — Instructions on installing MakeBot.
Thanks
Thanks also to these projects and people who influenced MakeBot: DrawBot is similar to MakeBot but specialized for only scalable 2D images. Also thanks to Marti Cohen-Wolf at the NYC Lab School for arranging our first large-scale video game programming courses. I got the cute growing grass icon from Rokey.

Leave a Comment