Archive Page 2

Investigation and iPhone Limitations


Weíve had a lot of requests for insight into our toolset and development process here at Prophetic Sky, so I thought Iíd write a few entries to summarize some of what we do here. Weíre typically a Windows/Linux workshop, and so we had to make a few adjustments to work on an OSX platform for iPhone development. Fortunately, OSX overlaps a great deal with Linux, and we tend to use a lot of great open source tools.

There arenít a lot of real statistics for the performance of the iPhone out there, but you can get a rough feel for it by just looking at the existing games out there. Our tests let us to conclude that 3000 triangles/second was a good maximum (weíve read 6000, but couldnít reproduce that to be comfortable with it). Even assuming our physics, game logic, AI and special effects didnít eat into that time at all, if we wanted to fit 20 characters on the screen at once, each character had to be 150 triangles or less. Thatís not terrible; many games run with those limitations. But once you realize you still have to fit terrain, trees, towers, walls and spell effects in there, it starts to become very cramped.

Nova Spell

Better detail, but less flexibility

So we turned to sprite assets. There are many advantages to sprites ñ namely that 3000 triangles equates to 1500 sprites on the screen at a time. Also, we can render the characters in much higher detail initially, from source models in the thousands of triangles. The feedback that weíve gotten on the game leads us to believe that this was the right choice; universally we hear that the game looks beautiful.

There were drawbacks, as well. While we arenít limited by the rendering power of the iPhone, we are limited by the available memory, and sprites take up a lot of space. In addition, it means our art is limited to running at a fixed frame rate, and in fixed directions ñ the characters can only run in one of the 8 standard directions, for example. Also, we cannot change the perspective ñ moving the camera will just show that the sprites are flat.

Patterns, new and old


I didn’t even learn about the existence of design patterns until I started work. My personal path to becoming a Software Development Engineer, and now Chief Technology Officer here at Prophetic Sky, has been non-traditional in that sense. I started early, skipped the traditional college route, and went straight to task on changing the world.

I’ll let you know how that turns out.

I started at a small start-up, working on weather data. As it turns out, this was the ideal pot of proverbial boiling water to throw me in to. As a small company, there was no infrastructure established, so I learned first hand a breadth of responsibilities: from database design, to version control, to product distribution, to application development, to documentation, to customer support. Every technological decision was either made by me, or informed by me — which meant I needed to become informed in a variety of technologies and solutions very rapidly. Since we were working with terrabytes of fresh data updated daily, the solutions had to be scalable, fast, efficient, and robust.

I failed. Don’t get me wrong; many of my solutions were powerful and scalable, but there was no way a programmer fresh out of school was going to take on that much responsibility and nail it. (Ok, perhaps one of you could/did/would, and I stand humbled). However, with each failure, I saw immediately the repercussions and directly took the blame responsibility. And so I moved on to develop new systems, systems that didn’t have the old problems but instead were new, bright, shiny, and had a whole host of completely original problems.

Still, though, I learned quickly. I learned that the best way to learn is to fail at trying. Or, perhaps that’s the second best way to learn. The best is probably to watch other people fail.

So, I’m here to provide you with the best way to learn. I’ll tell you how I’ve failed, I’ll explain to you what I learned, and I’ll show you how an indomitable spirit can rise and solve the greatest problem of them all.

Or, perhaps I simply like the word ‘indomitable’.



This is my personal blog. Whereas on, you’ll find articles about the video game industry, startups, and storytelling, here you shall find entries on my more personal interests — programming and design for two.

As always, let me know if you have interest in a particular topic, and I’ll endeavor to keep you entertained!

– Nicholas M T Elliott