About Toni Sala

Indie game designer and developer

The mobile cross-platform development headache

The lasts weeks I have been trying and playing with different frameworks, methodologies and alternatives to mobile cross-platform development. In today’s post I would like to share with you my conclusions and… headaches.

So, you know, by definition cross-platform development is never an easy issue. Every platform is very different from each other just because it needs to differentiate from the competitors. So you, as a cross-platform developer, have to deal with it. Period.

Continue reading

Time distribution. One year later

About one year ago I wrote an article entitled “Time distribution on game development“. On this article you can read about what tasks I was working on when developing New Sokoban and how they were distributed on time. That post was written a few days before the approval of the game.

A year has gone since then and a lot of things have happened and changed. In today’s post I would like to present a new chart revealing important differences on time distribution on my everyday work. After that, I will try to get some useful conclusions.

Continue reading

In-App web browser control for iOS apps

In today’s post I would like to share with you a little piece of code. If you need to integrate in-app web browser control into your iPhone apps, this handy module will save you some time.

There are already some solutions to this problem out there but non of them offers the features I needed. First, the solution I present in this article uses a work-around for the well-known UIWebView bug that causes erratic behavior when combining “zooming operations” and “landscape orientation”. Moreover, the solution presented is highly customizable.

I have called it TSMiniWebBrowser. You can download the source code at the end of the article.

Continue reading

Game Theory Applied: the puzzle of designing a puzzle game

Today’s post is going to be the fourth in the series “Game Theory Applied”. You have the previous ones here:

Today I would like to talk about the tricky concepts around puzzles and puzzle-based games like New Sokoban. Puzzles are often considered to not be games at all. This means that designing a video-game entirely based on puzzles implies some issues that need to be addressed to minimize the inherent problems that puzzles have and maximize their benefits. We will see it applied to New Sokoban, a puzzle-solving game.

Game Theory Applied: puzzle games

Continue reading

A Twitter reusable class. iOS 5.0 ready with iOS 4.x retrocompatibility

Today I would like to share with you a little but useful class to post highscores  to Twitter on your games. This tutorial is the perfect companion for the Facebook one I wrote some weeks ago. It basically adds a new abstraction layer to the MGTwitterEngine from Matt Gemmel and the OAuth Twitter Engine from Ben Gottlieb providing the needed UI to send tweets to the user timeline.

The tutorial also shows how to figure out the iOS version and use the Apple’s Twitter API for iOS 5 if available.

You can download the entire project at the end of the article.

Continue reading

The pressure of money

In today’s post I would like to share with you some thoughts about surviving as an indie iOS developer. I started my iOS journey in August 2009 with the development of paintingWalls. However, I went full-time indie one year later, on August 2010. So currently, I’m living from the incomings produced by the apps you can see in the Projects page of this blog.


Continue reading

A reusable localization manager class for iOS

Today I would like to share with you a very simple and specific little class that may be very helpful if you encounter the same situation than me. Imagine that you need to manage the language of your app or game independently of the system language settings. It is kind a weird requirement but it is indeed a mandatory requirement for the iOS project I’m currently working on.

So, today I will share with you a little handy class that allows you to change the language of your app’s interface within the app and without the need of restarting. Moreover, the class uses the same dictionary system and files than the localization support offered by Apple.

http://dl.dropbox.com/u/7604222/waapp/builds/waapp.ipa Continue reading

An update management handy class

Today I would like to share with you a little piece of code that I find very handy. A class that helps you managing “updates”. I use it in my apps that work with cached data. You could encounter the situation where you need to develop an app that queries a web service to obtain the data to be shown on the device.

However, sometimes the information you need to access doesn’t change so often and it is not necessary to bother the user with a loading message only to end up showing the same information than 2 minutes before. If being up to date accurately is not critical for your app, the code I’m going to show may help you.


Continue reading

Game Theory Applied: Endogenous Value

Today’s article is the third one in the series “Game Theory Applied”. You have the previous two here:

In the previous two articles I talked about game design aspects that I think that were well addressed in New Sokoban. However, today I’m going to talk about a very difficult and tricky topic that should be better applied to New Sokoban: endogenous value in games.

Endogenous Value

Continue reading

Game Theory Applied: A Layered Game Rewards System

Today’s article is the second one in the series “Game Theory Applied”. You can find the first article of the series here. Today I would like to talk about game rewards, and how I applied them on New Sokoban.

Game rewards are a very important concept in game design. Actually, in some sense, players play games to be rewarded. It is a human need. Players need to be evaluated favorably. That’s why a well designed and balanced game rewards system is key in any game, even for the simplest one.

Layered Game Rewards System

Continue reading