Month: January, 2011

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 and create one for your project management system (I’ll show you that next). For that I chose, but you can choose anything you want, like

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.

How to outsource art for your game using freelancing sites


Paint PaletteAfter I published the post with the postmorten of my Christmas games – where I told that I outsourced the art in a fast and effective way (I won’t say cheap because that depends on the quality of the work you want) – I received 6 e-mails (which is a lot considering that I barely receive emails concerning a post) of persons wanting to know how to outsource and tips related to it: how to relate with the artist, how to post the job offer on freelancing sites, etc. Instead of answering one by one, I preferred to write this post about the subject, this way showing to anyone who wants the same. And even if you don’t plan to outsource, this may change your idea.

Note that I’m no expert in outsourcing, but what I did (and still do) worked: I got quality customized art and managed to talk publicly about my game without telling “secret” details; without the need of sending NDAs to be signed by the artists.

Where to find artists?

My favorite site and the one where I hired the artists is oDesk. I like oDesk because it has thousands of quality professionals and the system is very cool to use: the interface is the best among all freelancing sites. Also the site is very fast compared to the others.

The other big site is Elance. I still haven’t hired through eLance, but I always post here too. I also receive more proposals via Elance, but what I have seem so far is that the quality of the portfolios are higher on oDesk.

And the last one is Freelancer. This is the biggest of all sites with the highest number of freelancers, but I haven’t used it yet.

Know and list what you want

Before posting a job, to go this, that is the most important step in my opinion. You have to know what you need to be produced by the artist. Otherwise, how do you think that people will bid in your project? You have to know every detail of what you need to be drawn, designed, animated and painted, as well as the style that you want. You need this to know how much are you going to spend and how to choose the best artist.

To do this, you first need your game concept to be ready, this way you will be able to list almost every asset required by your game. I call this list “Art Assets Work List”.

Work ListHow do make an “Art Assets Work List”?

  1. Tell the drawing and painting style you want: cartoonish, pre-rendered 3D, pixel art, etc. You can also make it an artist’s choice (as I did).
  2. Tell in which environment the game goes on: medieval, cartoon, futuristic, etc. If the game has different environments, you will need to tell this in the list.
  3. Tell the file format: you may want all the art in a vector format, so you can resize or you may want pixel art in transparent PNGs. Don’t forget to tell that.
  4. List down all art assets needed.

Now to the good part. Listing them is pretty easy: just make a table with the name and description of the art asset required, dimensions, if it is animated and if so tell how many frames and what kind of animation is that, and additional notes.

I have uploaded to Google Docs the Art Assets Work List document I made for my game Santa in a Hurry, get it here. Feel free to use and change it as you wish.

After you made your list, attach it to your job opening, making it easier again to select contractors that have read your list and gave prices accordingly.

Know your budget and deadline

In your job opening in oDesk (or the site you choose), don’t forget to put your budget. This way you can get proposal accordingly without having to deal with low quality work or artists that are too expensive. Also tell when you want the final work delivered with all the sources.

Calendar, MilestoneSet Milestones

SET MILESTONES. If you don’t set milestones the artist will feel very comfortable and will keep working forever.

Examples: “first sketches by this date, first final polished item by this date, backgrounds by this another date” and so on. Actually this is very important when outsourcing any kind of task. Freelancers tend to take lots of work, so if you don’t guide them, they will keep taking new work and delaying what you asked (and probably paid) until they can (like near the deadline). Set milestones!

Don’t tell details about the game

If you already downloaded the list I provided you will notice that there are no details about the game itself. That’s just a pure list of what the artist needs to do. That’s why it is important to have your game concepts ready: this way you know what will be required in terms of art without actually telling about the game itself.

The point is that you have to go straight to the point: “I need an artist with portfolio to make art for a game. I need that you draw all the elements of my game, including its GUI. You have to follow a cartoonish style and provide me the original PSD files. See attached file for complete work list.”.

Don’t pay more than 20% upfront

The subtitle tell its all. And for most cases I advice paying 10%, nothing more (although on a job I’m working on, the artist set up the upfront to 40% and I didn’t see before hitting the “Hire” button… And then I had a good amount of money charged for an artist that I didn’t know before. And I’m feeling pretty bad for that – take care of this detail). Most freelancers agree with that. Just pay more than that if you already know the artist.

Maintain a good relation

If you liked the artist’s portfolio and if he is making good progress, there is no reason to not keep a Good Relation. This way the artist will work better for you and will even make better things than you asked. Also for future projects, you will have someone ready to work for you.

Karnak Games News

  • I have a secret big game project that’s been in production for almost 7 months already. I’m actually porting the game to Unity. First details will be revealed by March.
  • Reached 500 Twitter followers and 50 Facebook likes as of today! Help me end the year with at least 1000 twitter followers and 100 likes! Please, Follow me and like my Facebook page :)

Images used are royalty free photos from

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.

Don’t you dare waste your time. Work for your dreams. Live your dreams.


This post is not game nor game development related. It’s just a reflexion about “Dreams”, about “What can I do with my life?”. It applies to everyone’s life. Notice that is a bit abstract and a try to be motivational, but totally inspired by an Austin poetry video (video below).

Don’t you dare waste your time!

If you aren’t working right now in your best idea or in favor of your dreams then you are doing everything wrong.

In my everyday’s rush in trying to get more and only the best things, and noticing the chaotic world we live in, I notice and feel even more the need to DREAM. We need something to sustain and keep our bases strong, something that must keep us STRUGGLING.

