I couldn’t resist playing around with some of the Unity Pro features on the night scene of our latest Island Defense build, and it turned out so good that I’m seriously considering doing a desktop port of the game once we’re done with the mobile version.

Deferred lighting, realtime water reflections and refraction, shadow mapping, soft particles... YUMMY!

I set the render path to Deffered Lighting so we can have lots of dynamic lights popping around the screen without much performance overhead. The dynamic shadows and dual lightmaps really add a lot to the depth of the scene, especially around the buildings. However,  the biggest visual impact comes from the realtime water: you can see the islands, buildings, projectiles and enemies reflected on the water.

Since the water effect was so cool, I separated some of the island pieces so more water is visible inbetween. It also makes better use of the bigger screen estate of the desktop platform. Overall, I’m quite impressed by the visuals achieved in so little time and the smooth runtime performances. Unity kicks ass. But we already knew that! ;)

Play Island Defense v0.1 in your browser now!

Play Island Defense v0.1 in your browser now!

After over a month of hard work, I’m excited to introduce you to my new project: Island Defense, an arcade game for iPhone & iPad developed with Unity. For a more detailed description of the game, please check our official page on IndieDB.

I’m teaming up with my friend Greg Wolfe (xenoargh) who’s in charge of of the art while I take care of the programming.

Today, we are reaching our first milestone by releasing a first alpha build to the public in order to gather early feedback, comments and bug reports. This is of course a work in progress, and there are a lot of elements and features missing, and possibly a few bugs too!

At this stage, we’re mostly interested in getting your feedback on the overall feel of the game and its core mechanics. Please try to take note of what felt awkward or confusing to you, especially on your first play. Keep in mind this is a game designed to be played on mobile device with multiple fingers touching the screen at the same time. And of course, we would be delighted to hear your ideas and suggestions on how to improve the current game.

If you want to leave us some comments, you can use the following methods:


Another project that I worked on at Fabrication Games was released on the App Store recently. Our House is a 3D doll house for iPad developed with Unity, targeted at young/family audience. But hey, if you’re a grown up and into doll houses, that’s fine too, I’m not judging! :P

Continue reading »


During my stay at Fabrication Games, I also worked on Ionocraft, a steampunk racing game for iOS developed with Unity. The game just got released and is getting great feedbacks already! Check it out on the official website at www.ionocraftracing.com.



Bugfest is an addictive 2D bug squishing game designed primarily for mobile devices. The goal of the game is to survive the incoming waves of bugs for 90 seconds, squishing the red ones and letting the green bugs go through unharmed. While the game is mostly designed to be family-friendly, it also features some game mechanics for the more competitive players such as squish streaks, achievements and leaderboards.

It was developed in my spare time with the Unity engine and runs on iPhone and iPad in HD graphics, with Android support coming very soon. A free web player version is also available on popular gaming sites such as Kongregate.

One of my main objectives with this project was to create a small but highly polished game from start to finish and learn more about the process of releasing a game on the AppStore.

The initial development team consisted of a 2D artist and myself as programmer. We worked on the game during our limited spare time for a period of six months. In November 2010, I left my previous job at EA/Dice to join Fabrication Games, a small but rising mobile game studio in Stockholm. I made a publishing deal with them which included marketing costs and extra budget and resources to give the finishing touches of polish to Bugfest. We submitted the game to the AppStore three weeks later, on December 21st. At the time of writing, Bugfest has been downloaded over 3000 times in about two weeks.

Continue reading »


I’ve been asked how to get a 3D world position from the mouse cursor’s current position on the screen. Here’s he a code snippet on how to convert a screen-space position to a world-space position:

Vector3 ScreenToWorld( Vector2 screenPos )
    // Create a ray going into the scene starting 
    // from the screen position provided 
    Ray ray = Camera.main.ScreenPointToRay( screenPos );
    RaycastHit hit;

    // ray hit an object, return intersection point
    if( Physics.Raycast( ray, out hit ) )
       return hit.point;

    // ray didn't hit any solid object, so return the 
    // intersection point between the ray and 
    // the Y=0 plane (horizontal plane)
    float t = -ray.origin.y / ray.direction.y;
    return ray.GetPoint( t );

Now you can simply pass the mouse cursor’s current position to get its equivalent world-space position like this:

Vector worldPos = ScreenToWorld( Input.mousePosition );

© 2012 Fatal Frog Software Suffusion theme by Sayontan Sinha