Reflection

The project I completed this semester is a simulated RPG combat game where players can experience most of the basic features of an action game. Initially, my project proposal aimed to create a comprehensive world covering all aspects of an action game, such as maps, NPCs, various enemies, weapons, animations, and effects. However, it was not feasible to accomplish everything in one semester, especially considering I was working on it alone. Therefore, I was initially lost about where to start.

Then I consulted my technical advisor, Professor Hosni Auji, to discuss my ideas and possible solutions. He advised me to narrow down my proposal, identify the core of my project, prioritize its implementation, and then add additional features later. He also encouraged me to use external resources, as most methods were implemented through my own code, and borrowing models for demonstration purposes was acceptable. This feedback resonated with the advice I received from the panelists during my first project progress report, suggesting that if suitable resources were available and aligned with my requirements, there was no need to create everything from scratch.

After this discussion, I revised my proposal and focused on developing a combat system as the core feature of my game. The combat system is a fundamental aspect that can be applied to various action games, making them engaging and immersive for players. By designing a set of intricate actions, poses, and unique enemies with specific combat styles and personalities, players can be more engaged and immersed in the game.

I started the project by creating a Unity project and designing a player-controlled character. Initially, I used a third-person model from the Unity Asset Store, only utilizing the character model without pre-existing functionalities. I then implemented keyboard controls for animations such as walking and running based on my past experience. After planning the game’s style and searching for desired models, I imported these models into the project. However, one of the challenges I faced was the incompatible file format of the models, which prevented their use in Unity. After researching the issue, I learned how to convert files to the required format but encountered material loss during the process, requiring additional time to rectify.

Following the completion of the player character, I proceeded to create monsters with AI control, necessitating automated triggering and execution of specific actions. As I had not studied AI algorithms in Unity, I searched for tutorials on the subject and discovered Unity’s AI engine, particularly the NavMeshAgent, which facilitates navigation and movement for characters in a scene. I implemented a patrol function for monsters to move between two initial points and detect the player within a specified range, although the initial implementation faced unexpected challenges. By adjusting the navigation grid’s height for baking settings, I resolved the issue and ensured the monsters moved logically on the ground.

Through this learning process, I gained a deeper understanding of the Unity engine and acquired knowledge about creating a basic game. Each problem encountered allowed me to trace back from initial confusion to potential root causes, enhancing my problem-solving skills and solidifying my knowledge. Despite time constraints limiting the completion of the combat system and transforming the project into a demo rather than a full game, I would love to continue working on it to add more interactive features, expand the terrain, introduce additional characters, enemies, weapons, animations, story elements, and more to align it closer to a true RPG game.

In conclusion, the process of creating Kin Fantasia was invaluable, as it taught me essential but crucial knowledge on developing a 3D game. The skills acquired are transferable to 2D game development, including scene construction, animation creation and adjustment, UI design, special effects, sound effects, character behaviors, and more. The challenges faced during the project have transformed into valuable experiences in game development, which will enhance the gameplay and quality of my future projects.