Last Pirate: Island Survival is an awesome mobile survival game from our long-time partner RSG. Project features complete 360o degree of player freedom: Survival, Crafting, Hunting and Base-Building mechanics inside detailed open world.
2018 - Present
Unity, Houdini, CG Programming, Shading, Optimization, LRPL
We came along to assist with technical challenges encountered along the development process:
Optimize open world environment to run on wide range of low-end devices.
Develop shaders for Ocean and Island Environment.
Research and Implement engaging resource gathering mechanic.
We began by establishing optimization goal with specific low-end device and target fps count. This way we get a static target to focus on, which is necessary for effective optimization work. Generic CPU profiling comes next: making sure game logic is not a performance bottleneck, at any point, is required before work on rendering performance can start. In Last Pirate’s case we discovered few minor problems that were promptly fixed before we proceeded with next step.
We approached GPU optimization by replacing all game shaders with minimalist, bare-bones implementations to discover what could be the best theoretically possible performance. Again, this helps establish clear targets to move from and towards; Since all aspects of application can be optimized to work faster, it is easy to fall in to common pitfall of optimization work - miss prioritization of optimization targets. Having a clear view of maximum possible optimization benefits allows for effective decisions based on time spent to performance gained.
After optimization targets were defined and prioritized we created a set of environment shaders. We come-up with shaded environment that both provided a significant FPS increase, and look exactly the same as initial one. This is achieved by removing redundant shader operations, simplifying and backing shading data. In the end Last Pirate turned out to be a great optimization case: we reach the goal of stable 40 fps from initial 7 fps on low-end device.
Achieving engaging resource gathering system is crucial for successful survival game were player spends most of his or her time interacting with gathering systems. Our goal was to design reusable and engaging interaction model that can be applied to wide range of game gathering nodes.
For iron and rock nodes we developed a fractured model and behavior; As well as system to handle pooling, physics and animation.
For range of various trees we created a chopped version of the models with proper physic behavior.
Hit decals and particles also were added.
In the end, it isn’t necessary to have overly complex and detail interaction system. The main goal is to create sufficient emotional variance for player to break monotony of clicking on resource nodes, which in turn leads to engaging game flow. It is easily achievable by applying unity physics, decals, simple particles and sounds.
Improved game logic performance.
Significant rendering performance improvement for terrain and environment.
Developed performant shader replacement pack.
FPS increase from 7 to 40. Increased 60 FPS stability on mid range and higher devises.
Significant Resource Gathering look-and-feel improvement resulting in improved retention after update.
Solution delivered in an initially estimated deadline of two weeks.
Continuous support for implemented solution.