Smoothing Across Meshes

I don’t want much. I just want to split a mesh into multiple pieces and still have it look smooth. Took me a while to fix this, but here’s what’s required:

To make an object that consists of multiple meshes and materials look smooth you need to make sure that all vertices in identical positions also have identical normals and tangents. Here’s why: if you split the mesh there will be vertices in identical positions (one belonging to one mesh, one to the other) and they might not have their normals pointing in exactly the same direction. But only if identical vertices have identical normals and identical tangents will the shader be able to display a smooth transition.

Have a look at this image to understand why there will be multiple vertices in the same position:

Make sure you have smoothing on when exporting/importing the mesh, or else you’ll have lots and lots of identical vertices (since those are required to create the faceted look in the first place)…

And you also need to make sure that the different materials are set up correctly – if the specular color, shininess or height aren’t the same values, it won’t match even if everything else is spot-on.

Now to the Unity part: Fix the normals (remember my post about blowing up a mesh – that’s a good starting-point for finding identical normals), then use this script to recalculate the tangents and you’ll be fine (this will work because the tangents are calculated from the normals)

PS: Why split it anyhow? Well, a lot of older systems can only support textures up to 1024×1024, so if I want to have a lot of detail on one object (in my case a globe that you can zoom in on), I need to split it and use multiple textures. In my case I have one 8192×4096 texture that I split into 32 1024×1024 pieces.

Leave a comment


NEW ORBIT is finally available for Android! (Google Play Store Link / Amazon AppStore Link)

NEW ORBIT for Android

Read on for random ramblings about Android and my experiences porting the game…

Continue reading »


Unity and GitHub

I’ve been looking for an easy way to collaborate with others on Unity projects. I want:

  • Version-control
  • A graphical user-interface
  • I don’t want to set up my own server
  • It has to be “cheap enough”

GitHub seemed the way to go and I wasn’t disappointed. Well, the free GitHub Mac app does have a few shortcomings, but it gets the most basic stuff done nicely!

Here’s a step by step walkthrough of how to get going:

Create new project in Unity or open the project you want to use.

Go to Edit > Project Settings > Editor and enable Version Control by setting the Mode to Meta Files

Drag and Drop your project folder into the GitHub app – it will show up under Your Computer

If you don’t have your GitHub account in the list yet, go to the settings and type in your username and password. The new project doesn’t show up under your account until we Push it to GitHub a little later

First we set up the project: Click the Arrow next to the project or double-click on the project, switch to Settings tab and tell GitHub which files and folders it should ignore (You can copy/paste the code from this blog entry)

Go to the Changes tab and Commit all uncommitted changes.

We’re still only local, but now we’ve readied the current state of the project to be pushed to GitHub. Notice how your last commit shows up under Unsynced Commits! Now let’s push the project to GitHub by pushing the “Push to GitHub” button!

This sets up a repository on GitHub, but the repository will still be empty (Also: please notice that you need a paid account to be able to make your code private. I think their rates are quite fair.)

So, as I said – your new repository on GitHub is still empty. Notice how the button we just pressed has changed to “Publish Branch”. Let’s push it again. It will now publish the branch and then read “Branch in Sync”! If you check the GitHub repository on the web, all your stuff is there now!

And this is the pattern you will follow when working on your project:

Work in Unity > Commit Changes > Sync Branch (notice that you can choose to commit only certain files or even only certain changes within text-files!)


The History tab lets you go back and forth in history. Want to undo a commit? Here’s the place to do it.

This should be the most important stuff to get you going with GitHub and Unity! Stay tuned for a separate post about Branches!


Email Encryption Now!

The other day I was booking a hotel room and wanted to tell them my credit card information over the phone. Their response was that they don’t take it over the phone because it’s not secure enough and that I should send it in an email instead. Sending credit card information in an unencrypted email is secure? Guess again.

Anyway… This got me thinking about email encryption and how it used to be a pain to get working several years ago. Surely something must have happened since then and it would be easy now, right? Right – it actually is! It takes 5 mins to set up and is completely free!

On the Mac, just get the GPGTools Installer and follow their short tutorial. Within 5 mins you have a key and are ready to go and send signed and encrypted emails from within Apple Mail!

But what do I do on the iPhone/iPad? Encrypted messages only show up empty with a weird attachment! – Well, install the free oPenGP Lite app to do the encrypting/decrypting for you!

Export all your keys from  GPG Keychain Access (part of the GPGTools, you used this to create your key), add the resulting file to the oPenGP Lite app via iTunes File Sharing or Dropbox (They say supporting key servers is on their roadmap, but I guess you’ll always have to add at least your secret key). Now you can decrypt by opening the mail attachment in oPenGP Lite or encrypt directly in oPenGP by writing a message and choosing Send by mail! Not as nice as as having it right in the Mail app, but better than not having it at all!

You may now securely share your secrets with me!

Edit: Here’s someone else’s post about the new GPGMail 2 (it should work the same and has the same info as in the tutorial, but it’s *new*!)

Leave a comment

Preorders and expiring S3 links

Pay what you want to pre-order NEW ORBIT Episode 1 for PC/Mac – coming very soon out now! (Yes there’s tiers and bonuses!) Also: The game will be DRM-free!

So… DRM-free and no included unlocking of a trial means I can’t just hand out the download link.

What to do?

Since I’m hosting all the downloads on Amazon S3 anyway, I took on the major task of finding a way googling for a way to create expiring links to files on S3. And I did find it here! So the link I’m sending to the user contains his user-id and I can verify that he has indeed bought the game before I forward him to a link that expires after 30 seconds. If someone shares the second link he better be quick. If someone shares the first link (the one with the user-id in it) and it’s generating a suspicously large amount of downloads, I’ll know and revoke downloading rights for that user. I also added a security hash so you can’t just use someone else’s id if you know he bought the game…

There’s no in-game-DRM because it’s a hassle for the user and it’s a pain for me to implement and the game is going to get pirated either way, but this way I can at least make sure that I’m not paying the bandwidth for the illegal downloads… And there’s even a bright side for the user too: File downloads from fastspring would expire after a week or so, with my new solution you’ll be able to re-download all your games at any time by logging into!

With this in place I hope I’ll have everything ready to go live soon and the final release date will be a little while after that!


Future Episodes: IAPs or Separate Apps?

Maximize Visibility! Maximize conversion rate! Maximize customer satisfaction! – Brrr. I feel dirty now. But if you’ve read the previous few posts, you know that life on the AppStore is a battle. So this is a pretty important decision!

Continue reading »


Unity: GameCenter Achievements

Starting with version 3.5, Unity supports GameCenter out of the box! Here’s how to put GameCenter Achievements in your game:

Continue reading »


I can hold a grudge

Shortly after NEW ORBIT was released on iOS I wrote to Desura as one possible way of distributing the PC/Mac version and got told that “The game play just doesn’t seem that interesting”. – Today I replied:

Continue reading »


Resurrection of an AppStore Salesman

After a month of of being ignored by all major review sites, generating no noticeable impact on any forum and close to zero sales, I was pretty sure I had wasted a year of my time as well as my entire company budget and would be looking for a job soon. And then the AppStore team decided to feature NEW ORBIT. *Boom*

Continue reading »


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