A few weeks ago I switched my strategy game development from XNA to Unity. The main reason was cross-platform deployment. As I’m targeting XBLA as the end platform for my game I needed to make sure that the technology I went with was able to run there but in the event I couldn’t get it published on that platform I didn’t want all of my work to go to waste. In came Unity. If needed, I can turn around all that I’ve done for the Xbox and deploy to Windows or iOS devices. Since we are still a small company, this flexibility is necessary.
Another of the huge benefits I’ve seen with Unity is the ability to use their toolset as a game editor, allowing me to lay out the levels without creating an additional set of tools. Over the past week I’ve been creating my own custom editor windows and components to handle the creation of levels for the game. One of the things I needed to be able to do was create not only a hex grid but be able to change the materials associated with each hex quickly. The first part, creation of the hex grid based on width and height input came together pretty fast, but the editor for the hex material has taken a bit longer. Originally I created a dropdown when a hex is selected with the list of the materials available, but even with a 20×20 grid, doing a dropdown for 400 items gets tiring fast. I needed a quicker way of changing the item in the dropdown and wanted to be able to select material based on keypress as well. Now selecting a single hex and hitting a key allows the material to be switched really quickly. Since I had a hard time finding examples as to how to use keypresses in an editor window I’m going to make mine available for anyone else that might need something like this. You can find the code below.
public class HexEditor : Editor
{
/// OnEnable - hit when the script is triggered
public void OnEnable()
{
SceneView.onSceneGUIDelegate = Update;
}
/// <summary>
/// Update the specified sceneview.
/// </summary>
void Update(SceneView sceneview)
{
Event e = Event.current;
if ((e.isKey && e.character >= '0') && (e.isKey && e.character <= '9'))
{
int index = e.character - '0';
ChangeTile(HexTileInfo.HexType.HEXTYPE_EMPTY + index);
}
}
/// <summary>
/// Raises the inspector GUI event.
/// </summary>
public override void OnInspectorGUI()
{
ChangeTile((HexTileInfo.HexType)EditorGUILayout.EnumPopup("Tile",((HexTileInfo)target).hexType));
}
/// <summary>
/// Changes the tile - Switches between the type of material needing to be assigned
/// </summary>
private void ChangeTile(HexTileInfo.HexType type)
{
if ((type < HexTileInfo.HexType.HEXTYPE_EMPTY) || (type >= HexTileInfo.HexType.HEXTYPE_NUMTYPES))
{
return;
}
// set the type for this hex
((HexTileInfo)target).hexType=type;}
}

For the longest time I was a big supporter of the premium model. Release a product and charge people to buy it. Seems like a simple concept, but the Apple AppStore isn’t a simple environment. With such a huge install base it made sense that if you could get your game into the hands of just a small percentage of those users you could survive and grow. The hard part is getting people to make that jump from just looking at your game to clicking the purchase button to try it for themselves. The price is the user’s greatest barrier to entry, even if it is only $0.99. Expectations of quality have risen while expectations of price have dropped.
Traveler’s Quest, the first GPS social treasure hunt game, was launched to the AppStore in 2009. Traveler’s Quest challenges users to track down virtual treasures in the real world. Initially the user base grew steadily while the game sat in the new release list but as the game slipped down so did the influx of new users. Advertising, releasing updates, putting the word out on Twitter and Facebook did little to get the attention the game needed.
For two years, Traveler’s Quest has had a small, yet extremely loyal fanbase that have spread treasures around the world from the U.S. to Australia, to Europe and Japan. Some treasures have traveled the world as they’re buried only to be found by other players to continue on their travels.
In late 2011 we signed up for a Free App a Day promotion and took away the largest barrier to gathering new users. Over the course of a few days, our user base doubled. A few thousand new users streamed into the game, spawning new treasures and giving our existing players new competition. After the promotion ended, the stream of new users slowed back to the trickle we had seen before. Even though new users were slow to come in, the revenue the game was making was steadily increasing through In-app purchases for upgrades. Although the game is completely playable without making any additional purchases, a lot of the new users were giving themselves a quick boost.
We had originally hoped that the influx of new users would tell their friends about Traveler’s Quest who would then purchase it after the promotion was over. Unfortunately that word of mouth advertising we were hoping for didn’t materialize. What did happen though surprised us. After doing a quick comparison, we saw that even though we had given the game away for free, the amount of revenue coming in had increased. The freemium model started to make sense.
In the months since the last promotion, we spent our time adding new features to the game and updating the server side to handle a lot more users. As of the start of February 2012 we’ve removed the largest barrier to play, Traveler’s Quest has gone free permanently. The amount of new users has doubled again and steadily growing. While it will be a bit before we can say definitively that this was the best move, initial revenue reports are promising.
The greatest feeling though is finally seeing a larger number of people enjoying the game and seeing treasures crossing the globe. I wonder where they’ll end up?