So I wanted a really cool menu scene where I have actual characters from the game and a 3D world as the backdrop. You can see the image above for an example. When you click New Game, the camera zooms in on a single character with the others slightly out of view on either side but still visible. Swiping left or right takes you to the next character you can choose. While you are on a character, you can interact with the character via normal input, switch between attack and spell phases, create a minion etc. These characters are powered off of the same state management system that centrally controls the state of my game. This same system also includes my event management system, which is also persistent.
So you want to have constant explosions, hundreds of rockets, bullets flying all over the place and general insanity in your game. Great, so do I! But this insanity comes at a cost if you don’t manage your resources properly. When you instantiate and destroy an object, you have to allocate memory, it sits there for a while and eventually the garbage collector comes by and releases it, IF it meets all of the requirements. Well that’s the sliced down version anyways. If you are interested in more reading on the whys, here are some links to additional reading.
This article discusses one technique for helping manage those resources for objects that might quickly go through that cycle. The article is three sections, what is object pooling, what to pool and how to implement object pooling. Continue reading