Golfin

Golfin is a mobile anime golf game that brings together precision, strategy, and engaging gameplay. During my time as a Unity Engineer Intern in Kyoto, Japan, I contributed to the development of core systems, such as story mode architecture and wind physics, all while collaborating with a global team!

Role
Unity Engineer Intern

Year
2024

Company
Wonderwall Inc.

Bringing Gameplay to Life through Design and Collaboration. . .

During my Unity Engineering internship at WonderWall Inc. in Kyoto, Japan was a life-changing experience, both personally and professionally. Collaborating closely with a diverse, international team of developers, I honed my ability to adapt and thrive in a fast-paced, global environment. I developed core gameplay systems, integrated intuitive UI, and focused on creating engaging player experiences. Utilizing tools like Jira for task management and Plastic SCM for version control, I ensured smooth workflows and clear communication across the team.

Story Mode Architecture (Unity C#)

This system allows designers to create flexible story missions in a golf game, where conditions like score types or landing on specific surfaces must be met. I designed this using ScriptableObjects and event-driven architecture for modularity and scalability.

Story Mode Scripts:

1. StoryData.cs

Defines the structure for each story mission and its win conditions.

2. StoryCollection.cs

Holds a list of story data and allows fast lookup by ID.

3. StoryFactory.cs

ScriptableObject for centralized access to the StoryCollection.

4. StoryController.cs

Manages story flow, injects dependencies, and resets conditions.

5. Story1.cs

Contains the mission logic for a single story instance.

Wind System Integration (Unity C#)

To enhance gameplay strategy, I developed a dynamic wind system that interacts seamlessly with the game’s physics. This system provides players with real-time visual feedback, influencing ball trajectory and challenging player precision.

In addition to system development, I created bilingual documentation (Japanese and English) for onboarding and technical processes, showcasing my adaptability and clear communication in a multilingual setting.

This experience strengthened my ability to merge design and technical skills, work collaboratively across disciplines, and quickly learn and apply new tools and processes to deliver engaging, polished gameplay.

Wind Scripts

  1. WindData.cs

    Purpose: Defines the direction and speed of the wind as a ScriptableObject, making it editable in the Unity Editor.

  2. WindSystem.cs

    Purpose: Applies wind force to the ball based on its height during flight. Integrates with the game registry and listens to gameplay signals.

  3. GameplayHUDView.cs

    Purpose: Displays the wind direction and speed in the UI using an image and a text field.