Skip to content

UoB-COMSM0166/2025-group-19

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Our Game - ZODIAC CATCH

Block Please click on the GIF above to watch a video demonstration of our game.

Links

PLAY HERE ▶️
Weekly Assignment 📚
You can also watch our video here 📹

Table of Contents


Team Members

teamImg

No. Name Email Role
01 Areta Lee wb24440@bristol.ac.uk Developer
02 Hsin-Hsien Ho (Erik) fp24955@bristol.ac.uk Developer
03 Mikas Vong tg24484@bristol.ac.uk Developer
04 Mingqiao Fan (Daisy) yi24612@bristol.ac.uk Developer
05 Shinchuan Chen (Lucas) wj24296@bristol.ac.uk Developer
06 Yu-Jin Chen (Elle) nj24628@bristol.ac.uk Developer

Introduction

A fresh take on the beloved brick breaker, our game was inspired by and pays homage to the genre’s rich history that spans titles such as the original Breakout by Atari and Block.

Figure 1
Block
Block

Like its predecessors, you use a paddle to control a limited amount of balls in order to destroy all playable blocks in a given level. Broken blocks have a chance of dropping power-ups that either aid or hinder your progress depending on the difficulty level. Bombs scattered throughout the levels also provide a means of removing rows more efficiently.

As a unique twist, all levels in Zodiac Catch contain an unexpected element - blackholes. Unlike normal bricks, these are not only unbreakable, but cause any balls that hit them to be lost forever. The locations of these special bricks remain unknown until you encounter one. Thus, it is up to the player to tactically avoid them during their gameplay run.

To further put a spin on the typically non-narrative genre, our game is themed after the Chinese zodiac. Each stage corresponds to an animal from the twelve-year cycle: rat, ox, tiger, rabbit, dragon, snake, horse, goat, monkey, rooster, dog and pig. A bonus "Your Zodiac" feature can also be found on the main page. There, you can enter your birth year to find the zodiac animal that represents you.

Figure 2
12 zodiac animals
Block

With fast-paced action and engaging mechanics, Zodiac Catch is a great way to put your gaming skills to the test and learn about Chinese mythology along the way.


Requirements

In the early stages of our project, each of the team members came up with an idea based on existing game archetypes. We took inspiration from personal interests whilst also considering how feasible it would be to develop our ideas from scratch. To facilitate creative brainstorming, we used Google Docs to record ideas and suggestions, enabling real-time sharing and collaboration.

Figure 3
Brainstormed Game Ideas on Google Docs
Block

Early Stage Design

During the first meeting, where we presented and voted on our respective proposals, we collectively decided to use the brick breaker game as the basis of our project. We then used a paper prototype to plan out the game flow, helping everyone gain a better understanding of the game, as well as establishing a clear blueprint for development.

Figure 4
Paper Prototype
Block

Following this, Erik began initial development based on the brick breaker genre, which became the first prototype of our game.

Figure 5
Game prototype
Block

When designing the levels, we referred to many templates, and some of the cartoonish levels sparked new ideas. After some discussion, we decided to incorporate animals into the visual design of the levels, which was subsequently reflected in our digital prototype. From there, further brainstorming and refinement led to us chosing the Chinese zodiac as the core theme for the game. Combined with the brick-breaking gameplay, this resulted in the creation of Zodiac Catch.

Figure 6
Digital prototype
Block

Identifying Stakeholders

Figure 7
Stakeholders
Block

The stakeholders of Zodiac Catch can be divided into four key groups. At the core level, the product itself — Zodiac Catch — delivers a fun and challenging brick-breaker experience with Chinese zodiac elements. The development team, consisting of developers, designers, and a Scrum Master, is responsible for building, testing, and refining the game to ensure its quality and playability. In the containing system, professors and experts provide guidance, technical insights, and evaluation to support the game’s development. Finally, in the wider environment, casual and competitive gamers engage with the game, offering valuable feedback that helps enhance its quality and overall experience.

Use-Cases Breakdown

Figure 8
Use case diagram
Block

Before creating the use case diagram, we thoroughly analyzed all stakeholders and user stories to capture key interactions within the game system. This helped us design a diagram that accurately reflects both player behaviour and system functionality.

