Wednesday, June 24, 2020

Project Oripathy

Project Oriphaty






Project Oriphaty is a visual novel fan game of the popular mobile Game Arknights. It is developed by Andres Cheung(artwork designer, programmer) and Anthony Louie(story-manager, programmer) as part of the portfolio project in the Holberton School program.
Now you might be wondering what a visual novel is? Perhaps you have heard of such a term before? No? The let me introduce you to what is a visual novel first.


Visual Novel

A visual novel, often abbreviated as VN, is an interactive literary genre, which originated in Japan, featuring text-based story with narrative style of literature and interactivity aided by static or sprite-based visuals, most often using anime-style art or occasionally live-action stills. Our particular visual novel is quite simplistic in what a more elaborated one can be. The basics are a character in the middle of the screen, a dialog box at the bottom and a nice background image to fit for a setting.

Visual Novels are interactive games, in other words they let you the player impact some of the characters behavior. The actions you take in the game can significantly impact the outcome of the story being told. 

The purpose of this project is to entertain an audience. In this time of pandemic in particular, where nobody can go outside and with nothing to do, a visual novel game would be a good way to pass the time. I specifically worked on the artworks, a visual novel does nothing without some artworks to use for characters. Both team members are no artists but we managed to use avatar makers online in rinmarugames.com to secure some character sprites in order to create our story characters. The game story is complex and has 2 different endings depending on what path the player chooses to follow.


Project Origin

While we were deciding on what type of project we are gonna make, we joked around on making a dating simulator with a college setting. While we were at it we started looking into the new mobile game Arknights and how we enjoyed it, soon after we were planning on what type of story and what type of visual novel we were gonna make for our project proposal. That's when we decided that a fan game will be our project and started the planning phase. Also, both team members a anime fans or fans of Japanese Animation. We both played with visual novels before so we had a good idea on what features to implement in our game. By using other games features for reference we started making our own with the engine called Ren'py which is specifically made to create visual novels.


In order to make a visual novel fan game of another game, we had to do some research, we looked through the games pages in different regions, trying to take in all information we could so that we could write the story. The story so far is the most important part of the game. It is imperative that it catches the players attention first and foremost in the first few lines of dialog. The Japanese wiki about the game was most useful to get the lore going. We around two weeks writing and planning the story, this task took more time than to code the dialog and functions to the game which took 4-5 days.


Take away

This project was a good experience in how to adapt using an unknown engine and to plan ahead in order to meet the project's deadline. Also to understand the structure on how the engine works with what you give it. For example:


Ren'py uses a series of labels and flags in order to determine what object variable is gonna be displayed on the screen. The trigger events will determine the outcome of the game from the players perspective. They work as On/off flags that will show or hide an object in the screen. Keeping track of all the characters and dialogs is a difficult task but quite simple at that.

The engine provides us with script files where all the code is located, we can split the script files into multiple files and connect them using jump labels so that it is easier to debug. The engine will interpret all script files or files with the .rpy extension as a single script as long as the jump labels connect all the files.

Key Features


Player input: the player can enter arguments such as the name of the main character.


Option Menu: The player can choose certain dialog from a menu that will impact the story.

The save menu: The player can pause and save the game at any point in time and then resume.



Technical Challenge


The most difficult technical challenge is the fact that Ren'py while its written in python it was a completely new engine. By trial and error we managed to implement the features mentioned above.
We've also experimented in a way that we would use a jump label in a menu in order to jump back to the options of the menu and select other choices and hide the previously selected options. Another challenge was to put up a story for our game since there is no visual novel without story and artwork.

The following is a chart for the games story and over all structure on how the game is built.





Conclusion


This project and this curriculum has taught me to self learn. By self learning about Ren'py we managed to create our game. Such skill will be useful for further projects along the way. Working with the Ren'py has been an interesting experience between concepts I know of and the ones I had to learn and understand. I would have done this project a little differently had I had more time to work on it. But in the allowed time we managed to complete the gameplay aspect although we had to skip some features. Over all this project is one of the things I'm proud of making.