TexturePacker and PhysicsEditor
I love simple solutions to (seemingly) complex problems. Apps that solve one problem, and do it well. Apps of this kind are more rare than one might think. If (and when) you find such an app – it’s always worth crediting. And now for today’s praises: CodeAndWeb TexturePacker (TP) and PhysicsEditor (PE) are apps that I don’t want to do iPhone cocos2d and chipmunk development without.
TexturePacker creates sprite sheets for your favorite game engine in seconds.
…or to be more accurate – does it without you noticing something quite complex happened in the background during your build. Below is one of my Bounce Delivery sprite sheets, generated pretty much automatically.
I found TP in “Learning Cocos2d” book by @rodstrougo and @rwenderlich (an excellent book that is). Before TP, I was a happy user of the (now-past) Zwoptex web version – uploading sprites of regular and @2x sizes, managing manually how the app should generate the sprite sheet, copying the files to my project resources – you know the drill. This was a required task every time I changed any one of the nearly hundred sprites in my app.
TP pretty much changed that all. Today I don’t upload sprites. I don’t create separate images for regular and retina size. I don’t generate and copy sprite sheets. I even forgot that TP was there, until a while ago it told me my sprite sheet had grown too large. I had to start cutting down the number of sprites in my project to spare on the app size – to keep it below the magical 20MB limit.
This is the best kind of software there is. It does EVERYTHING for you, and you don’t usually even notice it running. Configuring TP took about an hour (including changes to few lines of existing code). After that; Just create the retina sized artwork image, and save it in a directory TP knows. The rest – all taken care of. Every time you build your product. And usually – you don’t even notice something happened. Magic.
PhysicsEditor creates collision shapes for your physics enabled game. Use the fantastic auto tracer to create shapes within seconds! Directly export to your favorite game engine.
When I was heading to buy the TP, I fell for the trap Andreas had set up for me: “Get TP and PE for a nice bundle price” (I’m such a sucker for discounts). I had only a quick look at TP then – “Create chipmunk collision shapes”. I was doing that too – I’ll get the bundle – maybe I try it later. Glad I did. Proved to be another app I can’t live without anymore.
I don’t know (nor care to know) much about vertexes, polygons and any of that math kind of scary stuff that lies underneath the chipmunk physics engine. PE relieved me from the pain of knowing things like why “your polygons aren’t convex” (the error I got from chipmunk – still today I’m not quite sure what that meant).
I can now also use more complex collision shapes in my app. Before TP, I didn’t dare to use anything else than just plain balls and boxes. Counting the pixels and transforming them into arrays of vertexes for chipmunk was such a stupid and difficult way of doing things. Never again.
Working with TP user interface – again – it’s quite automatic. I love that. The guess that TP’s “magic wand” makes about the shape is usually a pretty good one. I usually end up moving / removing couple of vertexes manually – don’t really need to be THAT precise, and I want to keep the number of vertexes down. Even I know how to do that with the TP user interface.
Finally – yesterday I spent an evening tweaking Bounce Delivery physics for better playability by changing the mass and friction for all the items player bounces in the game. Just change, hit the export and recompile – and I was already testing the results. To do this tweaking without TP… I don’t want to even think about that.
Both TP and PE have saved me the precious hours by automating things that previously had to be done manually. All the time spent on counting vertex coordinates, generating different size images and sprite sheets is now spent on something more productive. In addition – PE has enabled me to create much more interesting gaming experience by the use of complex shapes in my game.
Thank you CodeAndWeb, thank you Andreas!