Team Size: 26
Development Time: 5 Months
Engine: Unreal 5
Role: UI/Settings Programmer
Team Size: 26
Development Time: 5 Months
Engine: Unreal 5
Role: UI/Settings Programmer
Description
Ling and the Corrupted Hollow is a 3D puzzle platformer with Asian inspired locales and atmosphere. The game has you follow Ling as she explores various locations from her past using the power of spirits to help her through.
Role and Responsibilities
I was primarily responsible for implementing all of the user interface elements in the game as well as systems like save files and settings menus.
Created all menu flows in the game using Unreal Engine's built-in widget system and the Common UI plugin.
Created backend code for applying various audio and graphics settings as well as supporting dynamic text for localization.
Worked with artists to bring their UI designs to life while maintaining all proper functionality required by producers and designers.
Worked with other programmers to hook UI widgets into core game mechanics for conveyance. Also ensured save files were structured to store all necessary player data for the save system.
Art and Widgets
Learned Unreal's widget blueprint systems and many tools with the Common UI plugin
Worked with artists to integrate visuals and art into the menus, doing my best to match their vision without compromising functionality
Wrote Unreal C++ libraries for blueprint use in several menu functions that were needed and specially made for our game
Settings Insights
Learned Unreal's Game Settings systems and how to manage them through UI elements. These included settings like resolution, fullscreen mode, and FPS.
Created custom settings pipelines for saving, localization and audio settings which used Unreal Engine's native functions but expanded on them for uses tailored to our team's needs.
Localization Example: Menu textures had text baked into the textures itself meaning the text localization in Unreal's string tables wouldn't apply to them. Instead I created functions that would report the game's current localization and culture to a global game state and had the widgets adapt their texture depending on that culture value.
Game Saves: Unreal's Save Game system was the base for our permanent data system including save files and setting preferences. All game elements and UI elements that use saved data are powered by this backend system.
Post-Mortem
Pains of motivation and development:
This game had a turbulent devlopment cycle to say the very least. The context behind many of the cut features and half baked gameplay comes from the fact that our team's vision could not come together early enough to solidify the game's identity.
Learning to work despite a bad atmosphere and poor team morale was one of my biggest takeaways from the experience. Myself and a handful of team members across all disciplines persevered when many others had given up on the project at Alpha and soft quit, which left team morale low and our manpower halved. I am proud that I, and those who got the game over the finish line with me, did not give up and it gave me real experience of giving my best to a project that I was not personally passionate about.
Even though the game itself is not something I am proud of, the works I was able to produce despite poor conditions are invaluable to me giving me confidence that I can keep a good attitude and be self driven when the going gets tough.
Even better If's:
I think there is a lot of personal feelings of regret in my thoughts on this game. In the end our programming lead had shouldered much of the responsibility of interpersonal issues on the programming team and the shortcomings of the game as a whole. Realistically there is only so much one person can do lead or not and I wish I could have taken more accountability in the moment and helped him work wise and emotionally as it seems to have taken its toll on him.
I believe much of the failure in this game's development stems from a weak unification of the team in the ideation phase. While I was doing everything I could by the end of the project, there were opportunities along the way for me to at least be more present for ideation and design decisions when I was asked for my opinion and I believe I was too passive.