Wake up everyday, work, lunch, work, dinner, sleep, go out with the family on the weekends. Loop through it. Repeat. It’s a pattern. Almost everyone is happy and satisfied with that. But even this repeating cycle has a meaning (even although it’s completely abstract): happiness. But where does this take us? The same cycle for 10, 20, 50 years?


You’re WRONG. It’s not a matter of chasing and struggling for your dreams when you have more time, when you have more money, when you are in the right place, when you have a bigger house or a better computer. This time will never come, because by then you will want a even bigger house or a even better computer, you will always think that you won’t have the time because you need to work to bring food home, and then you will keep locked in this repeating pattern. Maybe you think that working in your dreams looks like that you will lose the power to feed your family?

Here’s a tip: if you are in a place that you want to leave or if you are in a bad moment, adopt that as a reason to fight for a dream or for something you can do best: this way you will be able to leave this bad or repeating situation.

If you are still waiting for the “right moment”, sorry to say but it won’t come.


Yes, now, in this very own second. Start by changing your behavior, acts and thoughts – drive them accordingly to your dreams. You will se how things will start shining. Everything will be more pleasant and enjoyable.

Turn your dreams into your reason to live and bring them into your everyday’s activities. This good thing will spread to everyone around you, and then, they will start supporting and taking part of what you do and think. And everything will look even bigger.

Life is so fragile and at the same time, so short. I ask you, right now, what are you waiting for? Why aren’t you being everything you can be right now? *

One more time: If you aren’t working right now in your best idea or in favor of your dreams then you are doing everything wrong.

* Words by Gabrielle Bouliane that died by cancer last year and like a night before she gave a motivational speech about enjoying everyday as it was the last, and that you should never AVOID NOR DELAY something, because death can come anytime.

Her last speech, but ultra motivational video:

I originally wrote this text on Apr 20th, 2010. Additional inspiration from REWORK (controversy sometimes).
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.

The year that was and goals for the new year


2010 was a fun and challenging year for me. I will never forget 2010, when one of the most important facts happened in my personal life: I got married. On the professional side, Karnak Games and DogPaw Mobile were created: I quitted my Web development career to start making games and mobile applications. Following are all events I can remember in a straightforward list (I’ll try to go into personal things very fast).


  • On the personal side, some events to notice: I got married, bought a house, started studying how to draw, started studying art, studied pixel art, bought a second dog (a female one, to be Koda’s companion), traveled abroad for the first time (to Buenos Aires, Argentina), directed and edited for two months a TV show, made the last clients websites then decided to quit Web work, stopped procrastinating (I do everything at once now, while on the past I sadly used to be a pro-procrastinator) and many more smaller events.
  • I decided that in 2010 I was finally going to start making games: I started programming when I was 8 because I wanted to make games, but just in 2010 I took it seriously, mainly because of the AppStore which I was looking into since launch. But the problem is that before I didn’t have a Mac.
  • Full time indie developer.
  • Bought my first Mac, an iMac 27″ Core i5 on March. Turned out to be a Mac addict and Apple lover after 1 month of use. I can’t even touch Windows anymore.
  • Finally studied Photoshop seriously, and now I can do almost every thing with it. I just lack art skills and talent.
  • Karnak Games was created.
  • I finally started taking Twitter seriously and turned out to be a Twitter addicted. The Twitter account @KarnakGames was created and reached up to 400 followers.
  • Bought an iPod Touch 3G.
  • This blog became very active after I got my #iDevBlogADay spot, which I still have (well, this post is part of it :).
  • I learned Objective-C, Cocos2D and Box 2D.
  • Took a nice iPad application development task from a nice client – my first Objective-C coding. Planning and designing the application took me 60 days, while developing it took 30 days.
  • Bought a 64GB Wifi iPad and got dove deeper into my Apple obsession and addiction.
  • Made 2 games in 10 days (Santa in a Hurry and Present Catcher), which by the way are my first games ever, which accumulated sold around 1000 copies, not bad.

Karnak Games and me in 2011

  • Read and Learn even more: on 2010 I read and learned thousands of things, and I don’t plan to change that this year. Learning something new is what really keeps me motivated.
  • Release multi platform games and just one or two iOS exclusive titles. Since I’m a full time indie, I need to get revenue from the broadest possible range from my games. To accomplish this I’m using and loving Unity. I may consider Corona for one of the games.
  • Release 2 big games: one of them is already being designed, and at least one of them has to be free with IAPs.
  • Release 5 small games: at least of them has to have pixel art graphics made by myself.
  • Since I’ll make multi platform games: launch something on the Mac App Store.
  • Reach 800 Twitter followers.
  • Reach 100 Likes on our Facebook page (46 right now).
  • Go to USA or Canada, and participate on a local Game Jam or WWDC.
  • Participate on at least 3 game jams, one of them has to be Ludum Dare.
  • Get really good with Blender (I already know how to model, texture and animate, but I want to get professional).
  • Make a living with the games (I’m talking about a reasonable monthly revenue), so I can focus only on making games, and not taking client work anymore.

Tracking 2011 with a spreadsheet

To help summarize 2011 on the next year (I’m thinking on 2012 already) and help keeping me motivated I’m writing down everything (personal and professional) I’m doing in 2011 since day one, using Google Docs Spreadsheets. I just write a short summary of the earlier day, example:

1: We enjoyed the beach. Studied some advanced Unity stuff.
2: Drove back home. Started designing a new game “####”. etc…

I’m not writing down the days: the spreadsheet lines tells me which day of the year that record refers too. I also think that this will be fun to read on the future.

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.