Ultimate Coder Week 7: How to build the future... slowly

This is my last Blog update for the Challenge and there are only a few days left before delivery. Since the last post, I have been to LA and then flown to Tokyo and tomorrow I'm moving on to Seoul. Life has been busy, but life should be busy. As a lone developer time management and being efficient is very important. Being able to whip up my Ultrabook anywhere in the world and get some work done no matter how short time you have is really essential. Because even if you are busy, I find that there is always gap times, when you are waiting for a bus or train, when food is about to arrive or in a cab or train or plane, the trick is to be able to use them. Right now I travel with 2 computers, one Asus G73 17.3inch monster and one of my Ultrabooks. I dream of having a 17.3 inch Ultrabook, with i7, SSD, no DVD-drive, full HD display (or more!) preferably based on the new Haswell Micro architecture giving it long battery life, and a Asus Ti-chi style dual display to share content. Intel, make me that computer!

The other thing you want to do is to be smart about your development strategy. In the world of strategy games there is an expression called "teching up". It means that rather then spending your resources on building an army you spend it on factories, research and upgrades, that will in the future make you army better and faster to produce. It is obviously a gamble, ifyou get attacked while doing this you are vulnerable, but in the long term you will be much more powerful. In life, I think this is a strategy more people should opt for.

In one of the GDC tools round tables we had a discussion about tool technology development, and someone said "At the end of the day we are making games!". To this I replied "Are we making games, or are we developing a process for making games?". I think that is a valid question, and i think that in our hurry to do something we very often don't care about process. Pixar is not great because it made Wall-E, it's great because it has a process that keeps outputting movies as great as Wall-E, UP and Finding Nemo.

When I develop anything be it a game, a tool or anything else, I just don't think about what I want to do now,I think about what I want to do in the future. I want projects that spawn not just a new application but new libraries, new tech that is inline with what I want to do in the future. Preferably what I do shouldn't just lead you what I think I want to do next but to give load of options for what I want to do next so that I can be flexible.

Much of the tech industry is trying to catch Apple in the Phone or Tablet market, but what they are missing is that Apple didn't start out making a phone. They made Quicktime, and Quarts, and Mach-O Kernel, and ITunes and Cooca and a bunch of other technologies over the years that today puts them in a great position to make new products. If you want to beat them you have to start from the ground up and control your technology. Apple probably didn't plan to get in to the phone market when it created much of this, but it has given them options that eventually led them to the opportunity to make a phone.

To me this entire Code challenge has been about teching up. It's not just about making something that supports the Perceptual computing SDK and the new generation of ultrabooks, but making everything I ever do in the future support their technologies. And that's not all, every application I write from now on will:

-Be resolution independent.
-Support multitouch
-Support multi user input.
-Be stereoscopic 3D.
-Support head tracking.
-Support color correction and calibration.
-Support HDRI Displays.
-Run on mobile as well and desktop hardware.
-Be portable.

That is how you build the future.


For more complete information about compiler optimizations, see our Optimization Notice.


Infrared5's picture

Great post Eskil! I can't agree more with this approach. It's the reason we built our face tracking and eventual gaze tracking software with the idea that it's a reusable, soon to be open source library. We, like you, didn't just stick with the limitations that were handed to us. Kudos man! Great work in this competition!

Shyam's picture

Eskil, I completely agree with Peter. We all had focused on just app development using intel PerC, but you thought something out of box. Great work, all the best.

Rupam D.'s picture

I absolutely second with you Eskil. I am a great believer of building library and code base and not just the application. An application is just restricted to it's use by the user but the tools are real weapon. I have loved all your posts and was amazed to see your UI components. Great work man. All the best!

Peter O'Hanlon's picture

Eskil, this is an interesting and thoughtful post. What I tried to do throughout the development was create an application that used only the features that PerC provided out of the box to show what is there right now, I really appreciate the direction you have taken.

Add a Comment

Have a technical question? Visit our forums. Have site or software product issues? Contact support.