As Zodiac Catch targets a broad range of players, converting user stories into use case diagrams was a crucial part of pre-planning. Not only did it improve our understanding of the relationships between players, the development team, and the game system, but allowed us to streamline the development process while also anticipating potential challenges.

User Stories & Epics

Epic Stakeholder User Story Requirement
Creating an intriguing and various game experience User As a user, I want certain bricks to drop power-ups, such as paddle expansion, to add variety to the game. Given certain bricks contain a specific power-up, when the players break one of these bricks, then the corresponding power-up, such as infinite balls or paddle expansion, will drop for the player to collect.
Try to learn from failure and frustrations Parents As parents, I want my children to train their focus and reaction speed. Given the increasing difficulty of levels, when the speed of the board increases, then the child needs to focus more and react fast to complete the level.
Training Response Time User As a user, I want to improve my response time so that in the future, when something happens, especially in dangerous situations, I can react quickly and increase my chances of survival. Given that I want to train my response time, when the ball falls, I must catch it within a limited time in order to pass the stage.
Educational Parents As parents and teachers, I want my kids or students to learn Chinese culture through this game. Given I want to teach kids about the Chinese zodiac, when kids enter the main page, they can know the the animals included in the Chinese zodiac.
User As a user, I want to know my Chinese zodiac, so that in the future, I can know more about myself and have more conversation starters. Given I want to know my Chinese zodiac, when I enter the selection page and enter my birthday, I can discover the Chinese zodiac that corresponds to my birthday.

Design

To create an engaging and personalised gaming experience, we carefully designed our game’s core mechanics, system architecture, and visual effects with an emphasis on usability.

Initial Prototyping and Planning

Prior to transforming our game idea into code, we first identified the game's essential components, including the ball, paddle, and blocks. We then outlined the functions of all components, unique features found in each difficulty level, as well as how these elements should interact with each other. Making use of paper prototypes and wireframe sketches, we further mapped out ways to implement paddle control, brick patterns, special effects, and stage progression.

Upon finalising the core game mechanics and desired user interactions, the team moved on to designing the system architecture. By treacking the development process in the form of weekly meetings, all team members had a shared understanding of system structure, which served as a solid reference for code implementation. To ensure a well-structured and maintainable codebase, we decide to follow the Model-View-Controller(MVC) design pattern, which separates game data, rendering, and user interaction logic into three dinstinct yet interconnected sections.

  • Controllers handle game logic and user input, acting as intermediaries between the model and view:
    • EffectController.js - Manages power-up effects.
    • KeyboardController.js - Handles keyboard inputs for game actions and controls.
    • PageController.js - Allows for navigation between different game views.
    • StageController.js - Manages game functions and gameplay logic.
    • StageNController.js - Implements logic for stage N, loads stage data from JSON, and handles transitions to the next stage.(N represents the stage number)
  • Views manage the user interface and rendering whilst also listening to model updates:
    • WelcomeView.js - Entry view with START/YOUR ZODIAC/SETTING/INFORMATION options.
    • GameView.js - Displays the main gameplay view.
    • GodView.js - Plays the story introduction animation.
    • ModeView.js - Appears before start of game, allows user to select game level: Easy or Hard.
    • NewStageMapView.js - Handles new stage creation view.
    • SidebarView.js - Displays control info, special tools, and scoring during gameplay.
    • StageMapView.js - Renders the stage map.
    • YourZodiacView.js - Allows player to find their zodiac animal.
    • PrivacyDialogView.js - Relays privacy policy to player regarding the use of birthdays in "Your Zodiac".
    • AnimalAnimation.js, CloudAnimation.js, RoadAnimation.js – Create animations for the welcome view.
    • SettingDialog.js - Provides settings and info dialogs for customising key bindings and background music.
  • Models define core game components and special effects:
    • StagePattern.js - Brick layout for each stage.
    • Ball.js - Ball properties and behaviour.
    • Brick.js - Brick properties and collision logic.
    • Paddle.js - Paddle movement and interactions.
    • Tool.js - Behaviour of power-ups.
    • Effect.js - Base class for managing effect duration and the application/removal of effects.
      • BallInfiniteEffect.js - Temporarily grants infinite number of balls.
      • BallSizeEffect.js - Temporarily alters size of ball.
      • BallSpeedEffect.js - Temporarily increases ball speed.
      • GravityEffect.js - Temporarily adds gravity.
      • PaddleDirectionEffect.js - Temporarily reverses paddle direction.
      • PaddleSizeEffect.js - Temporarily adjusts paddle size.
      • TimeEffect.js - Adds or subtracts time from game timer.
    • BlackHoleEffect.js - Bricks desginated with this effect will absorb nearby balls.
    • StageState.js - Tracks stage progression and status.

