Difference between revisions of "Room Girl/Modding"
SpockBauru (talk | contribs) (Created Modding) |
m (Changed "previews" to "previous", because that's the intended meaning) |
||
Line 6: | Line 6: | ||
Please understand that modifying your game is risky by nature and requires some safeguards such as '''backing up the game data'''. Also always read carefully what each thing does before using it. | Please understand that modifying your game is risky by nature and requires some safeguards such as '''backing up the game data'''. Also always read carefully what each thing does before using it. | ||
− | =Difficulties on Room Girl Modding comparing to | + | =Difficulties on Room Girl Modding comparing to previous games= |
Let's start from the beginning: Games usually are made in programs called '''Engines''', like Unreal and Unity. Illusion games uses the '''Unity Engine'''. | Let's start from the beginning: Games usually are made in programs called '''Engines''', like Unreal and Unity. Illusion games uses the '''Unity Engine'''. | ||
Line 15: | Line 15: | ||
Since Illusion usually use the same engine with similar settings and re-uses their code across games, many plugins can easily be ported between these games. That's why late games such as [[Honey Select 2]] have a huge amount of mods: Because modders had time to refine their mods across several years and games, for both the CPU and the GPU programming. | Since Illusion usually use the same engine with similar settings and re-uses their code across games, many plugins can easily be ported between these games. That's why late games such as [[Honey Select 2]] have a huge amount of mods: Because modders had time to refine their mods across several years and games, for both the CPU and the GPU programming. | ||
− | But differently from | + | But differently from previous games Room Girl changed two things: How the engine deals with CPU, and from the GPU side they not only changed the engine settings but remade all the code that program the GPU (also called shaders). |
* For the CPU side, take a look on "The problem with IL2CPP" section bellow. | * For the CPU side, take a look on "The problem with IL2CPP" section bellow. | ||
Line 24: | Line 24: | ||
Unity uses a language called C# (reads C sharp) to make programs for the games. These programs must be converted to machine language in order to run in the computer. This conversion is made by the Scripting Backend. In recent year Unity has two types of scripting backends: Mono and IL2CPP. | Unity uses a language called C# (reads C sharp) to make programs for the games. These programs must be converted to machine language in order to run in the computer. This conversion is made by the Scripting Backend. In recent year Unity has two types of scripting backends: Mono and IL2CPP. | ||
− | * '''Mono''' is the old one. To simplify things, let’s say that it uses a virtual machine between the C# code and the hardware. With this approach, you can write the same code, and Unity can change just the virtual machine to run in many platforms, like videogames, smarthphones, PC, etc. This is a mature technology and is used by BepInEx to change the game code. This is the one that | + | * '''Mono''' is the old one. To simplify things, let’s say that it uses a virtual machine between the C# code and the hardware. With this approach, you can write the same code, and Unity can change just the virtual machine to run in many platforms, like videogames, smarthphones, PC, etc. This is a mature technology and is used by BepInEx to change the game code. This is the one that previous Illusion games used. |
* '''IL2CPP''' is the new one, it means “Intermediate Language to C++”. IL2CPP takes the C# code and convert directly to the C++ native language skipping the “virtual machine” part, which theoretically make the game runs faster. This is the one that Room Girl uses. | * '''IL2CPP''' is the new one, it means “Intermediate Language to C++”. IL2CPP takes the C# code and convert directly to the C++ native language skipping the “virtual machine” part, which theoretically make the game runs faster. This is the one that Room Girl uses. | ||
Line 35: | Line 35: | ||
Unity deals with the graphics part using the so-called Render Pipelines. Currently there 3 of them: the Standard Render Pipeline, the Universal Render Pipeline (URP) and the High Definition Render Pipeline (HDRP). | Unity deals with the graphics part using the so-called Render Pipelines. Currently there 3 of them: the Standard Render Pipeline, the Universal Render Pipeline (URP) and the High Definition Render Pipeline (HDRP). | ||
− | * The '''Standard''' Render Pipeline is the oldest and the one used in | + | * The '''Standard''' Render Pipeline is the oldest and the one used in previous Illusion games. Is also set to be depreciated in the future, so someday game makers will have to choose between the other two. |
* The Universal Render Pipeline ('''URP''') will be the replacement for the Standard in the future. It’s made to be basic, lightweight and highly portable across a huge amount of platforms, from old mobile to next gen consoles. | * The Universal Render Pipeline ('''URP''') will be the replacement for the Standard in the future. It’s made to be basic, lightweight and highly portable across a huge amount of platforms, from old mobile to next gen consoles. | ||
Line 44: | Line 44: | ||
== TL:DR == | == TL:DR == | ||
− | In a short: Room Girl bring so many changes that plugins will take a long, looooong time to catch up comparing to the | + | In a short: Room Girl bring so many changes that plugins will take a long, looooong time to catch up comparing to the previous game. It’s likely that will never reach the same level of [[Koikatu]] or [[Honey Select 2]] |
Revision as of 18:18, 6 October 2022
Contents
Introduction to MODs
MODs it’s a short for "modifications", with them you can introduce new features to the game such as new functions, parameters, clothes and hairstyle.
There are several types of mods. One of them is called Plugins which can alter the game code. They are usually files with .dll extension and must be applied with extra care.
Please understand that modifying your game is risky by nature and requires some safeguards such as backing up the game data. Also always read carefully what each thing does before using it.
Difficulties on Room Girl Modding comparing to previous games
Let's start from the beginning: Games usually are made in programs called Engines, like Unreal and Unity. Illusion games uses the Unity Engine.
When making a game, game makers need to program two things in the Engine: The CPU (AKA the processor) and the GPU (AKA the video card).
In order to make Plugins, modders use "mod frameworks", such as BepInEx and MelonLoader. In the last years, Illusion modders uses BepInEx, which is specialized in Unity Engine. Plugins must follow the structure used by the mod framework, the game maker and the engine for both CPU and GPU in order to work.
Since Illusion usually use the same engine with similar settings and re-uses their code across games, many plugins can easily be ported between these games. That's why late games such as Honey Select 2 have a huge amount of mods: Because modders had time to refine their mods across several years and games, for both the CPU and the GPU programming.
But differently from previous games Room Girl changed two things: How the engine deals with CPU, and from the GPU side they not only changed the engine settings but remade all the code that program the GPU (also called shaders).
- For the CPU side, take a look on "The problem with IL2CPP" section bellow.
- For the GPU side, take a look on the HDRP section bellow.
The problem with IL2CPP
Unity uses a language called C# (reads C sharp) to make programs for the games. These programs must be converted to machine language in order to run in the computer. This conversion is made by the Scripting Backend. In recent year Unity has two types of scripting backends: Mono and IL2CPP.
- Mono is the old one. To simplify things, let’s say that it uses a virtual machine between the C# code and the hardware. With this approach, you can write the same code, and Unity can change just the virtual machine to run in many platforms, like videogames, smarthphones, PC, etc. This is a mature technology and is used by BepInEx to change the game code. This is the one that previous Illusion games used.
- IL2CPP is the new one, it means “Intermediate Language to C++”. IL2CPP takes the C# code and convert directly to the C++ native language skipping the “virtual machine” part, which theoretically make the game runs faster. This is the one that Room Girl uses.
The problem with IL2CPP technology is that BepInEx support is new and unstable. Not only this but the approach for modifying the code must be different from the old thing, MAKING ALL PREVIOUS PLUGINS INCOMPATIBLE WITH ROOM GIRL.
Because of that, all the numerous and refined structure made by modders trough the years need to be ported, one by one, set by step, from the very beginning. This takes time, and by the time that everything catches up, probably the next game will already be released.
HDRP
Unity deals with the graphics part using the so-called Render Pipelines. Currently there 3 of them: the Standard Render Pipeline, the Universal Render Pipeline (URP) and the High Definition Render Pipeline (HDRP).
- The Standard Render Pipeline is the oldest and the one used in previous Illusion games. Is also set to be depreciated in the future, so someday game makers will have to choose between the other two.
- The Universal Render Pipeline (URP) will be the replacement for the Standard in the future. It’s made to be basic, lightweight and highly portable across a huge amount of platforms, from old mobile to next gen consoles.
- The High Definition Render Pipeline (HDRP) is the most advanced of all. It’s designed to make the better graphics possible and run on high performant platforms like high-end PCs and next gen consoles. Take a look on this tech demo to see what is possible with HDRP: https://www.youtube.com/watch?v=eXYUNrgqWUU
Both URP and HDRP are completely incompatible with the old Standard pipeline. For Room Girl Illusion choose the HDRP and had to remake all their graphics programming, like shaders. For modders, the change to HDRP means that the graphics plugins (such as Material Editor, DHH and Graphics mod) will not work at all and can’t even be ported: They need to be remade from scratch.
TL:DR
In a short: Room Girl bring so many changes that plugins will take a long, looooong time to catch up comparing to the previous game. It’s likely that will never reach the same level of Koikatu or Honey Select 2