PixelPie, an open-source game framework for Processing

Introduction

PixelPie is an open-source, cross-platform (works on regular Processing and Android) game framework built for Processing.

You can see an older version of the framework at work in this video.

It was originally written entirely in Processing 2.2.1, for what was supposed to be a "simple" game that grew grossly out of proportion. I've since separated the framework from the game code and re-written the framework in Java to be used as a Processing library.

Downloads

Source: https://github.com/AliasBlack/pixelpie

Example: https://github.com/AliasBlack/pixelpie-example

Rough idea of the framework

Unfortunately, there's a severe lack of documentation, aside from the Javadoc annotations inside the code, and the example linked above. This will hopefully be remedied eventually - in the meantime, here's a rough explanation that will help the more adventurous folks get started.

PixelPie is an event driven framework centered around the GameObject class.

Nearly everything you can interact with in the game is an extension of the GameObject class: Characters, platforms, NPCs, traps, powerups, and so on.

The GameObject class works by having several functions that are triggered when certain conditions are met. Overriding these functions, such as mousePressed() and collide() will allow your object to react to mouse clicks and collisions respectively.

Levels are created using the Tiled open-source level editor.

Use "Tile" layers to decorate the level. Tiles placed in tile layers have no interactivity in the game and are purely for decoration.

GameObjects can be placed in a level by creating an "Object" layer, name it the same name as your GameObject class, and place copies of the object in the level using the Rectangle tool (uses the top left corner coordinates) or the Ellipse tool (uses center coordinates).

Lastly, to add sprites and levels to the game, use the included pp_assets.ods in the "tools" folder, you'll need LibreOffice Calc to open it. It should be self explanatory. After you are done, head to the "Master" tab, key in the absolute filepath to your game's "data" folder, and click Export to generate the required .json files.

Contribute!

Evidently, the framework badly needs some proper documentation. If you would like to help out creating documentation and examples, please send me a PM, or reply to this thread, I would really appreciate the help. Alternatively, if you'd like to contribute to the code, please do not hesitate to ask me about anything related to the framework - I'm not a particularly good coder, and the framework needs all the help it can get.

And that's it, hope this helps someone out there. :)

Comments

  • Hi barefists -- thanks so much for sharing this.

    This video link seems to be to your own Dropbox home folder -- it isn't accessible to anyone who isn't logged in to your account. Can you post a different link, or post the video someplace else?

  • "Unfortunately, pixelpie_test has stopped." this message came up when start the app. I tested it with processing 3.2.1 and 3.1.2 and Android Mode 4.

  • So sorry for my absence this last month, been crazy busy at work.

    @jeremydouglass I've updated the video link, it still links to dropbox public folder, but it should be the proper link now, let me know if it works.

    @amidgeha you need to comment out line 1 and 12 and uncomment line 13 in pixelpie_text.pde for the code to work on android. Lemme know if this helps.

  • //import ddf.minim.Minim; // Comment this line out for Android.

    PixelPie pie; PixelOven oven;

    void setup() {

    // Enable fullscreen. fullScreen(P2D);

    // Init PixelOven. //oven = new PixelOvenJava(this); // Use this if running on Mac, Linux or Windows. oven = new PixelOvenAndroid(this); // Use this if running on Android.

    // Init PixelPie. pie = new PixelPie(this, oven, 2, 60.0); //===================================== The rest of code is untouched and still giving the same message. I am testing it on real Android device (Android 5.1) with min-sdk=16 and target=23.

    I'll test it on Samsung Galaxy tomorrow.

  • Oh dear, lemme look deeper into this, or throw out more debug messages. Since this framework has literally never been tested on any Android device other than my Sony Xperia phone, this was bound to happen. :( Really sorry about it.

Sign In or Register to comment.