Garden of Aesther

Garden of AestherGarden of Aesther

Systems Programmer (C#)


Engine: Unity 5
Platform: iPhone, Android
Role: Systems Programmer (C#)
Total Scripters/Designers: 4
Project Length: 7 week school project (Summer 2015)


Description:
Garden of Aesther is an adventure game where the player brings life to new worlds and helps different characters along the way.

CODING

Systems:
I coded systems in C#, including the dialogue system, quest log, quest system and related items. I utilized parent classes and child classes for specific functionality within the quest system. I also scripted many of the sounds, particularly pertaining to the dialogue and UI elements.

I coded the text box pop ups and ensured specific text displayed at specific times. I also made sure the icons in the quest log showed up when a given quest started and that the icon changed to a star when the quest was done. Some of the quests required multiple items, and certain quests started once others were in progress or complete.

Ghost Quest Example

Ghost Quest Log


How I improved the code:
Originally, each quest was written in a separate class. Since the game had 9 unique quests (with the possibility of more added in the future), it was critical to build a robust system in which new quests could easily be added. Due to the design of these quests, it was necessary to keep track of which characters the player had already met, as well as items picked up. I built a system where each NPC inherited characteristics needed for each quest, such as:

– text to be sent to the dialogue system for the specific quest
– whether the condition to complete the quest was met
– when to enable the dialogue box popup
– audio, animations, etc.

For ease of use, I also added bools that could be toggled in the inspector, such as enabling waypoints and having the NPC look at the player.

Quest items were originally written in their own classes. I improved upon it by consolidating these classes into one quest item parent class.


An example of my code can be viewed below. (Click for full code.) The dialogue system receives information (such as quest text) from quest classes:
Dialogue

Below demonstrates how the parent class I coded works with each NPC. New NPCs can be placed in the world and immediately interact with the player due to the behaviors they inherit:
Aesther - NPC Inspector


Leave a Reply

Your email address will not be published. Required fields are marked *