Core gameplay and Flow

Our system architecture begins with the welcome menu. Here players can either start a new game, find out their zodiac animal based on their birthday, or customise key bindings and background music. Gameplay starts after the player selects one of twelve zodiac animals and their desired difficulty level. In each stage, player controls a paddle to hit the ball, break bricks and score points. Hitting specific bricks will trigger random effects, with different effects being applied based on the selected difficulty mode. In accordance to the above, we created a sequence diagram that clearly specified how the game flow was to be ordered.

Figure 9
Sequence Diagram
Block

Building on top of the sequence diagram, we developed and iterated on a simple class diagram based on our intial discussions. This provided an overall view of our system, along with indicating the general structure of our game and structural relationships between game objects.

Figure 10
Initial Class Diagram
Block

Figure 11
Final Class Diagram
Block

Having adopted Agile methodology in managing our workflow, continuous changes were made throughout the development lifecycle in response to new ideas or user feedback. As a result, our eventual codebase differed greatly from what we initially envisioned. The difference between the two class diagrams above thus visualise how our design evolved in light of increasing game complexity and the addition of new features.

Implementation

Before starting development, we first had to learn how to use the p5.js programming language and get comfortable with object-oriented programming (OOP) to structure our game effectively. In the process of designing and planning the implementation, we anticipated several challenges that we thought would be major obstacles. However, once we started coding, these concerns turned out to be less problematic than expected. Instead, we encountered unexpected challenges in other areas. The following sections outline both the anticipated and unforeseen challenges we faced during development and how we addressed them.

Anticipated Challenges

Ahead of the development stage, we predicted several challenges:

  • Ball Physics: We were uncertain whether implementing realistic ball behaviour upon collision, including angle and speed adjustments, would be difficult or require advanced physics knowledge.
  • Difficulty Balancing: Various factors could influence the game's difficulty, such as ball speed, block patterns, black hole positioning, and the drop rate of power-ups. Managing these to create a balanced experience seemed challenging.

However, as we progressed, these concerns proved manageable. Since the ball moves without gravity, its position could be updated simply by adding or deducting to its x and y values. For difficulty balancing, we refined the parameters through iterative testing between our group members, and got positive feedback from the user evaluations.

Unexpected Challenges

