The last 3 months a team of 6 people including myself have been working on creating a game for the mobile, the concept behind the game came from Mirrors Edge and Fotonica with an aesthetic style similar to MK Everyday work.
The game was a concept for Android and similar handheld devices which meant that we were restricted on all fronts, complex programming, high poly counts for art and size.
The biggest problem as a programmer on this project was optimization and load times, as Unity likes to load all assets that are referenced at the start of the scene there could be little optimization there which meant astounding load times on Android.
I pitched an Idea in the GOLD phase of the project to use asynchronization which would load the scene when the game is playing, however, the asynchronization as planned didn’t go so well. Originally there were 3+ different scenes the user would be able to play on so I built an asynchronous system around that idea, as the time frame shortened the idea to have many scenes got abandoned which left my Asynchronous system almost redundant.
The next big hurdle for optimization was the Player Controller, as the way we were detecting walls and angles of the player revolved around semi-complex math it was hard to optimize but we shortened the math and made it more simple, opting to use raycasting where we thought weren’t possible and other tricks that I won’t go into detail about.
The largest problem with optimisation was the Garbage Collector, as the playing field is a modular procedural generation the assets get loaded in front and deleted once the piece is behind the player, which meant a tremendous amount of deleting, looking back now we could have recycled those assets instead of deleting them resulting in a less resource intensive method of deleting.
The video above is the beta build of REM which demonstrates the core of the game we wanted.
This is our final video that was created of the game when releasing to Google Play.
The Android build can be found here:
The PC build can be found here:
Note: The PC build is not the intended platform to be played on.
Unfortunately, as REM is not a solo project and I do not have permission to share the source.