PixelPie 2D Game Engine

edited August 2016 in Share Your Work

(Video link)

Hey everyone, this is XM. Just wanted to share some work I've been doing over the past few months in Processing. I've been working on a game project with a friend that we're hoping to publish on PC/Mac/Linux platforms. Since we were doing this on the side and not on any sort of publisher deadline, I thought it would be fun to roll our own game engine, that was designed especially for pixel art, our artstyle of choice.

Since I'm not actually a programmer - what I know is internet-taught while messing around with Gamemaker, Flash AS2, and PHP - I needed to find a language that wouldn't overwhelm me, yet give me enough low-level control. I heard about Processing from a lecturer while in college a few years back, and decided to give it a shot. Now I'm in love. :)

The engine renders using the default renderer, mostly by directly manipulating the pixels[] array. The goal of the engine was to treat each pixel like a vector, and have the edges be sharp no matter how much you zoom. As such, there's no traditional zoom per se, but increasing/decreasing the pixel size integer. Level design is handled using an open-source map editor called Tiled, which is an absolute joy to use. The editor exports to XML, which is then parsed by the engine during level load.

Stuff left to do would be a more advanced UI framework that would allow sliders, buttons and textfields. And sound, which I'm likely to use Minim for. More updates here when I have them. :)

Thanks for reading and do let me know if you have any comments/critiques/questions!

Regards, XM


  • Fantastic! I still had some doubts whether Processing's JAVA2D was capable of that performance! \m/
    Hope you can share your pixels[] algorithm! ;;)

  • very impressive...

  • Thanks all, was a lot of hard work and sleepless nights haha! :)

    Java2D has it's limitations - I tried to brute force some stuff and the game slowed to a crawl. In the end, I had to find workarounds for them. An example is the lighting system, the non-interactive elements have the lighting burned into them during level load, which takes up an obscene amount of RAM (> 256MB at runtime), but I figured most people have at least 4GB now so it would be a lesser evil.

    I'm intending to open-source the core engine code eventually when I get some spare time to write some basic documentation. Right now the engine is.. in a mess. :D

  • How is the engine coming? ;)

    I've been watching this ever since you first posted, and I can't wait to see what turns out!

  • Sorry I've been missing for so long - life got in the way. :( I'm resuming work on this, hopefully I'll be able to release something before June this year. fingers crossed

    As part of my effort in releasing PixelPie, I've completed my port of Nifty GUI library to Processing. You can check it out here: https://forum.processing.org/two/discussion/14547/nifty-gui-library

  • PixelPie is now open source. :)

    You can find the source code of the library at https://github.com/AliasBlack/pixelpie

    Do let me know if you are interested in collaborating on it. I'm looking for help writing the documentation and creating examples for the framework.

Sign In or Register to comment.