It’s been a looong time since our last Dev Blog, so it’s about time to tell you guys what we’re up to!
After the release of Scrap Metal (and the many long days before that) we went on a well deserved vacation. About a month later (June) we got back into the office with lots of new ideas for games. Every prototype started off very fast, but then we quickly got stuck after all the technology was implemented. It felt like we had a game-design-block or something! Maybe the reception of Scrap Metal made us weary of trying new ideas? Maybe we were trying to force coming up with new games? It seemed the best thing to do was to relax a bit, and concentrate on something we felt comfortable doing. We decided to split our time between porting Scrap Metal to the iPhone/iPod Touch/iPad for a few days a week, and continuing with new prototypes for the rest of the week. This way, there isn’t as much pressure on coming up with a new game, and it also allows us to think about the prototype for a few days before continuing with its implementation. So far it’s worked out great!
So, a little more about the iOS port. First, I’m absolutely amazed how fast the iPhone/iPod touch and iPad are. A lot of the parts of the game I was sure would be WAY to slow on the iPhone actually turned out to run just fine. Obviously we did have to do a bunch of things to convert the game to the iOS devices.
Scrap Metal was written in C++, so converting the code-base to the GCC compiler proved fairly straightforward. All our tools are in C#, so we’re kind of stuck with half-PC-half-mac development (but that’s ok since SVN works nicely on both operating systems). On the other hand, we don’t need to create entirely new tools for the mac, all I had to create is a tool that grabs all the data and converts it to the format we need in the iOS game. This converter turns out to be really neat: it converts meshes, combines textures into one big texture atlas, optimizes the sound files, and packs everything into big data files that can be loaded quickly.
Simultaneous PC and Mac development (pic taken at home). And, being Dutch, the obligatory glass of milk.
We used deferred lighting on the Xbox 360, so our 3d meshes and lighting were set up for this method. We decided to remove deferred lighting (not to be confused with the deferred rendering in the PowerVR chip), since multiple render targets aren’t supported, and frankly because I had doubts it would be fast enough on the current iOS devices if it were even possible. This meant a lot of work for Kees, because the lighting had to baked into the textures, so he needed to unwrap the meshes (a task he *loves* :) ), create the lightmaps and merge them with the textures. We also felt we needed to reduce the triangle-count on all our meshes to fit on iOS devices. Luckily Kees is very experiences in these kinds of things, so we have it running quite nicely now! We are at about 30fps, but when there are lots of moving physics objects it tends to slow down quite a bit, so this is something we need to optimize still. I’m still trying to get over the shock that these tiny devices are able to handle this game!
Now, on to control methods. This is probably the biggest difference between the Xbox 360 and the iOS platforms besides CPU/GPU power. We tried and threw out a few different control methods. The first one we tried had a little steering wheel at the bottom of the screen, and an accelerate and brake button. This was ok, but not quite as easy as we had hoped. People playing the game were all over the place, crashing into the walls. Everybody had trouble keeping the car under control. The second one was using the accelerator to steer. For this to work we had to put the camera behind the car. This was somewhat better, but people were still all over the place. The third method we tried was simply driving the car towards your finger on the screen. This instantly felt like the proper way to go, and some usability testing confirmed this. We’re sticking with this control method for sure. Also, we can keep our current camera view, which means we don’t have to change any art to allow the camera to be behind the car (such as the backs of certain buildings, which we don’t have at the moment)
We don’t have a release date for the iPhone/iPad version yet, we still have a lot of work to do. It’ll be released when it’s done! :)