The goal of this project was to port a pre-existing visual novel from a proprietary game engine to Unity. I was the sole developer for this project, and it has taken approximately one year to finish. It is expected to be released later this year.
One of the major challenges of this project was my inability to examine the original game engine. The only resources I had were the original visual novel; art and audio assets; and the scripts containing instructions for showing dialogue, displaying images, playing animations, and so on. In order to emulate the game within Unity, I focused on several key scenes that utilized the game’s features and analyzed the look, feel, and timing of each one. Through iteration, I was able to rebuild the game from scratch.
A secondary challenge came from Sol Press' request that the code be reusable for future projects as well. This meant that any code specific to this project’s functionality had to be minimized. To accomplish this, I created a number of systems to abstract large parts of the framework. One of these systems was a implementation of the Strategy pattern. Rather than reference this game’s script instructions in code, the program is instead provided a dictionary of each instruction and a respective class to handle it. Instruction handlers are treated like plug-ins, making it simple to add new features later.