4.2K Views
November 27, 23
スライド概要
■Overview
More than five years have passed since the first game to use RE ENGINE, Resident Evil 7, was released in 2017.
We will look back at RE ENGINE's achievements to date and introduce our current operational flow and vision for the future.
Note: This is the contents of the publicly available CAPCOM Open Conference Professional RE:2023 videos, converted to slideshows, with some minor modifications.
■Prerequisites
No special skills are required.
I'll show you just a little bit of the content !
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CAPCOM Open Conference Professional RE:2023
https://www.capcom-games.com/coc/2023/
Check the official Twitter for the latest information on CAPCOM R&D !
https://twitter.com/capcom_randd
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Nintendo Switch is a trademark of Nintendo.
Trademarks are property of their respective owners. Nintendo Switch is a trademark of Nintendo.
©2023 Sony Interactive Entertainment LLC
"PlayStation Family Mark", "PlayStation", "PS5 logo", "PS5", "PS4 logo" and "PS4" are registered trademarks or trademarks of Sony Interactive Entertainment Inc.
©2023 Valve Corporation. Steam and the Steam logo are trademarks and/or registered trademarks of Valve Corporation in the U.S. and/or other countries.
Microsoft, the Xbox Sphere mark, the Series X logo, Series S logo, Series X|S logo, Xbox One, Xbox Series X, Xbox Series S, and Xbox Series X|S are trademarks of the Microsoft group of companies.
Microsoft, Windows, and Microsoft Teams are trademarks or registered trademarks of Microsoft Corporation in the United States and other countries.
Screenshots of Microsoft products are used with permission from Microsoft.
Copyright © Ubitus K.K. All rights reserved.
Linux© is the registered trademark of Linus Torvalds in the U.S. and other countries.
Tux penguin
by [email protected] Larry Ewing and The GIMP
Copyright © Ubitus K.K. All rights reserved.
Luna is © 1996-2023, Amazon.com, Inc. or its affiliates
Havok software is © 2023 Microsoft. All rights reserved.
"Hansoft" and "Hansoft Mark" are registered trademarks or trademarks of Perforce Software, Inc.
Apple logo, Apple Arcade, iPad, iPhone and Mac are trademarks of Apple Inc. registered in the US and other countries. Apple Arcade is a service mark of Apple Inc.
株式会社カプコンが誇るゲームエンジン「RE ENGINE」を開発している技術研究統括によるカプコン公式アカウントです。 これまでの技術カンファレンスなどで行った講演資料を公開しています。 【CAPCOM オープンカンファレンス プロフェッショナル RE:2023】 https://www.capcom-games.com/coc/2023/ 【CAPCOM オープンカンファレンス RE:2022】 https://www.capcom.co.jp/RE2022/ 【CAPCOM オープンカンファレンス RE:2019】 http://www.capcom.co.jp/RE2019/
RE ENGINE's Past and Future In this session, I will review the achievements of RE ENGINE to date, and introduce the current engine operation flow and future vision. ---Nintendo Switch is a trademark of Nintendo. Trademarks are property of their respective owners. Nintendo Switch is a trademark of Nintendo. ©2023 Sony Interactive Entertainment LLC "PlayStation Family Mark", "PlayStation", "PS5 logo", "PS5", "PS4 logo" and "PS4" are registered trademarks or trademarks of Sony Interactive Entertainment Inc. ©2023 Valve Corporation. Steam and the Steam logo are trademarks and/or registered trademarks of Valve Corporation in the U.S. and/or other countries. Microsoft, the Xbox Sphere mark, the Series X logo, Series S logo, Series X|S logo, Xbox One, Xbox Series X, Xbox Series S, and Xbox Series X|S are trademarks of the Microsoft group of companies. Microsoft, Windows, and Microsoft Teams are trademarks or registered trademarks of Microsoft Corporation in the United States and other countries. Screenshots of Microsoft products are used with permission from Microsoft. Copyright © Ubitus K.K. All rights reserved. Linux© is the registered trademark of Linus Torvalds in the U.S. and other countries. Tux penguin by [email protected] Larry Ewing and The GIMP Copyright © Ubitus K.K. All rights reserved. Luna is © 1996-2023, Amazon.com, Inc. or its affiliates Havok software is © 2023 Microsoft. All rights reserved. "Hansoft" and "Hansoft Mark" are registered trademarks or trademarks of Perforce Software, Inc. Apple logo, Apple Arcade, iPad, iPhone and Mac are trademarks of Apple Inc. registered in the US and other countries. Apple Arcade is a service mark of Apple Inc. ©CAPCOM 1
RE ENGINE's Past First of all, I would like to introduce the history of RE ENGINE. ©CAPCOM 2
RE ENGINE's Past What is RE ENGINE? • Capcom's in-house game engine • Started development April 2014 • Resident Evil 7 released January 2017 Steady increase in the number of titles using the engine Supported platforms expanding RE ENGINE is Capcom's in-house game engine. Development of RE ENGINE began in 2014, and Resident Evil 7, the first game to use the engine, was released in 2017. Since then, the 3 number of titles using RE ENGINE has been increasing and the number of supported platforms has been expanding. ©CAPCOM 3
RE ENGINE Titles 2017 2019 2020 2021 2022 2023 2024 and beyond Resident Evil 7 was released in 2017. After that, RE ENGINE was used for Resident Evil 2 and Devil May Cry 5, and multiple RE ENGINE titles have been released 4 every year since. More titles using RE ENGINE are scheduled to be released in 2024 and beyond. ©CAPCOM 4
RE ENGINE Supported Platforms Mac iOS The platforms supported by RE ENGINE are also expanding. It now supports Steam, PlayStation, Xbox, Nintendo Switch, Mac/Linux, and cloud platforms. ©CAPCOM 5 5
Features of RE ENGINE High performance and stability High development efficiency Modular design Backward compatibility The key features of RE ENGINE include high performance and stability, high development efficiency, modular structure, and backward compatibility. 6 ©CAPCOM 6
High Performance and Stability High frame rates at high resolutions • Thorough optimization for each platform and title Short loading times • Elimination of blocking loads, parallel loading, and dynamic scheduling Less hitching and crashing • C# managed code + proprietary GC algorithm = Prevents titles being judged negatively for engine issues The first is high performance and stability. RE ENGINE takes advantage of the benefits of an in-house engine and the close cooperation between the title and the engine 7 developer. Optimization for each platform and title is performed to achieve high frame rates at high resolutions. In addition, RE ENGINE has completely eliminated blocking loads. This has resulted in shorter load times through parallel loading using multiple cores and dynamic scheduling that minimizes seek time. RE ENGINE's title code is written entirely in the C# language, which reduces crash bugs by operating as managed code. The use of a proprietary garbage collection algorithm minimizes periodic crashes. This ensures that games' reputations reflect their content, instead of technical issues like long load times, frequent crashes, and unstable frame rates. ©CAPCOM 7
High Development Efficiency Rapid iteration made possible • Unify all title code in C# language • Reduced build time and crash bugs, hot reloading support • • • • Native cache reduces conversion time Reload support for all resources Remote editing on target device Packaging Automation = Can focus on improving the quality of titles Next, let's talk about RE ENGINE's high development efficiency. RE ENGINE enables fast iteration and efficient development cycles. 8 By unifying all title code in the C# language, build times and crash bugs are greatly reduced. Hot reload support allows for instant changes without restarting the game. The native cache to share converted assets reduces asset conversion time. All resources are reloadable, so changes to assets can be applied instantly without restarting the game. Separate runtime and tooling processes allow games to run immediately on the target platform. Asset dependencies can be fully traced and automatically packaged without prior preparation. With these various efficiencies, more time can be spent on improving the quality of the title. ©CAPCOM 8
Modular Design Freely combine modules to configure engine Shared CPS emulation module Engine without rendering module Running on Linux cloud server Use of middleware modules = All titles developed on a single engine Next, let's look at the modular structure. In RE ENGINE, functions such as rendering and motion are divided into modules. These modules can be freely combined 9 to create an engine for each title. For example, for Exoprimal, we created an engine without the rendering module and ran only the game logic on a Linux cloud server to enable multiplayer. For Street Fighter 6, middleware such as Havok is incorporated as needed, and the CPS emulation module used in Capcom Arcade Stadium is incorporated to create an arcade within the game. By combining modules in this way, all development can be done with a single engine without having to rewrite the engine for each title. ©CAPCOM 9
Backward Compatibility All titles run on the latest engine Apple M1 + Metal support Multi-platform development Next-generation upgrade with additional ray tracing, etc. = Catalog titles are assets and widely used Finally, backward compatibility. All titles created with RE ENGINE will run on the latest engine. This means that titles created for PS4, for example, can be 10 upgraded to take advantage of the latest features, such as ray tracing on PS5. It also allows for the extensive use of catalog titles as assets, for example, to support Apple's M1 chip or to be deployed on a number of platforms. ©CAPCOM 10
RE ENGINE's Present Next, I will introduce RE ENGINE's present status. ©CAPCOM 11
RE ENGINE's Present Almost all development titles use RE ENGINE • • • • • An ever-increasing number of projects An ever-increasing number of supported platforms Increasing number of catalog titles to be maintained Increasing number of users and inquiries Dealing with an ever-increasing number of problems = Need to improve efficiency of engine management systems Today, almost all of the titles we develop use RE ENGINE. This means that the number of projects continues to grow and the number of platforms supported by RE ENGINE continues to increase. 12 The number of catalog titles already released to maintain continues to grow. The number of users of the engine continues to grow, and with it, the number of daily inquiries. The number of defects reported and the number of corrections made continues to increase. Therefore, it has become important to improve the efficiency of the engine's management systems. ©CAPCOM 12
Improved Efficiency of Engine Management Systems Introduction and Visibility of RELauncher Ensure Engine Stability and Compatibility Reduction of Defect Investigation Costs Responding to Inquiries and Managing Issues This section describes the various efforts made to improve the efficiency of RE ENGINE operations. 13 ©CAPCOM 13
Improved Efficiency of Engine Management Systems Introduction and Visibility of RELauncher Ensure Engine Stability and Compatibility Reduction of Defect Investigation Costs Responding to Inquiries and Managing Issues First, I will introduce the introduction and visibility of RELauncher. 14 ©CAPCOM 14
Introduction and Visibility of RELauncher RELauncher • Tool designed to be the hub of RE ENGINE projects RE Launcher Engine/project management functions • Engine update, version selection, build, startup • Project acquisition, switching, asset acquisition and activation Consolidates information on engine and all projects • Display of engine updates, communications, distribution status, etc. • Various links to schedules, individual title websites and servers RELauncher is a tool that serves as a hub between RE ENGINE and projects using it. It can update engines, select versions, build and launch engines, retrieve projects, switch projects, retrieve assets, etc. It15 also aggregates information on all engines andprojects so that everyone can access the latest news. ©CAPCOM 15
RELauncher Home Screen Engine branch switching Project acquisition and creation Project list Engine announcements and release notes, etc. Links to NAS / Hansoft / manuals / tools, etc. The RELauncher home screen looks like this. The tabs on the left allow you to switch between multiple projects. The center tab displays the latest engine release notes, information, and the project schedule. 16 The top buttons allow you to retrieve projects or create new ones. The links in the upper right corner provide access to the engine source code, manuals, tools, etc. You can also switch between multiple engine branches. ©CAPCOM 16
RELauncher Project Screen Engine update and startup Engine revision switching Link to project NAS / Hansoft / WEB / tools, etc. Project updates and webpages The project screen of RELauncher looks like this. In the center, the latest status of the selected project is displayed. 17 The Launch button allows you to update and launch engines. It is also possible to arbitrarily switch the revision of the engine to be launched. The links in the upper right corner provide access to each project's NAS server, Hansoft, web pages, tools, etc. ©CAPCOM 17
Improved Efficiency of Engine Management Systems Introduction and Visibility of RELauncher Ensure Engine Stability and Compatibility Reduction of Defect Investigation Costs Responding to Inquiries and Managing Issues Next, we will discuss how to ensure engine stability and compatibility. 18 ©CAPCOM 18
Ensure Engine Stability and Compatibility Title to engine requests • You want to use the latest engine as soon as possible, but you also want it to be stable and glitch-free ...with every addition or update, there will always be glitches Maintaining compatibility • Past titles that have been released must be guaranteed to run on the latest engine ...it's impractical for each member to check the operation of all titles each time there is an update = Need a mechanism to ensure the quality of the engine The title demands that the engine be as up-to-date and stable as possible, but without glitches. In general, however, defects are bound to occur as features are added or updated. 19 Also, it is RE ENGINE‘s policy to maintain compatibility with all released titles. However, it is not practical to check the operation of all titles every time a feature is added or changed. In order to solve these problems, a mechanism to ensure the quality of the engine was necessary. ©CAPCOM 19
Introduction of REQA Daily package build • Daily creation of packages of past titles with the latest engine • Are there any problems with asset conversion or builds? Automatic package play • Automatic play of packages created daily • Are there any memory leaks or crashes? QA team checks package operation • QA personnel (2 ~ 3 people) play through the packages created daily • Are there any differences in appearance or operation compared to the released product? Canary test • Some members of a title will be working with the latest engine ahead of the others • Are there any problems with the operation of the editor or the project you are working on? We therefore introduced a series of test flows, called REQA, to maintain engine stability and compatibility. The first step is the Daily Package Build. Each day, a package is created for all released titles using the latest engine of the 20 day. This allows us to detect asset conversion and build issues. Next, we run an automatic play on all packages created. This allows us to detect crashes and memory leak issues. At the same time, the QA team will perform a human check of the packages. Every day 2~3 people check packages in rotation to make sure there are no differences in appearance or behavior compared to the released product. During the canary test, some of the title developers will be working with the latest engines ahead of the rest of the team and will be doing their normal work. This allows us to check the engine tools, editors, and behavior of the latest projects. ©CAPCOM 20
Engine Distribution Flow Manage source code in two Git branches, Master/Release • After successful testing, Git-reset Release branch with Master and distribute • Minor bugfixes are distributed with HotFixes in the Release branch 18:30 Master Branch 9:00 17:30 QA Check Daily Package Build Autoplay Release Branch Git Reset Canary Test REQA Commit Critical defects Don't release Hot Fix Distribution This is the process of how the engine is distributed through REQA. The engine source code is maintained in two Git branches, Master and Release. 21 The engine developers commit to the Master branch on a case-by-case basis. At the end of the day, a package is created from the latest Master branch. The next day, the created packages are automatically played and checked by the QA team. At the same time, some title developers will do their normal work on the latest engine as a canary test. If a major problem is found, the release will be held back. If no problems are found, the Release branch will be Git reset to the Master branch, and the latest engine will be distributed. Fixes for minor issues are distributed with HotFixes in the Release branch. ©CAPCOM 21
Operational Status of REQA Average test success rate of 30% • There is a 70% chance that a new defect is in the system Average release rate of 50% • We are able to distribute the latest engine every two days The image shows the operational status of REQA. The average test success rate so far is about 30%. In other words, we can say that new defects are being introduced every 22 day at a rate of 70%. The average release rate so far is 50%. This means that we are able to distribute a stable and up-to-date engine every two days. Minor bugs fixes are distributed with hotfixes, leading to an improved release rate. ©CAPCOM 22
Improved Efficiency of Engine Management Systems Introduction and Visibility of RELauncher Ensure Engine Stability and Compatibility Reduction of Defect Investigation Costs Responding to Inquiries and Managing Issues Next, we will show you how we reduce the time required to investigate defects. 23 ©CAPCOM 23
Reduction of Defect Investigation Costs Steps to start investigating defects • • • • Build engine for target branch Acquire and convert assets of the target project Prepare equipment for the target platform Play the game and recreate the situation where the glitch was reported = Reduction of defect investigation costs directly linked to productivity There are a number of steps before actually starting to investigate the defect. First, build the engine for the branch to be investigated. Then, we acquire and convert the assets of the project to be investigated. 24 Next, we prepare the equipment for the platform where the defect occurred, play the game to the reported conditions, and reproduce the defect. Thus, a lot of preparation and time is required to actually start a single defect investigation. Therefore, reducing defect investigation costs is directly related to productivity. ©CAPCOM 24
Introduction of High-end PCs High-end PCs for engine developers • CPU: AMD Ryzen Threadripper PRO 5975WX 32 cores, 64 threads • GPU: GeForce RTX 4090 • Memory: 256GB • Storage: 10TB SSD Significant reduction in engine build time • Reduced from 15 minutes with distributed builds to less than 5 minutes for local builds All projects' assets can be retained on SSD First, as a physical solution, we distributed high-end PCs to all of our engine developers. The specs included a ThreadRipperPro CPU with 32 cores and 64 threads, GeForce RTX 4090GPU, 256GB of memory, and 25 at least 10 TB of SSD storage. Using a high-end PC and building locally, we were able to reduce the engine build time from more than 15 minutes in a distributed build to less than 5 minutes. The 10TB of storage can also hold the assets for almost all projects. ©CAPCOM 25
Device Farm Implementation Secure development equipment when needed for defect investigation, etc. • Automatically registered in Target Manager Remote connection to the development machine for investigation • Remote connection from Studio to target Release development equipment when no longer needed = No need for everyone to keep equipment for all platforms Next, we introduced a device farm. This is a system that acquires devices when they are needed for defect investigations and releases them when they are26 no longer needed. We also register the equipment with the target manager for each platform, so it can be connected to the equipment remotely from the Studio and used for investigations. This eliminates the need for everyone to have equipment for all platforms. ©CAPCOM 26
Introduction of Cloud Saving for Development Automatic transfer of saved data to the development server • Easy sharing of saved data between different platforms and users Snapshot function • Permanent storage of any saved data • Share to all via ID = Facilitates reproduction of bug situations Next, we introduced cloud saving for development. Whenever we make a save in the game, the save data is automatically transferred to the development server. This allows 27 for easy sharing of saved data between different platforms and users. You can also use the snapshot feature to permanently save any saved data. By creating a snapshot of the saved data where the problem occurs and stating the Snapshot ID, another user can immediately reproduce the condition. This reduces the time and effort required to reproduce the problem. ©CAPCOM 27
Introduction of a Package Manager Manage all projects’ packages in one place • Capable of installing packages into target hardware from within the tool Can restore engine build environment from packages = Allows debugging by changing just the executable file Next, we introduced a package manager. It allows the management of all game packages from one place, and can install packages to target hardware from within 28 the tool. It also can restore the build environment the package was created from. This means that there is no need to acquire and convert the assets before debugging; you just swap out the executable. ©CAPCOM 28
Introducing the REProfiler Profile tool directly connectable to packages • Real-time display of all scene hierarchies and all instance fields • Properties can be changed in real time • Resource, memory, performance profiling capabilities, etc. = Defect investigation directly on the package Finally, we introduced REProfiler. The REProfiler is a profiling tool that connects directly to the package. It displays all the scene hierarchies in the game, all the fields of all instances, and allows you to change properties and 29 other parameters in real time. It also has various profiling features necessary for debugging, such as resource, memory, and performance profiling. By connecting the REProfiler, it is now possible to perform defect investigations directly on the package. Thus, the time required to investigate defects was reduced by installing high-end PCs and a variety of tools. ©CAPCOM 29
Improved Efficiency of Engine Management Systems Introduction and Visibility of RELauncher Ensure Engine Stability and Compatibility Reduction of Defect Investigation Costs Responding to Inquiries and Managing Issues The next section describes how the engine team responds to inquiries and manages issues. 30 ©CAPCOM 30
Responding to Inquiries and Managing Issues Utilizing Microsoft Teams • Bug reports, requests for additional functions, consultations, etc. • Real-time interaction between user and engine personnel Title QA • Managed in Hansoft and reprinted in Teams to communicate with the person in charge Teams challenges • Poor listing, threads get missed easily • Weak search function • Cannot be used for task management Basically, users can report bugs, request additional functions, and ask for advice through Teams, where users and engine engineers communicate directly with each other in real time. 31 QA for titles is managed on Hansoft for each issue, but the content is posted to Teams and the person in charge of the title is mentioned. Teams is very convenient for real-time communication. However, it also has some problems such as poor thread listing, threads getting easily missed, a weak search function, and it cannot be used for task management. ©CAPCOM 31
Introducing TeamsView Task management tool integrated into RELauncher • Caches Teams content on the server using Microsoft Graph API • Enables Teams threads to be listed, searched and filtered at high speed • Tasking and status management of Teams threads via hashtags • Synchronization with external tools such as Hansoft/Git = Casual task management Therefore, we have introduced a tool we call TeamsView. It is a Teams-based task management tool integrated into RELauncher. A crawler caches the contents of all Teams on an internal server. This allows for a list of Teams threads, fast searching, and 32 thread filtering. Teams threads can also be managed as tasks with a type and status by adding hashtags to Teams posts, such as #bug, #completed, etc. This allows for the management of unfinished tasks or tasks that have not yet been completed. This makes it easy to search for uncompleted tasks, tasks that are relevant to you, and to synchronize their status with external tools such as Hansoft or Git. In this way, TeamsView allows for casual task management while maintaining the real-time nature of Teams. ©CAPCOM 32
RE ENGINE's Future Finally, I would like to introduce the future of RE ENGINE. ©CAPCOM 33
RE ENGINE's Future RE ENGINE challenges • Expansion and diversification of project scale • Need to efficiently handle large volumes of large size assets • Need for a high degree of customization per title • Used by overseas subcontractors, multinationalization of team members • Importance of documentation, samples, and localization • Increase in the number of mid-career and new graduates with commercial game engine experience • Increased demand for customizability and usability = Need a new standard of engine Codename REX: RE neXt ENGINE In the course of operating RE ENGINE so far, several issues have come to light. First, the scale of projects has expanded and diversified. Compared to the first release of Resident Evil 7, the number of assets and the scale of the code for recent projects has 34 ballooned more than five times. This has resulted in slower iteration speeds than in the beginning and the need for more efficient mechanisms to handle larger and larger amounts of assets. The number of titles developed using RE ENGINE has also diversified, requiring a high degree of customization to suit each genre. RE ENGINE is also being used by overseas subcontractors, and the number of foreign nationals among project members is increasing. As a result, we are required to provide better documentation, samples, and tutorials than ever before, and to support multiple languages. In addition, the number of mid-career and new graduate hires who have experience with commercial game engines is increasing, and the same level of usability and customization features as commercial engines are now demanded. In order to solve these issues, a new level of engine is needed that goes beyond the boundaries of in-house engines. We have begun development of this next-generation engine, code-named REX. ©CAPCOM 34
REX Development Direction New technology (RE + X) is to be introduced to the existing RE ENGINE in phases • • • • • • • • REDox REUI RELog REFlows REAssetStream REProfiler RELauncher RERuntime RERuntime REDox RELauncher REUI REProfiler RELog REAssetStream REFlows Rather than building an entirely new engine from scratch, REX will gradually introduce the new RE+X technology into the existing RE ENGINE. 35 In this way, we will raise the current RE ENGINE to the next-generation level. The details of each technology will be introduced at another time. ©CAPCOM 35
RE ENGINE is the neXt generation Please look forward to the next generation of RE ENGINE. ©CAPCOM 36