What is Pinky?
Pinky is an open-source platform for developing cross-platform games, with virtually no setup required.
The Pinky language is at the heart of the platform—it's a minimalistic language for scripting, inspired by QBasic and ZZT-oop, even though it doesn't really resemble either one. The reference compiler is around 1000 lines of Python code, so anyone can read it, learn from it, and build on it! Despite the tiny footprint, Pinky has everything a hobbyist needs to make games and other small programs, out of the box!
Getting started with development
There are a couple ways to develop in Pinky. For anyone working at a home computer, the recommended way is to use the command line tool—it's the most quick, reliable and secure way. If you're unable to use the command line tool, use the web tools.
Command line tool
The main Pinky source file pinky.py includes a command line interface for the compiler and player.
Get the source code from Bitbucket then run pinky.py.
Usage examples are below (executed from the pinky root directory).
./pinky.py ./demos/test.ky -o ""
./pinky.py ./demos/test.ky -o "" | nl | grep "100"
To use the web tools, first you have to register your program at the page linked below.
If the program is successfully registered, you'll be redirected to the program editing page, where you can upload source code and resources through the file selector in the development panel.
Bookmark the program editing page immediately, so that you can find and edit your program later on! If you lose the link, there's no way to recover the program so you'll have to start over.
A simple REST-like web service is provided to allow building Pinky programs over HTTP. It powers web tool but you can also use it directly, through a tool like curl or Postman.
Documentation coming soon!
If you're interested in developing in Pinky, the resources below will help you get started!
Below is a collection of programs written to demonstrate the basic capabities of the Pinky platform.
There's a lot of work in progress. Below is a list of what's on the way.
- web tools
- Mac OS VM
- stateful procedures
- gamelib simplification
- basic collision support
- improved keyboard support
- mouse support
- ProFont as default font
- sprite animation tool (in progress!)
- iOS VM (in progress!)
- Android VM
- modernize website look and feel
- audio support
- connectivity support (HTTP requests at least)
Why would anyone do this?!
A few years ago I wanted to make a simple 2D mobile game. I looked around at the popular frameworks/platforms, tried a few, and found they were either expensive, or overly complex and cumbersome, or lacking in cross-platform support. So I decided why invest weeks learning how to improve on an existing project, when I could spend years creating my own.