BLACKISH DEV BLOG Support
 

 

Death of an AppStore Salesman

Life was easier 3 years ago. You would release a game to the AppStore, people could easily sort by release date, see what’s new and buy your game. And even afterwards they could just search for a keyword and find your app because the whole place wasn’t totally overcrowded yet. And your chances of getting reviewed were decent too… It’s different now. 

Continue reading »

1 Comment

The problem with 005

Some of you have run into a little problem in mission 005 of NEW ORBIT, so until the fix has passed Apple’s inspection, here’s what’s going wrong and how to avoid it:

First the solution: Don’t get close to Noah’s Asteroid before the Cargo-Ship reaches the lost ship. Continue reading »

20 Comments

Moving day

This blog is about my work as an independent game developer, so why not move from blogger to my website here (and give it a facelift while I’m at it)?

I have a few exciting things to tell you in the near future, so stay tuned and thanks for reading!

Leave a comment

NEW ORBIT Released!

NEW ORBIT is now available for iOS! Get it here on the AppStore!

2 Comments

Building for Distribution with XCode 4.2

A bunch of links that helped:
Just so I remember the next time I need it…

How to build and submit […] with Xcode 4
Xcode 4 user guide – but don’t set that one value to YES or the archive will never show up in the Organizer as described here on stackoverflow

Leave a comment

Lion + Xcode 4.2 + Unity 3.4 + iPhone 3G = Disaster?

Or: How to make a universal build that also runs on iPhone 3G or 2nd gen iPod Touch with Unity 3.4.2 and Xcode 4.2 on Lion. No easy task, but with a little help from all over the web, I figured it out…

Step 1 – Unity:

In the Player Settings, choose SDK Version 4.3 (Yes, Xcode 4.2 comes with iOS SDK 5, but don’t set this to iOS latest or you’ll get a bunch of errors when building…)
Target iOS Version: 3.1.3 (Choosing something lower doesn’t work thanks to a bug in Unity)
Target Platform: Universal (more about this later…)
Target Device: iPhone + iPad (just because I want it to run on both) – not sure these matter, as XCode seems to ignore them…

Build and open it in Xcode

Step 2 – XCode:

• Set the Base SDK of the project and the target to iOS 5.0
• On the target, set the Targeted Device Family to iPhone/iPad
• Still on the target, set the iOS Deployment Target to 3.1.2 (Notice: That’s below 3.1.3! I use this just because it’s the version my 2nd generation iPod Touch is running)

And now for the part that actually makes it run on old armv6 devices:
• Both in the project and on the target, look for Architectures, click on $(ARCHS_STANDARD_32_BIT) and choose Other… from the popup. Hit the plus and add armv6. (More info on here on stackoverflow)

• Select Unity-iPhone > Your Device from the top and Build+Run!

Leave a comment

Unity: iPad Splash Screen Rotation

In XCode open Info.plist and look for UISupportedInterfaceOrientations
Add all 4 of the following items and the splash-screen will match the current device-orientation:
UIInterfaceOrientationLandscapeLeft
UIInterfaceOrientationLandscapeRight
UIInterfaceOrientationPortrait
UIInterfaceOrientationPortraitUpsideDown

Tested with Unity 3.4.2 and iOS SDK 4.2

Leave a comment

Behind the scenes: Age of Curling Prototype

A blast from the past – This is what the first prototype and the first test-level of Age of Curling looked like.

Leave a comment

Unity: Editor Selections (EditorScript)

How to set selectionsin the Editor from an EditorScript:

Selection.activeObject = myAudioClip; //single Object
Selection.objects = new Object[3] {obj1, obj2, obj3}; //multiple objects
Leave a comment

Unity: C# Function Survival Guide

Let’s say you have a function that fades the screen to black, loads a new level and then fades back in.

public IEnumerator LoadLevel(levelName) {

yield return StartCoroutine(FadeOut());
Application.LoadLevel(levelName);
yield return StartCoroutine(FadeIn());
}

Said function lives in a script on an object that doesn’t get destroyed when a new level is loaded. But if you call that function from another script, the screen will fade out, the level will load, but the screen will never fade back in.

WHY?

Well, if the caller gets destroyed the function will stop running and never reach the point where it could fade back in.

And the easy solution is: Create a second function (in the same script as LoadLevel of course) that does nothing but start the primary function.

public void InitiateLoadLevel(string levelName) {
StartCoroutine(LoadLevel(levelName));
}
Leave a comment