While the above anticipated difficulties were easier to resolve, we faced unexpected challenges during development:

  • Ball Speed in Gravity Mode
    One of our power-ups introduces a gravity mode where all balls experience gravitational acceleration.
    Our initial approach applied a downward acceleration similar to real-world physics. Since each frame represents a fraction of a second, ball speed was measured in pixels per frame. Gravity, as a form of acceleration, changes the ball's velocity, which we simulated by adjusting its vertical speed each frame.
    However, implementing this became complex due to interactions with other power-ups (such as speed up) and toggle ball, that also influenced the ball speed. During testing, it was difficult to isolate and evaluate the effects of gravity, especially with multiple balls on the screen.

    Figure 12 Ball Class Constructor
    Block
    Figure 13 An Example of Effect Class
    Block

    Through the use of clear separation of ball state and effect classes, the game logic became more clearly defined. All ball properties, including speed and acceleration, are encapsulated within the Ball class. This design ensures that power-ups only modify specific properties rather than overriding entire behaviours. Each power-up acts as a separate effect class that simply toggles certain ball properties on or off, such as enabling gravity or increasing speed. By structuring power-ups as layered modifications rather than direct overrides, we ensured that gravity could be toggled smoothly without disrupting other speed adjustments. This also allowed us to debug individual power-ups in isolation, making it easier to fine-tune their interactions. Ultimately, this approach improved gameplay consistency and made any future enhancements easier to integrate.

  • Displaying Active Power-Ups and Timers
    Another challenge was accurately displaying the active power-ups and their countdowns on the sidebar. Ensuring the correct visuals and timings, particularly when multiple power-ups were active simultaneously, required additional debugging and adjustments. We needed a system that could handle overlapping power-ups, update timers dynamically, and provide a clear visual representation for the player.

    Figure 14 Display of Power-Ups in Sidebar
    Block

    Implementation Approach:
    1. Separate Instance for Each Type:
    - When a player collects a power-up, a new timer instance is created for that specific power-up type. This timer continuously tracks the remaining duration.
    - Each power-up type is managed independently to allow multiple active effects at once without interference.
    2. The sidebar dynamically updates to reflect active power-ups, ensuring players can easily see which effects are in play and for how long.
    3. Handling Duplicate Power-Ups:
    - If a player collects the same type of power-up while its effect is still active, the `EffectController` first resets the existing timer instead of creating a new one.
    - The remaining time for that power-up is updated on the sidebar to reflect the newly collected power-up’s extended duration.
    - This prevents power-ups from stacking uncontrollably while ensuring their effect lasts as expected.
    4. Once the timer for a power-up reaches zero, the effect will be removed from the sidebar, indicating the effect is no longer active

Evaluation

In order to identify areas for improvement and assess the degree to which our game has met player expectations, two major evaluations were held in the middle of the development process and near the end of the project respectively. Each of these can be segmented into two components: qualitative and quantitative.

Qualitative Evaluation

After finishing the basic game prototype, we carried out our first major evaluation. Making use of Heuristic evaluation, we asked each user to play our games for several minutes and provide feedback to understand how players felt about the game.

Player’s Feedback:

Since the beginning of the project, our discussions and revisions have consistently been guided by player feedback, especially in the later stages of development. By recognising what players cared about during gameplay through collecting questionnaire responses, we summarised the following strengths and areas for improvement.

What Players Enjoyed:

  • Art Design: Users appreciated the pixel art style of the game, particularly the zodiac animal designs and the consistency of our overall aesthetic, including the fonts and background.

  • Variety of tools: The variety and design of the tools added fun and excitement to each level.

What Players think it can be improved:

  • Lack of Instructions: Several users were unsure which keys or mouse actions were needed to progress through the game. They suggested adding clearer instructions or a tutorial.

  • Paddle Visibility: The lack of contrast between the paddle and the background made it difficult for players to locate the paddle, especially when first entering the game view. This caused confusion about what they could control.

  • Infinite Ball Indicator: Players struggled to recognise when the infinite ball feature was active. Since this mechanic is crucial for progressing through stages, users suggested making its activation more visually apparent.

  • Ball-Paddle Collision Mechanics: One user recommended that the ball should reflect at different angles depending on where it hits the paddle. This would provide players with greater control and add more variety to the gameplay.

  • Zodiac Year Explanation: Users wanted more context on the Chinese zodiac and how they relate to birthdays. Adding a brief explanation in the stage selection view would help players understand why they should enter their birthdate.

Figure 15
Original Zodiac Catch interface
Block

Heuristic Evaluation:

Click here to view Heruistic Evaluation results.

The result of Heuristic evaluation shows that the most severe problems are related to “Visibility of system status”,

  1. Players didn’t understand the relationship between the Chinese Zodiac and their birthday, which caused confusion about why they were asked to enter their birthdate. Based on this feedback, we plan to add an explanation page to clarify the reason behind this feature.
  2. The background was described as overly flashy and visually distracting, making it difficult for players to distinguish between the paddle they were controlling and the background.

Quantitative Evaluation

For quantitative evaluation, System Usability Scale was employed to analyse how player felt about the two different difficulty settings.

We evaluated Zodiac Catch across both game modes to assess the overall usability and player perception. The scores were averaged per participant across both modes, and the results were rounded to the nearest integer for clarity. Each participant rated the system based on 10 standardised SUS questions, leading to an aggregate score out of 100.

Click here to view raw System Usability Scale results.

