Galaxy invader is my 2nd project that I started last year in 2020. It started as an infinite runner but that type of concept have been beaten to death by so many variations. So I tried adding some mechanics to already tried and tested successful genre. The result is this game where you are running in an infinite style but there is an end to each level. Each level your game gets harder and harder and making you improve on your skill slowly. The inspiration to progressively increase difficulty and demand higher skillset through level design is ‘ believe it or not’ from Doom Eternal. I was fascinated by how well I can play the Doom game by the end of it that I wanted to create similar feeling with this one.
Creating an interesting game mechanic with a very cool vertical is one challenge, finishing the game with a complete solution, admob integration, complete level design, post process stack and shaders to increase the artistic effect, UI, all of that is a beast on its own. I wanted to pick a small game like this one and finish it from an end to end solution to get a better feel for the project timing, effort and money it can take. This activity also gave me a decent idea for effort needed in all different components. I always recommend all my friends studying and working in gamedev to finish at least one project. This game is published on App Store ( Alpha) as well as itch.
Object Pooling is such a powerful concept that after grasping it I immediately started applying on any high rendered object I could see. The basic idea is to not instantiate or destroy gameobjects when they are needed in the scene. Because instantiating and destroying game objects create a lot garbage collector memory for the compiler. For 10 or 20 bullets in the scene, most of the electronic system ( like your phone, pc) can handle it pretty well but as soon as you start increasing the bullets to 100 or a 1000 in the scene, you would see the Frame rate drop significantly due to the garbage collector working removing this data rather than rendering the scene. So in order to solve this problem, object pooling is one of the technique where I create a pool of objects sitting on the sideline ( like substitute in football match), we would keep them anywhere in the scene or outside the scene hidden. As soon as one is needed they would come in the scene (instantaneously or linearly depending on what is needed) and do its job and when done it would disappear or leave the scene and other one would come out. This reduces the instantiate and destroy process to zero and much smoother frame rate. Taking a step further, this can be used for a very heavy gameobjects ( the not so beautiful drones in the game are quite expensive to instantiate) and this technique is useful to have multiple of them smoothly. Only caveat is you would have to load all you or game objects ( including the substitute) before the scene starts, so it might be a little heavy on loading but it is a better experience for the user when playing the game.
This game contains simple currency system where you can buy Skins and Scenes in exchange of coins. You can earn coins while playing the game and logging in the game daily.