Design Exploration / Unity 2D Game Project
TAO YUZE 0366967
Bachelor of Design (Hons) in Creative Media
Design Exploration — Task 1 : Proposal
Proposal PDF:
Over the course of this semester’s game development project, I began by setting up the tile-based environment using Unity’s built-in Tilemap system. This initial phase went smoothly, thanks to the intuitive interface that allowed me to arrange terrain elements with ease, all without delving too deeply into code.
Next, I integrated Unity’s basic physics and rigidbody components. During this step, I relied heavily on Unity’s editor UI rather than extensive scripting. Through the Inspector panel and other built-in tools, I gained a clearer understanding of how Unity’s physics engine operates and how to fine-tune various parameters.
With the environment and physics groundwork in place, I moved on to implementing the player’s movement system. Drawing on numerous forum posts and community tutorials, I managed to achieve responsive character controls, ensuring that the protagonist could navigate the 2D pixel world fluidly. After this success, I introduced a boar as the first enemy character and built a simple AI system for it, allowing it to patrol and react to the player’s presence. This basic AI design gave the game an initial sense of interactivity and challenge.
When I shifted focus to the damage system—defining how the player and enemies influence each other’s health—it became noticeably more complex. I encountered some difficulties while trying to ensure the system worked correctly under different conditions. By examining existing projects and consulting AI-based code examples, I managed to piece together a flexible, functional damage system. Up until this point, despite some hurdles, development progressed relatively smoothly.
However, significant issues emerged once I attempted to implement a more sophisticated state machine for advanced enemy AI. The project’s codebase began to suffer from poor architecture (“spaghetti code”), making the boar’s AI increasingly bug-prone. After repeated attempts to fix these errors, I realized that I would have to abandon the planned high-level state machine and more complex enemy behaviors. This setback highlighted the importance of proper code structure and incremental design in game development.
With the state machine system shelved, I focused on completing other essential features. I successfully implemented a camera-follow mechanism to track the player and a health bar UI system to provide real-time feedback on the character’s condition. While not as ambitious as advanced AI, these additions considerably enhanced the player experience.
Reflecting on the entire process, it’s clear that I gained valuable insights despite not fully achieving my original goals. From assembling tile-based layouts to experimenting with physics and basic AI, and from overcoming difficulties with damage logic to accepting the limitations of my state machine approach, each step offered lessons that will inform my future game development efforts.
评论
发表评论