Click here to view converted System Usability Scale results.

Figure 16
Graph depicting old SUS results
Block

The SUS evaluation shows that the game is generally perceived as usable and user-friendly, with particularly strong ratings for ease of use, learning speed, and system integration. The consistency of responses between Easy and Hard modes suggests that the core interface is well-designed and scales effectively with difficulty. Some improvements may be explored to further reduce perceived complexity or technical support needs in the harder levels, but overall usability remains strong.

Final Improvement

  • Lack of Instructions: In the final version, we added comprehensive instructions at the beginning of the game and in the sidebar to ensure that users can easily refer back to the rules to play. These additions help guide players through essential gameplay mechanics from the very start.

Figure 17
Added instructions
Block

  • Paddle Visibility: We redesigned the colour scheme of both the background and paddle. Players can now more easily identify the position of the paddle and the ball during gameplay. Moreover, we updated the power-up icons and added a highlighted indicator for the infinite ball effect. All active effects are now clearly visible in the sidebar, improving overall visual clarity.

  • Zodiac Year Explanation: To help users understand the purpose of entering their birthdate, we included a dedicated animation at the start of the game, which explains the connection between the Chinese zodiac and the player’s birthday in an intuitive and engaging way.

Figure 18
Explanation of zodiac story
Block


Process

Collaboration

Adopting an Agile development approach, our team incorporated Scrum and Extreme Programming (XP) principles to ensure efficiency, adaptability, and high-quality code.

Agile Development

Scrum & Iterative Development

In the first eight weeks, Erik hosted our Scrum meetings, ensuring a structured workflow. Later, he proposed rotating the hosting role among all team members to foster leadership and shared responsibility. This allowed everyone to gain experience in facilitating discussions, reviewing code, and adjusting to different coding styles, ultimately strengthening both individual and team skills.

We conducted Scrum meetings twice a week:

  • Tuesdays: A comprehensive Kanban board review, where we assigned new tasks, reviewed outstanding ones, and planned weekly improvements.
  • Thursdays: A stand-up meeting focused on addressing development challenges and ensuring smooth progress.

With the new rotation system, the weekly host also served as the designated code reviewer for that sprint. While all members could review code, the final approval and merge required confirmation from the assigned reviewer. Previously, only a few members handled code reviews, leading to an uneven workload. By distributing these responsibilities, we improved overall teamwork and development productivity.

Task Management & Workflow Refinement

Though we initially lacked a clear workflow, we developed an effective process through continuous adjustments. The Scrum rotation and structured code reviews improved collaboration and ensured long-term sustainability. This structured approach kept each sprint well-paced and balanced.

Version Control & Code Reviews

We adopted a structured Git branching model:

  • Main branches: main (stable version) and develop (staging environment).
  • Feature branches: Named using feature/new_feature, ensuring clarity and consistency.

Code reviews were mandatory before merging into the develop branch, promoting quality control and knowledge sharing. This process ensured collective ownership, where all team members were responsible for the entire codebase.

Extreme Programming (XP) Practices

Simple Design

We adopted the Model-View-Controller (MVC) architecture to ensure a clear separation of concerns, making the system more modular and easier to maintain. Each component was organised based on its functionality, allowing for better code reusability while also reducing complexity. This structured approach not only streamlined development but also facilitated collaboration among team members.

Reference: MVC Architecture

Sustainable Pace

To prevent last-minute rushes, we assigned a one-week deadline to each task, ensuring a steady workflow and avoiding heroic efforts before submission. This practice aligned with Extreme Programming’s (XP) Sustainable Pace principle, allowing us to maintain a manageable workload.

Coding Standards

We adhered to a consistent development standard, encompassing maintainability, readability, the MVC architecture, and object-oriented principles. After completing the implementation of a feature, we submitted a pull request for peer review by other team members.

Collective Ownership

All team members had ownership of the entire codebase, enabling anyone to modify any part when needed. This reduced bottlenecks and improved code quality. When challenges arose, such as issues with the black hole effect, ball physics, or sidebar power-ups, we collaborated to troubleshoot and refine solutions, enhancing the overall implementation.

Whole Team Approach

