Re Engine
Re Engine
Re Engine
In the early 2000s, Capcom used the ACR and Oni3 Engine as its main engines,
modifying them for each project as needed. Starting in 2005, they began using the MT
Framework, developed in-house. This became Capcom's standard engine, used in
different forms like Lite and Mobile for 3DS and smartphone titles. In 2012,
development of the Panta Rhei began, intended to replace the MT Framework.
However, issues with Panta Rhei hindered the production of Resident Evil 7, leading to
its abandonment. Parts of it were redesigned to bring life to the RE Engine, that was
born in 2014. During the same period, the World Engine, a highly customizable
rendering engine derived from the MT Framework, was created for Monster Hunter.
Since 2014, the following games have been developed on the RE Engine:
- Resident Evil 7;
- Resident Evil Village;
- Resident Evil 2 Remake;
- Resident Evil 3 Remake;
The RE Engine has a modular structure that allows for combining modules as needed,
with the kernel at its center. All modules are loaded into the kernel. A new project can
utilize a new renderer, Havok for physics, Wwise for sound, and so on, without any
hindrance.
Regarding modules, there are dependency requirements. For example, using an effects
module requires a rendering module. Another scenario is when a module can work
with or without specific dependencies. Lastly, there's optional dependency, where a
module benefits from using another but doesn't strictly require it.
(Source: CAPCOM RE:2019)
The engine has fixed modules in its main loop. First, each independent module
initializes, followed by their dependent modules. Before entering the loop, "Start" is
called, then "Update" enters the loop. "Start" is called again in case of a restart. Finally,
dependent modules are released first, followed by independent ones.
Through modules, the engine allows both new and old projects to run on the latest
engine version by creating new modules or adding existing ones to others. Project
teams are responsible for removing obsolete modules and adding necessary ones at
the end of the project to maintain performance. These measures enable maintaining a
project's performance from start to finish, even with engine changes. RE7 is an
example, maintaining its 2017 performance even on the 2019 engine version. This
sustained performance proves the benefits of a modular engine and facilitates bug
discovery.
The engine's runtime and tools run separately and communicate via TCP/IP. This
means that even if you switch the runtime to PS4 or Xbox One, you can still make edits
on the hardware. It also means that information obtained by the tools during runtime
won't be lost in a crash.
Another innovation for Capcom in this engine is the possibility of cloud-based work,
where developers can work on the engine via video transmission even without a
physical machine. This applies not only to physical machines but also to cloud
platforms like Stadia and Ubitus (a Japanese game streaming service).
Within the RE Engine, it's possible to rearrange data loading to optimize loading times
on an HDD.
The programming logic in the RE Engine is done in C#. No specialized title uses C++.
The code runs on a proprietary virtual machine that uses a proprietary algorithm
optimized for games.
On average, each title has 300 to 400 thousand lines of code, and regardless, the
engine can build games in under 10 seconds on a regular CPU. Building in the same
timeframe wouldn't be possible if the code were written in C++, taking approximately
100 times longer.
Choosing a fully script-based development also allowed developers to work with code
like any other asset and control it as part of revisions. In case of a crash, it's possible to
select what causes or doesn't cause crashes and separate them when running the
game, preventing delays in testing other parts. This also facilitates quality assurance
testing organization, as program memory isn't lost upon crashing.
Conclusion