Skip to content

Stefan-101/SpeedBall

Repository files navigation

SpeedBall


User Stories


Image 1 Image 2

Trello link here 👉 Trello Board

Backlog


GRAPHICS

Design for cars, ball, goal posts, boosters, buttons, numbers, arrows, background, menu, titles.

MENU IMPLEMENTATION

The menu should highlight options such as:
- PLAY button – Choose to play 1V1 or MULTIPLAYER  
- CUSTOMIZE CAR button  
- SETTINGS button  
- USER STATISTICS button  
- EXIT GAME button

SETTINGS MENU IMPLEMENTATION

Users can change the resolution, the volume, and toggle fullscreen mode.

USER STATISTICS IMPLEMENTATION

Users can check their stats: total played games, total play time, wins and losses.

CAR CUSTOMIZATION MENU IMPLEMENTATION

A user can choose a car from a predefined list (different colors and styles).

PAUSE MENU IMPLEMENTATION

The pause menu should include:
- HOME button  
- RESTART button  
- RESUME button

CAR MOVEMENT

- Player 1: Move with **A & D**, jump with **N**, boost with **B**  
- Player 2: Move with **← & →**, jump with **NumPad 1**, boost with **NumPad 2**

BALL MOVEMENT

The ball moves upon collision with a car.

PHYSICS

Defining game objects, environment limits, and object properties.

1V1 GAME MODE

Ensures two users can play locally on the same device.

MULTIPLAYER GAME MODE – SERVER IMPLEMENTATION

- Server creation  
- Create Room functionality  
- Join Room functionality

ANIMATIONS

- Car wheels move based on input  
- Wheels are on fire when boosting (only if car is moving)

AUDIO

- Background music (menu & in-game)  
- Applause on goal  
- Button click sounds  
- Sounds for winning/losing  
- Sound on ball collision

BOOSTERS MANAGEMENT

Boosters appear during the game, are collected mid-air, and activated via the boost button.

ROUND DURATION IMPLEMENTATION

The game ends when the round timer hits 0.  
The player with the highest score wins.

Source control using Git


Automated testing


Tests for car movement can be seen here 👉 View Tests. Tests were made for checking the:

  • car boost
  • jump functionality of the car
  • ground movement of the car

Reporting bugs and solving them with pull request


Image 1 Image 2 Image 3

Also, find issues here 👉 View Issues

Code - the use of comments & ensuring code standards


We follow clean and consistent code standards throughout the project, as reflected in the scripts from this repository.

You can see some great scripts here and here.

Design patterns


Prompt engineering - Documenting the use of AI tools during software development


Used AI tools:

  • ChatGPT
  • Claude.ai
  • Deepseek

What did we use these tools for?

1. Learning

  • using ChatGPT, we learned about MonoBehaviour class in Unity: This information helped us to understand better the logic of every element in our code.

    MonoBehaviour

  • using Claude.ai, we learned about linking animations to objects in Unity: This information helped us ensure a great conectivity between the animations and the objects we wanted to apply the animation on, ensuring it's duration lasts as long as an event happens(example: pressing a certain key from keyboard).

    Animation Linking

  • using Deepseek, we learned about certain essential methods in Unity: This information helped us to understand better the functionality of Unity. Also, it learned us how to use memory in an efficient way.

    Unity Methods

2. Implementing several parts of code

Some examples:

  • trimming an audio in code with ChatGPT

Audio Trimming

  • creating a dropdown for choosing the resolution in the settings menu with ChatGPT

    Resolution Dropdown

  • implementing double jump for cars in the game with ChatGPT

    Double Jump

We also provided the AI tools with screenshots from Unity and detailed context in our prompts, helping them better understand the structure and purpose of our project. This allowed for more accurate and relevant responses tailored to our specific development needs.

What did we learn from using AI in our project?

  • The best results come from asking specific, clear, and context-rich questions.
  • Complex problems require step-by-step instructions to get accurate and useful answers.
  • Providing detailed information helps the AI fully understand the request and generate better solutions.
  • Clear prompts save time.

How prompt engineering helped our workflow

Using prompt engineering significantly improved our development process by allowing us to:

  • Quickly generate accurate and relevant code snippets without spending hours searching or debugging.
  • Clarify complex programming tasks by breaking them down into simple, step-by-step instructions.
  • Learn new concepts and best practices through targeted AI explanations and examples.

Demo


The offline demo can be seen on this link 👉 View Demo

Our team


The development of Speedball was made possible by a dedicated team made of:

  • Andrei Ștefan - Our motion engineer: created the systems that give life and speed to the cars in Speedball.
  • Bejan Ștefan - Our steady hand behind the servers and menus, dedicated to a flawless experience in game and careful testing.
  • Lumînăraru Ionuț-Andrei - Our gameplay director: ensures the rhythm by managing the score, time and the ending of the rounds.
  • Onisie Andreea - The artist and visual architect of the game: everything you see, hear and feel in Speedball wears her signature.
  • Stan David-Florin - The engine behind the multiplayer: ensured stable connections, solid servers, a menu and scenes that work flawlessly.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5

Languages