From planning to implementation, all team members actively participated in all stages of the project, fostering cross-functional collaboration and improving overall development efficiency. During Reading Week, we focused on making significant progress, reducing stress from other deadlines.

As shown in the chart below, our team delivered 96 commits in the week of February 23—our most productive period. This effort demonstrated our commitment to working efficiently as a team, ensuring high development quality while minimising last-minute pressure.

Figure 19
Productive Period
Block

Project Management Tools

Throughout the development process, we utilised ZenHub Kanban and Whimsical Wireframe to enhance project management and collaboration efficiency. These tools helped us track development progress, plan system architecture, and ensure seamless communication among team members.

Zenhub Kanban

ZenHub’s seamless GitHub integration allowed us to manage tasks without switching platforms. It also supported Epics for organizing related issues, making it ideal for tracking larger tasks. The real-time sync between ZenHub and GitHub ensured data consistency, enhancing team efficiency.

Figure 20
Zenhub integrated into Github
Block

Whimsical Wireframe

We use Whimsical to store and organise our brainstorming drafts, level wireframes, mind maps, and other project ideas. It allows for real-time collaboration, allowing our team to work together seamlessly, co-edit documents, and share feedback instantly. Additionally, the sticky note feature enables quick discussions and idea exchanges, fostering smooth communication within the team. Its intuitive interface and versatile tools make it an essential part of our workflow for planning and coordination.

Figure 21
Whimsical
Block


Sustainability, ethics and accessibility

Environmental Impact

To minimise the environmental impact of our game, we have implemented sustainable software practices based on the Green Software Foundation Implementation Patterns.

Avoid an Excessive DOM Size

  • Our game dynamically renders elements using JavaScript instead of relying on a large, pre-defined DOM structure.
  • This approach optimises memory usage, reduces rendering time, and lowers CPU workload, all of which improve energy efficiency.

Avoid Tracking Unnecessary Data

  • We ensure that no player data is stored or tracked.
  • By eliminating the need for data collection and storage, we reduce resource consumption related to data processing and database management, decreasing overall energy demand.

Remove Unused CSS Definitions

  • We maintain a lightweight and optimised stylesheet, including only essential CSS.
  • This reduces unnecessary computations in the rendering process, leading to better efficiency and lower power consumption.

Applying the Sustainability Awareness Framework: Environmental & Economic Aspects

Category Subcategory Considerations
Individual Mental Health a. Helps players develop patience and emotional resilience.
b. Provides a sense of achievement when clearing stages.
Physical Health a. Enhances reflexes through interactive gameplay.
Lifelong Learning a. Educates players about the Chinese zodiac and its cultural significance.
Privacy a. As a single-player game, there are no privacy concerns.
b. No user data is stored (players may enter their birthdate voluntarily, but it is not saved).
c. Game progress resets upon reloading (no IP tracking or data retention).
Agency a. Players can freely choose levels, exit at any time, and control their gameplay experience.
Safety a. Features family-friendly visuals and gameplay, ensuring a safe environment for all players.
Environmental Material & Resources a. Development relies on human resources (developers) and hardware (laptops).
Waste & Pollution a. Hardware production consumes natural resources (e.g., metals, minerals) and may contribute to environmental pollution.
b. Using cloud-based collaboration tools generates a digital carbon footprint.
Biodiversity a. Raises awareness about Earth’s diverse wildlife and encourages players to appreciate and protect nature.
b. Lower demand for resources can indirectly reduce pollution and deforestation, benefiting ecosystems and biodiversity.
Energy a. Optimising energy efficiency in development can help reduce power consumption and carbon emissions.
Logistics a. Reduced need for excessive hardware manufacturing also reduces the need for physical transportation of components.
Economic Innovation a. Future expansions may include VR/AR versions.
b. Combines the classic brick-breaker game with zodiac themes, creating a unique concept.
Customer Relationship Management a. Plans to launch live events to engage players.
b. Potential merchandise (e.g., plush toys, picture books) featuring zodiac-themed characters.
Supply Chain a. May utilise cloud services (e.g., AWS) if a multiplayer version is developed.
Governance a. Game development follows a structured process, including weekly team meetings for innovation and progress tracking.
Value a. Free-to-play model, with potential for in-app purchases in the future.
b. Serves as a medium to promote Chinese culture through interactive gameplay.

