What is this repository for?

Pinky is a minimalistic language inspired by QBasic. 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 small games, out of the box!

How do I get set up?

Python 2.7 is required.

If you choose to run programs that use sound or graphics, the only external Python package dependency is pygame. Currently, I have version 1.9.1release because I couldn't get a newer version to work on OS X 10.11.3. Be warned that if you run this configuration, there is a huge memory leak in pygame around display flipping/updating.

Contribution guidelines

I will generally only consider pull requests for changes that fall into one of the categories below.

  • fix bugs while minimally impacting the codebase
  • port one of the two reference Pinky VM (Python, Javascript) to a new platform, like: Android (C++), iOS (C++ preferably sharing the Android code), Flash, Playstation, Xbox. When porting the player, please do so as surgically as possible: DO NOT change variable names or rearrange code or add new comments, unless there's no way around it. DO change the style of variable names to match the most widely used convention for the platform (ex. foo_bar in Python is written fooBar in Javascript).
  • write a new high performance Pinky VM for any platform. Name them like pinky_fast.<ext>. They don't have to be pretty, just fast!