Tag: svn

Tips #1: Cornerstone, AgileZen and Compressed Cocos2D textures with Texture Packer


I’m really busy this week, so this is not an article. I wanted to share some tips from what I’ve been dealing recently, that I found to be very useful.

Cocos2D pixel formats and highly compressed textures with Texture Packer

One of the games I’m working on has dozens of sprite sheets, and most of them are 2048×2048. That is a killer even for the iPhone 4 and iPad, and I can’t even consider older devices.

Consider using 4 Sprite Sheets at once that are 2048×2048 each and PNG: the game wouldn’t even run, because the consumed memory would be too big. Also, the loading times would be terrible.

What is the solution?

  1. Get Texture Packer.
  2. Group background images and other squared sprites in the same sprite sheet, choose the RGB565 pixel format, select “FloydSteinberg+Alpha” as the Dithering algorithm and export it as a compressed PVR texture (pvr.ccz). BINGO! The image looks the same as 32-bits pixel format, the file size is smaller than PNG, and the loading time is decreased from around 15s to 1s (at least with my 2048×2048 spritesheet!).
  3. For sprites with alpha/transparency required, you may use RGBA4444 + FloydSteinberg+Alpha for those with a few to no gradients, or even RGBA8888, but in both cases export them as pvr.ccz! Using RGBA4444 reduces the memory usage by half. For RGBA8888 you still have the same memory usage, but since it is pvr.ccz, at least the loading times are cut.The problem is that most of the times RGBA4444 looks bad, so you may give a chance to RGGBA8888 + PVR.CCZ.

To learn more about Texture Packer and Cocos2D textures, read How to Create and Optimize Sprite Sheets in Cocos2D with Texture Packer and Pixel Formats by Ray Wenderlich!

On the end: Texture Packer is probably the most important tool for a Cocos2D developer.

The real good Mac SVN Client: Cornerstone!

After I wrote the last article dealing with SVN, where I recommended Versions as the best Mac client, I received lots of suggestions in Twitter and in the comments to use Cornerstone. I decided to try it, and now I can’t even open Versions anymore. The only problem is buying another $59 license!

From a tweet I posted (that got retweeted by the developers of Cornerstone): “After using Cornerstone for some days, I can’t even use Versions anymore. It lacks everything and looks old. #svn”.

AgileZen and Lean project management

Got to know about agile lean project management yesterday, which lead me to meet AgileZen – probably the simplest project management system on earth, yet probably the most efficient.

You can read a good overview of AgileZen here: AgileZen for Solo Remote Development.

This post is part of iDevBlogADay, a group of indie iOS development blogs featuring two posts per day. You can keep up with iDevBlogADay through the web site, RSS feed, Twitter.

How to setup a complete Project Management, Subversion and Issue Tracking ecosystem


I’m going to explain what kind of virtual (or “on the cloud”) development “ecosystem” I’ve been using for some time to manage lots of development/game projects at once. This includes personal as well client projects, where the client may interact with the development.

Note: everything expressed in this post is personal opinion covering what I’m using lately that is working for me and my clients. This post may look a bit commercial, but I’m not affiliated with any of the cited companies (I’m putting “pure” links, without any kind of affiliate link).

1) Register a domain

Since everything is on the cloud, the first thing you need is a domain. The cheapest I know and also my favorite is GoDaddy. A .com domain can go for as low as US$ 7.90~8.20.

2) Host with DreamHost

Why DreamHost? Because you can create unlimited SVN repositories (public and private) under your domain, with unlimited storage and bandwidth (that means you can extend your projects without worrying about paying more for additional users, space or even for new repositories). Also tons of additional features for very cheap (due to a promotion I paid US$ 6.80 for the first year! I’m love with it). See the complete list of features, as well sing up here.

3) Create two subdomains

In your DreamHost panel, create a subdomain for your repositories, I use svn.mydomain.com and create one for your project management system (I’ll show you that next). For that I chose pier.mydomain.com, but you can choose anything you want, like projects.yourdomain.com.

4) Create a MySQL database

Again in your DreamHost panel create a MySQL database and write down the connection details.

5) Download and install Project Pier

Project Pier is an open source online management system very similar to the ultra popular Basecamp from 37signals. It doesn’t have those hard features of project management (like Gantt Charts, etc), it simply deals with projects as Tasks, Messages, Files, Milestones, Tickets and optional Wiki per project.

Download it, upload and install it (it has a browser based installer, you don’t have to manually deal with uploading and changing database settings).

6) Add your project and invite clients/users

Using Project Pier is very easy and straightforward:

  1. Create a project.
  2. Create a “Client Company”.
  3. Add users to the client company.
  4. Set these users to the created project and give them appropriate permissions (permissions are related per project, which means that you may have hundreds of projects and the client will only see his related projects).
  5. Add milestones, tasks, files, etc, don’t forget to check notifications checkboxes when applied.

Now you can center everything related to your project in Project Pier and access everywhere: brainstorming, files, tasks, bug tracking, etc. Explain and invite your clients to not directly send project related emails, but to post Messages in Project Pier (everyone receives them by email after that).

Note that you can add “Private Items”: private milestones, tasks, etc that the involved clients won’t see. Those can be internal tasks/files/etc that you don’t want the client to see nor participate.

7) Create a SVN repository for your project

Again, that’s a matter of adding the repository via your DreamHost panel. Add your user as well users for others involved in the work.

8) Download a SVN client

I really recommending downloading a GUI SVN client, instead of dealing with command line sub-versioning. That will save you a bunch of time. There are dozens of SVN clients for Mac, you can check a brief comparison of some of them here. I actually like and use Versions, because it is very simple, it has practically every aspect of SVN and it is the cheapest one among all the others. I’ve never had any kind of problem with it.

9) Checkout, work, commit, work, commit, work, commit!

After you have created your repository and installed a SVN client, checkout your fresh new repository and now you can start adding/updating/working. Don’t forget to commit often!

10) Git, Mercurial and additional tips

Of course this is not the only way nor best path. There are different systems, options and hosts. As I wrote on the beginning of the post, I just wanted to share what I use. For additional options and tips, I recommend these #iDevBlogADay posts on the subject:

This post is part of iDevBlogADay, a group of indie iOS development blogs featuring two posts per day. You can keep up with iDevBlogADay through the web site, RSS feed, Twitter.