I've spent the last few months moving my game development over to a library called Polycode. This is an open source library made by Ivan Safrin, who's a Tigsource regular. I think the library has a lot of potential but it's still in alpha, and out of the box it has a lot of quirks and is generally hard to get started with. Now that I've beaten Polycode into shape for my own use, I want to release the modifications and template code I've made (I'm calling my package "Polyconsole") in hopes people can just get started with the library instead of having to jump through the hoops I did. Hopefully this will help get a larger community of people exposed to Polycode.
Alas, I'm not sure if my toolset is actually any easier to use than Ivan's. I wrote it to my own use and to use the tools I had on my own system. So-- I'm not actually expecting anyone reading this to adopt Polycode for their game dev. But I'm curious if people could take a bit to try to install Polyconsole, see if it works, see if you can run the sample project or make some small modifications to it. If you couldn't get it to work, or couldn't figure out what to do once it was installed, I'd be curious where you got stuck.
(Note: the one big limitation is it only works if you have Mercurial installed and, obnoxiously, none of my build scripts currently work on Windows! Polyconsole games compile to Windows-- I use MinGW, directions for this are at the link below-- but in order to do the compile you need a copy of OS X or Linux. If anyone would be willing to help me test and get Windows development working, that would also be really helpful. I don't actually have a copy of Windows to test with myself.)
You can find Polyconsole and its documentation here.
In theory all you should need to do (assuming you're on a mac, and you have at some point installed Mercurial and CMake) is run this at the command line:
- Code: Select all
hg clone https://bitbucket.org/runhello/polyconsole && cd polyconsole && ./manage.py install && open PolycodeTemplate.xcodeproj
And you'll have a working Polyconsole-based project up and running.
Here are the advantages I've found to working with these tools:
- Included scripts manage downloading and compiling Polycode and all the other dependencies you need, and quickly switching between and upgrading different versions of the libraries.
- Polycode APIs handle all the basic stuff, basic 2D and 3D scene management, 2D and 3D physics, resource and shader management
- Can easily mix C++ and Lua in a single program; the same APIs work in both, and there's an automated script to bridge the two
- Integrated Lua debug console:
- Set up 2D scenes (including physics scenes) with SVG files
- Reload both Lua and resources (like SVG files) by hitting ESC, meaning you can try out changes in real time:
- Attribution-only licensing on everything
The big deal for me, in moving to these tools, is living in a world where I have access to C++ levels of power but I don't actually have to write my game code in C++. I've written my last few game-jam games with Polyconsole, including Shadowland Prophesy and Breathe, and it's great to be able to prototype something fairly complex in like eight hours without ever really having to leave Lua. Of course this is an experience that I think people using Unity or Flash tools have had access to for a long time, but it's new to me, and I'm not sure it's an experience it's currently possible to get without relying on proprietary tools and frameworks (and, if you use Flash, largely giving up 3D).