Penjin Powered Programming
What is Penjin?
Penjin (Pirate Engine) is a game engine framework geared towards budding homebrew developers, who may be intimidated with c++ in general.
What are it's goals?
Penjin aims to be simple to use and to get the job done in a cross platform friendly way. If it doesn't compile on all platforms, code is simply rewritten! It aims to be fairly efficient at what it does and to simplify things like loading Sprites, sounds etc.
How did it come to be?
Penjin was born out of my own learning process while studying Computer Games Technology at the University of Paisley (Now University of the West of Scotland). Often we'd be set problems and with every problem solved I usually added the code to my own general code library. Penjin basically is my own code library of solved problems and this is why it seems like code snippets stuck together. In any case, I thought a lot of this code would be useful to others, tied in with my focus of keeping code portable and so I decided I should tidy the code and share it.
How does this relate to the Pandora?
Back when the Pandora was recently announced (October 1998), there were many threads about a Pandora specific game. Ben Monk actually sparked off the idea of a mini-games compilation game. I was visiting some friends at the time (Actually to go see DragonForce, but I digress...) and so Cameleon and I got to work setting up a basic minigame engine using Penjin. So we continued on posted a basic proof of concept and from there helped and guided anyone wanting to make a mini-game.
Work continued on PandoraPanic! And people of all skill levels, some completely new to any sort of programming, submitted games for it! I concentrated on the mini game switching and trying to balance difficulty and, of course, hunting down memory leaks.
Testing was difficult, but not impossible. Main issues presented with not having Pandora hardware at the time were the control mapping was not 100% finalised. It is a concern when you are trying to think about reasonable controls for your game and if you are wanted to flash “Press A” on the screen, you need to know which physical button will be the A button by default!
Another issue were some char/unsigned char problems that Pickle had to do some debugging on his dev board to track down. Without Pickle to do this testing we wouldn't have made release day!
PandoraPanic! Was released as soon as the first production Pandora was announced to be shipped. It was the first original homebrew game for the system and made by the community for the community. I want to thank everyone that made it possible as it was a great experience, even though it did take a huge chunk of time locating some of those bugs and leaks!
What is the plan from here?
Basically I am in the process of rewriting everything from he ground up to remove a lot of the issues with the original Penjin codebase. PenjinTwo has the same ideals in mind but with the intention of being cleaner and more structured! Also the code will be broken down into different shared libraries, so the developer can pick and choose which components that they need to use.
About the Author
I'm known as PokeParadox on the OpenPandora forums, you can find the Penjin library here