Zeng Xiancheng briefly talked about the production of his FPS title Bright Memory: Infinite and gave some tips to novice indie game developers.
My name is Zeng Xiancheng, I'm 23 years old. I am an indie game developer dedicated to 3D FPS games. After leaving a Chinese game company last year, I officially began working on the development of my game, Bright Memory: Infinite.
I am a fan of FPS games and I love playing many different ones, so I decided to develop a Chinese FPS title of my own. Development work is very difficult. In 2011, I first found out about UDK's game engine via an online network, and I began to learn how to operate the engine and design games. In 2014, I created my first FPS game – WAR STORM – while I was still in school. Western players have likely never heard of this game, but it’s a totally free-to-play game available for download on Chinese websites.
By that point, I had around three years’ worth of experience in game development. Upon graduating from a technical school, I joined a Chinese online game company in order to further expand my knowledge of game development and distribution by working with a team of developers. After that, I began the development of Bright Memory in my spare time after work.
Bright Memory: Idea
Around 2011, after graduating from junior high school, I went to a vocational school to study 3D animation design. The curriculum was slow so I had studied some additional 2D/3D design software at home on my own. That’s how I came to find the UDK engine and begin to develop the demo – which I didn’t plan to expand into a full game at the time.
I completed the first WAR STORM demo in four months on my own. When it was released on the Internet, I received encouraging comments and support from a large number of players so I started planning for a full FPS game.
The inspiration for the development of Bright Memory came from a discussion of ideas I had with a friend of mine; we started thinking up various interesting ways to play, with the assumption that if a person equipped with future technology were to travel back to ancient times, it would be pretty interesting. We started coming up with lots of different interesting gameplay ideas, but at the time there was no specific design direction that really piqued my interest. My first game was the previously mentioned war-themed FPS, and I didn’t get much experience with creating the action and shooting in the development process for that game, but Bright Memory was a sort of shout-out to many of my favorite games, such as Bulletstorm, Kagemusha, and Call of Duty.
I didn’t have any specific story scenario in mind when I started developing Bright Memory; I just had an idea for a combat-based game, and the main problem was how I would handle the combat system. I knew that I had to work this stuff out before releasing the game to the public.
Bright Memory was announced on the Internet in 2015, and a lot of players kept asking me when the full game would be released, but the combat system had just started working out and I had to complete a trial version of the game within one year.
I didn't have much time to think about the scenario, and once I had finally somehow gotten it into shape, I felt that the story part of the game was unsatisfactory, so I’m hoping that Bright Memory: Infinite will be able to fill in the gaps and make up for that.
Approach to Characters
Regarding character modeling, I didn't have much time to design complete characters, and I needed some original designs to make them, so I've been working on them from scratch with Reallusion software, and now Character Creator 3 and HeadShot to help me create the general models, as well as outfits, etc. For the materials, I used some model character material nodes in the Unreal Store to build the characters. Character animation is now done using the 3D software K-framework, which I use to individually design specific locations. Also, some parts from the Unreal Store animation material package are also in use, as well as some parts from Reallusion.
The characters generated in Character Creator 3 already have skeletal structure/skin, and the quality of the facial skin is almost the same as those in AAA-level games. I used Live Face middleware to capture 3D character facial animations; it works amazingly. Then, I exported the result to iClone to create character animations. There may be minor issues that require additional adjustments during the capturing process. The final step is to export the FBX files and import them into UE4.
As for the environments, I used Quixel's content and Quixel Mixer software. Quixel uses real terrain scans and the quality of the models and the resolution of the maps are already at the “movie” level. The trees are often created using SpeedTree; windy environments are very easy to achieve with the SpeedTree wind system, and some liquids or water are usually created using the UE4 material editor.
Using the Unreal Live Link plugin with iClone helps developers to import scenes and character animations into UE4 and preview them with a single click, which saves a lot of time when importing and setting up animations, models, and materials.
For lenses and lighting, I usually use telephoto lenses to capture related characters and depth of field. Spotlights are typically used by characters to illuminate independent lighting channels and I use a variety of lighting colors and intensities to create a cinematic vibe.
Preparation for the Game Release
The steps released in the 2019 version of Steamworks are relatively simple compared to the previous years. The problems encountered are mainly how to interface the game with the platform’s SDK.
For example, I have found a lot of relevant information on the achievement system of the game, and I was forced to learn a lot of non-game production-related stuff, coding-related things, how to manage the updated version of the game in the background in Steamworks when uploading the game, etc. It took me about three months to really grasp most of the features in Steamworks and get a handle on updating the game. In the end, I was finally able to release it without any issue.
I am currently developing the follow-up game full time, and development is expected to be completed as early as the end of this year. The actual release date has not yet been announced, so you can expect more news about Bright Memory: Infinite in the near future.
Advice for Indie Developers
I believe the most important thing about developing a large-scale 3D game independently is to work hard on developing the full game, and not simply a demo. Even if a simple demo comes first, at least the players can look forward to eventually playing a full game through to completion.
When I started developing games in 2011, I knew that many indie game developers in China end up giving up halfway through their own projects, since most of them need to work/go to university, so it was difficult to set a concrete development schedule. I recommend finding work at a game company while using your free time to develop your own games, in order to help gain more development knowledge and experience from the team you’ll work with. This experience will help you to develop your own game independently, and it won't cost you as much as full-time independent development and will help secure your daily living expenses.