Growing Pains : The challenges of a 2D platformer with a dynamically growing character



In this post I’d like to give a high level overview of how we dealt with the Blob’s scale change within a level.





Most designers will immediately predict the problems inherent with changing the character’s size in a 2D platformer (Note: I didn’t immediately predict this…). How does the Blob’s movement and abilities change with growth? Will the Blob jump higher with growth, and by how much? Will players that tend to absorb a few objects (little growth) be punished by not being able to make certain jumps? How does one even position platforms to accommodate for the various sizes the Blob could be?

After much iteration we came up with 2 main solutions:

1) The “goop” factor”
Work with your strengths. The Blob is a Blob, and that means being able to goop all over the place. We required a buffer of height on platforms since players would be reaching these at varying sizes. One option could be to have dynamically changing platform heights (*shudder*). An alternatively that we came up with was to allow for an intrinsic platforming forgiveness with the Blob, what I lovingly call the “goop” factor.





Whereas a traditional 2D character might hit the lip of a platform, and begin an untimely plummet (to death perhaps?), the Blob can goop on the edge. If a player reaches platform “A” at the smallest size, they should be able to goop over, whereas if the player reaches platform “A” at the largest size, they should easily be able to make the jump.

2) Size targets
In our ideal Blob world, the player would gloriously increase in jump ability and speed directly in proportion to the amount of the world they ate. Unfortunately this resulted in players becoming too uber-powerful with regards to jumping, and would break our levels to itsy bitsy pieces. We decided to section the levels up with size targets – so within a size target the player’s abilities did not scale directly with their size, but increased with a weighted factor. Players could not grow larger than the size target within a section, and only after hitting the target size would the jump height catch up to be directly proportional to the current Blob size.





This basically achieved two main objectives:


i) Players were still rewarded for having absorbed tons of objects with an increase in the jump ability. Wicked.












ii) The jump limits of the player at various points in the game became a bit more predictable for the designers – we didn’t have to accommodate every platform for an unrealistic range of jump heights from the Blob.




So that is a brief synopsis of dealing with a growing character in a 2D platformer.

3 Comments

  1. Demo says:

    I believe what you called Goop Factor is called Mantling by other game developers. Bionic Commando Rearmed has a kind of this, but its different.

    Recent 3D platformer examples would be Uncharted, Enslaved.

    Unreal 2 is notable for implementing mantling to accommodate different jump heights of its three classes in its “XMP” game mode in 2004.

    Other companies whom are innovating in this area include Splash Damage, whom is doing Brink. They have a feature called “Natural movement over unnatural terrain” which integrates mantling and other types of movement like sliding into one key.

  2. John says:

    very cool. when playing through the game i did notice it and it worked very well

    http://www.youtube.com/watch?v=lgoXUzIwXk0

  3. qwertz says:

    Well done.