The Lunate Games' CEO Andrei Morozov talked about the company's history and experience, explained its areas of expertise, and provided insights on reordering optimization techniques that lead to efficient and optimized software solutions.
Introduction
Welcome to Lunate Games! We're a passionate team dedicated to pushing the boundaries of gaming and bringing games to every platform and audience. Lunate's journey began in late 2022, when Andrei Morozov and Anatoly Gridnev along with other team members, established a company in Singapore focused on game development, porting, and optimization.
However, our roots in gaming and professional software development stretch back over two decades, traversing a variety of industries. For 10 years before Lunate, we were known as Simlabs. Our expertise lies in diverse spheres from simulation, modeling, and vocational training solutions to VR, game development, and porting. Since 2012 we have been developing complex software solutions for the air traffic management, civil aviation pilot training, robotics, and video games industry that we joined in 2019. We have been working with industry leaders in simulation and training as well as leading game companies.
Transition to Lunate Games marked a new chapter in our history, focusing on leveraging rich technical and creative legacy to innovate within the gaming industry.
Team & Specialization
Our team now consists of 33 talented professionals. Organized into several key divisions – Development, Quality Assurance, Program Management, Business Development, and Operations – each member brings a wealth of experience from various facets of the gaming industry as well as high-quality service which is our highest priority. Our development team consists of engineers with extensive and various expertise. The vast majority of our team have Master's degrees and diverse backgrounds in software engineering.
We offer an extensive array of services tailored to support game developers and studios at every phase of the game development lifecycle. Our offerings encompass a broad spectrum, including but not limited to:
- Co-development and porting across various platforms, ensuring a seamless transition and broadened audience reach.
- Restoration and remastering of legacy code and assets, breathing new life into classic games.
- Engine rework or transfer between different engines and their versions.
- Comprehensive performance audits and optimization, aimed at maximizing efficiency and gameplay smoothness.
- Implementation of multiplayer along with network stability enhancements.
- Integration of third-party services, expanding game features and functionalities.
- Support and automation of live operations and post-launch game management.
- Expert software engineering consulting and educational services, empowering teams with knowledge and best practices in game development.
Since 2019 we have worked on porting 5 AAA games and delivered them to Microsoft, Sony, and Nintendo platforms (all of them are under NDA).
Although porting constitutes a major portion of our portfolio, we are engaged in a variety of other gaming projects. Among these is the collaboration with Long Tale Games (LTG) on the relaunch of Life is Feudal MMO.
Lunate For Small Businesses
We have a long-term story of providing educational services to Universities and dedicated software engineering courses. Currently, we perform several educational courses for our teammates and are planning to extend this practice as an external service.
We definitely could help small teams to be more effective in using different engines and platforms as well as share our expertise on how to make optimizations and effective solutions.
Lunate is an official partner of all the game platform vendors, we have all the required equipment (e.g. DevKits) and software in-house. Lunate also has wide experience in carrying out games through platform certification processes as well as delivering games to different online stores. For our clients, we will perform this work at the highest level of quality and pace.
Tips on Optimization
Our experience is largely related to using Unreal Engine, CryEngine, and other various legacy game engines. Nevertheless, we could say that Unity is a great choice for those who are going to be on all available platforms. It has quite lightweight builds and convenient delivery to consoles and mobile compared to the aforementioned engines.
There are many ways to get to the best performance, but the first step is always to make a performance audit and deduce bottlenecks and limitations. Once the audit is completed we continue to the following steps which in general could be separated into 2 main domains: assets optimizations and code optimization.
Assets optimizations are typically done iteratively. It is possible to decrease quality, and sometimes remove unnecessary or unused. There are many other options such as asset packing, streaming, memory aligning, etc. Here we move to code optimizations. For example, it is possible to make code less universal when using specific assets.
As for the code optimization, there are plenty of opportunities to improve performance. We are going to mention just a few of them like algorithmic optimizations, changing data structures and caches, parallelization, and removing multithreading issues.
In this article, we explore the concept of reordering optimization and demonstrate its impact on memory utilization using C++ structures.