The Puggle Framework is something I’ve been working on in my spare time on and off for a while now.
The original plan was to release it as a plugin, and one day I still hope to do that, but for now I figured it would be a good idea just to allow access to it so people could get using it and I’d get some feedback to see if anyone else actually finds it helpful.
Some of you may have in the past used some of my libraries, namely Ice and the GG suite, well this is sort of the next step in my plan for those.
We used the GG suite of libraries internally at Glitch for quite some time, however when we developed the Serenity framework for our adventure games we decided to move away from the GG code in order to have things more integrated into the engine.
Last year I decided to start actually finishing some of the many prototypes I work on in my own time and wanted to have a framework that took care of all the things that were now part of Serenity so I started working on Puggle.
So far I’ve released one game that uses it - It’s not Rocket Science - and am currently developing a business app, of sorts, that uses it and I’m slowly developing a new adventure system at Glitch that is using it extensively.
The code itself is hosted on GitLab here. Assuming you’re using Git for your projects you’ll want to clone it, or add it as a submodule, but if you’re not you can just download the code directly.
To start using it you’ll want to have the framework in a folder called “puggle” and then have that in the root directory of your project.
Once that is done you just need one line of code at the top of main.lua to get all its features:
require( "puggle.core" )
This post isn’t meant to be a 100% guide, or even a 17% guide, for using the code and hopefully a lot of it is fairly straightforward but just as an initial bit of help, all of the internal systems can be accessed in the following fashion:
puggle.systemName:functionToCall( params )
So for instance, if you want to save some data out you would do this:
puggle.data:set( "hiScore", 126 )
And then if you wanted to print that data out at a later point you’d just do this:
print( puggle.data:get( "hiScore" ) )
Or you could add a sound file:
puggle.sound:add( "explosion", "sounds/explosion.wav" )
And then play it later:
puggle.sound:play( "explosion" )
Some of the other systems you can use are “language”, “font”, “colour”, “utils”, and many more.
I hope to start putting full documentation up on the GitLab wiki pages but for now if you have any questions please just ask and I’ll happily answer all of them as well as I can!
Please note though, Puggle is very much in Beta and there are a lot of things that aren’t fully implemented ( or at all ) so please don’t go making any missile control or banking systems with it just yet!