Ethics

1. Potential Influence on Player behaviour

The game offers an interactive way to learn physics through ball reflection mechanics. It also promotes cultural awareness by letting players discover their Chinese zodiac via birthday input. With a simple, engaging, and non-violent design, it encourages positive interactions suitable for all ages.

2. Data Privacy Considerations

There are no privacy risks—birthday input is optional, used only to display the zodiac, and is neither stored nor tracked. No personal data is collected, as the game has no backend database, ensuring full user privacy.

3. Impact on Player Emotions

The game ensures a relaxing and enjoyable experience. Easy and hard modes cater to different skill levels, and players can retry levels without restrictions. Free level selection and hidden surprises promote a sense of joy, reduce frustration, and support player motivation and positive emotional engagement.

Accessibility

1. Customisable Controls

Keyboard-based with clear instructions and adjustable key bindings; future updates may add mouse/controller support.

2. Low-End Hardware Friendly

Browser-based and lightweight, runs smoothly without installation on most devices.

3. Multilingual Support

Currently in English; more languages planned for future versions.

4. Responsive Design

Adapts to all screen sizes for consistent performance across devices.

5. Audio Assistance

Includes adjustable background music; upcoming features include sound effects for better feedback and accessibility.


Conclusion

Working on Zodiac Catch strengthened our capabilities as software engineers, and allowed us to put previously-taught theories and principles into practice. Fusing proven software development methodologies with tight-knit collaboration, we transformed ideas and concepts into a streamlined game experience featuring custom graphics, complex physics, and an innovative black-hole twist which separates it from its predecessors.

In anticipation of an increasingly complex codebase, object-oriented design became crucial towards maintaining a clean, concise structure. This equally meant that our system architecture retained modular flexibility, especially important given the large number of stages and interfaces in our game. With tasks distributed evenly amongst all group members, features could be developed in tandem for both timely progress and code clarity. Considerations in regards to sustainability and green software also encouraged us to be mindful of the potential impacts that our game could bring about. In turn, it dictated how we adjusted our coding standards and technical requirements for a more sustainable approach.

On top of catering to the needs of prospective users, evaluative feedback was a key instrument in obtaining up-to-date opinions concerning game flow and playability. Although we tested features thoroughly before deployment, input from real players further highlighted what elements worked well, along with pointing out the most important issues that needed to be improved upon. As a result, we were able to implement adjustments regarding level design and power-ups, ultimately attaining a suitable level of difficulty without sacrificing enjoyment.

Apart from obstacles pertaining to game mechanics and difficulty which were anticipated in advance, we ran into unexpected challenges at different stages of development, for instance ball speed effects or displaying advanced information in the sidebar. However, this was mitigated by the adoption of Agile techniques. Conducting twice-a-week meetings alongside setting goals and deadlines ensured consistent communication that promoted teamwork as well as reducing the impact of problem areas on the overall workflow. Additionally, balancing Scrum-related workload via a rotation system allowed each of us to fully experience the entire development cycle whilst leveraging our own strengths to lead individual sprints.

Though we have achieved most of what we envisioned for Zodiac Catch within this limited time frame, there is still much potential for growth and development looking forward. Given a longer development period or extended manpower, visual effects could be improved on and extra accessability options such as gesture-based control or colour blind mode could be added. Furthermore, we would like to implement an online leaderboard system. By ranking players based on cumulative scoring, it provides a concrete indicator of their performance while introducing a competitive aspect into our game.

This project has provided us with an invaluable, hands-on opportunity to contribute towards a group software project. In the process, we have been able to improve our coding abilities, learn how to better collaborate with fellow engineers, and understand the skills necessary to craft effective solutions from scratch. All of these takeaways will certainly inform and be applied to larger scale projects in our future careers.


Contribution Statement

Contributor Contribution
Areta Lee 1
Hsin-Hsien Ho (Erik) 1
Mikas Vong 1
Mingqiao Fan (Daisy) 1
Shinchuan Chen (Lucas) 1
Yu-Jin Chen (Elle) 1

About

2025 COMSM0166 group 19

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 7