Read about how Frozen North overcame having just three programmers on the staff for Flip's Twisted World.
The programming for Flip’s Twisted World was a challenge for many reasons. One of the larger ones being the rather unique composition of our team, consisting of only three programmers at the most and a small number of artists. We had to play to our strengths in order to successfully accomplish the ambitious goal that was Flip's Twisted World. A team of this size has presented us with a large amount of flexibility and camaraderie. Everyone on the team was allowed and encouraged to voice their input with respect to all aspects of the game, and the talents of every person were used to their utmost capacity. The downside to a team the size of ours is that we all must give 150 percent at all times in order to succeed with such an ambitious project.
Oh Where, Oh Where Have the Resources Gone
Oh Where, Oh Where Have the Resources Gone
Our artists came primarily from teams working on systems like the Xbox 360 or the PS3, where system resources are comparatively abundant to those of the Wii. The limitations of the Wii system fall into two categories, the first being memory. Compared to other modern systems, the amount of memory in the Wii is quite limited; many Smart phones have more RAM than the Wii. The other memory limitation is that it is divided into two banks with different speeds, which must be managed accordingly. The second limitation is that the processor is many times less powerful than any other system and computationally expensive systems such as physics must be carefully monitored. Because of this, as programmers we had to be especially careful to allow the artists to use as much memory and processor time as possible in order to produce their fantastic assets. This was achieved using a few techniques. One was a very efficient memory allocator that would waste as little memory as possible in order to maximize the amount we have. Another was to make some modifications to the physics engine that reduced the footprint in memory that it had. Giving the artists the maximum available space to work with was a challenge, but it paid off in the sprawling worlds we were able to create. In many places we come very close to the limit of the Wii's memory boundaries with the size and complexity of the worlds that we have created.
Putting the Twist in Flip's
The other major challenge that the programmers have had to overcome has been the unique use of the rotation mechanic. Whereas in most current games gravity is always constant, in Flip's we are required to account for many more interesting possibilities. The artificial intelligence not only has to allow for a character being in a different vertical position, it also has to adapt for the player having a totally different idea of gravity than the enemy. This has led to some rather interesting and unique behavior that had to be created for many different enemy types. Special attention had to be paid to all flying characters in particular.
Some of the problems introduced by rotation included enemies attacking Flip through the floor, or attacking him when he is in a very awkward position such that he cannot fight back. We had to pay very close attention in order for the AI to feel both intelligent and engaging, as well as to not be overwhelming due to the complexity of being able to fight enemies from multiple surfaces. This mechanic also put further strain on the Wii’s resources since now every character had to make many more tests to determine its orientation relative to other characters and enemies in the game.
The largest problem that we had with the rotation mechanic was that we had to rotate the physical representations of objects. Our physics engine originally thought of Flip as a capsule (a pill shape), and as such he could fit into some tall, narrow spaces. This caused a problem if you wedged flip in a tight space and proceeded to twist the world - pushing his head and feet through walls on each side. This issue manifested in a variety of different ways due to how the physics system dealt with intersecting physical objects. The simplest were that Flip would get jammed, or bounce out of the area he was in, but they got more complex and problematic when Flip would bounce INTO to the level, and as such he could run around inside the walls and floor, and have a hard time getting out. We tried a number of different approaches such as trying to detect and prevent rotation in these areas, or making sure Flip always got pushed to the “outside.” The most effective solution was simply to change Flip's physical representation from a capsule to a sphere, so he could be rotated freely in any orientation.
The final problem with the rotation mechanic was dealing with changing inertia while rotating the world. Originally we were able to rotate the world while running, which presented some very interesting and fun situations, but unfortunately this made it more difficult to design levels that could not be "cheated." This became apparent when we were consistently able to run towards a ledge, time a rotation correctly, and end up running down the edge of the wall. As such we had to remove the ability to rotate the world while running in order to maintain some control over where the players could be. (Although if you try really hard, and know where to look there are still some places that you can get to that may not have been intended).
I feel that we here at Frozen North have, with Flip's Twisted World, put together an engaging game that has really pushed the capabilities of a system . We have introduced a new game mechanic that will hopefully be around for many years to come, and we have overcome many obstacles with both our team size and the system that we are working on. It has been an extremely challenging time but we feel that we have put together something that is unique and fantastic for our fans.
Andrew Woloszyn is the lead programmer at Frozen North Productions. He dabbles with many aspects of programming but primarly loves graphics technologies and artificial intelligence.