This is my representative project for our game studio called Area 42 Game Studio. It is a language deciphering game that player will land in an enchanted forest full of creatures who speak an unknown language. Interact with the inhabitants of the forest and learn their language to complete your research.
You can find our home page on itch.io here, and also our Linktree page here where includes our Steam page and official Instagram account. We got the opportunity to attend the Edmonton Screen project to help us commercialize our game and also showcase our game at Game Con Canada and Game Discovery Exhibition (GDX).
We are currently cooperating with Baby Ghost to further develop our studio and games. Currently, we have released the demo version on Steam, so welcome to download it and give it a try
I'm the programmer, audio designer, and co-level designer in the studio. On the audio side, I'm in charge of designing and producing all audio effects and background music for the game, as well as implementing them into the game. On the programming side, I'm mainly in charge of mechanics, UI/UX and system construction. I implemented the fundamental conversation system using Ink Editor, which allows our writer to edit text outside the Unity engine. The system also supports passing and receiving variables and functions between Ink and Unity so that game state changes can happen inside Ink. I also implemented the whole UI interface, including dialogue box, pause menu, audio manager, and dictionary page. Recently, I added a new function that allows players to review all conversation history in case they lost any important messages. I also spend lots of time on improving the graphic effects to make it look closer to Octopath Traveler vibe.
This is inside the Ink Editor showing some basic idea of how Ink works in our game. The global.ink is the Ink file which contains some global variables and functions we might need to use.
The EXTERNAL keyword basically defines a function here, and it is linked to the script called InkExternalFunction.cs I wrote where I can define the function using C# in VS Code.
We use variables in the ink as Boolean for most of the time. For example, here the variable dictionary_opened indicates whether the dictionary is open or not. It can be called in the script and change the value. In this example, it's used in the forceOpenDictionary () to change the game state. If the dictionary is opened, dictionary_opened will turn to "t" and allows the player to continue the conversation; otherwise not.
The tag is also a very interesting and helpful function. The tag can be called in the script to implement the corresponding function. For example, the speaker tag indicated the displayed name in the dialog box, and the audio tag will play the corresponding voice.
Dialouge: The player can interact with NPCs and get hints of the mystery symbols from the dialogue and also receive tasks from them to help them get more hints.
Dictionary: The player needs to input the translation of symbols into the dictionary. If it is correct, the block of the symbols will turn to green. Successfully translating enough amount of words will unlock the gates which are set at two sides of the scene, and they will take the player to the next scene.
The core mechanic of the game is to interact with objects and npc to get hints of the symbols and predict their meaning, then authenticate them in the dictionary. I also set up a history log where you can review all dialogue you have been through in case of forgetting dialouge.
Graphic Change