One of the first features I get to work on in the early days of my internship was the item tooltip. The team wanted it to be like a thought bubble pointing towards any item you look at.
The logic was straightforward, it will show the name of the item you're looking at.
But, implementing the visual was much tougher as there were a bunch of obstacles I haven't encountered before.
One specific problem I had to solve was during the making of the doodly text effect.
To start out, making them wobble was manageable - I loop through each character from the text mesh (TextMeshPro) and update their vertices to offset randomly.
Then, the big issue arrives. Since the game supports localization, TextMeshPro will need to include fallback fonts to account for different sets of glyphs. And when it decides to fallback, it creates submeshes which caused my doodle effect to have a mesh blob in the middle.
As it turns out, submeshes do not free up extra allocations and my script had affected the extra meshes.
It was an interesting experience to see how big systems like TextMeshPro work and thanks to my mentor's guidance, it was easier to pinpoint the problems.
Tools to help with testing
Setting custom configurations for dungeon generation
In the game, goblins are supposed to travel down to procedurally-generated dungeons to find loot.
And during development, it is important to make sure that the dungeon generation is balanced but there was no tool that allowed for easy testing.
I was then tasked to make a tool that could help set up custom dungeon configurations for generation.
As shown in the video above, I am using the tool to set different configurations before traveling to a dungeon.
It was a good learning experience as I get to dive deep into the code where traveling and dungeon generation take place.
Additionally, I also get to create a debug window where it shows information that the designer wants (e.g. what loots are generated, how many enemies are alive in the dungeon, etc.).
Unreleased features
The systems I mentioned above like magic system, discovery system are not released yet and are still under development so I could not share much as of yet.
However, I will add that I have gained more experience in network programming while working on them as they involve syncing states between players.
More topics will be added once the features are released!
Internship
I am grateful that I get the opportunity to join Friendly Foe as an intern.
Everyone has a lot of experience and I learned a lot of new insights from them (from programming to design decisions).
Moreover, I get to read through the codebase and see how other people create systems. Invaluable experience!