Asteroid


Overview:

The Asteroid 2D game is a solo project that is inspired by the classic game Asteroids. The game was built using C# and Unity, and does not use any MonoBehaviours. It features a top-down/manager style architecture, and circle collision detection. To add a sense of challenge and progression, the game implements a difficulty scaling system based on a timer. As time passes, the game enters different rounds, increasing the intensity and complexity of the gameplay. The objective is to survive as long as possible, as the game continues as long as the player has lives remaining. The player has the freedom to play the game as many times as they desire, allowing for repeated attempts to achieve a higher score or overcome previous challenges.

  • Solo project
  • Top-Down/Manager
  • Circle collision detection
  • State Machine
  • Wrap-around

Completion: November 2022

Duration: 1 week

Platform: Unity 2D


Contribution:

Core architecture

This project was developed exclusively in Unity, avoiding the use of MonoBehaviours. To maintain comprehensive control over all game components, a Top-Down/Manager style architecture was employed, utilizing managers and singletons. This architectural choice ensured complete management and customization of the game's elements, empowering efficient control and enhancing the overall development process.

Game mechanics

During the develepment phase of the game, I implemented numerous game mechanics to enhance the gameplay experience. These mechanics include a score system, a life system, a level system with increasing difficulty, and a wrap-around system. The game logic is managed by a state machine, which controls the different phases of a game, ensuring smooth transitions and organized gameplay. Players have the freedom to play as many consecutive games as they desire, adding to the replay value and enjoyment of the overall experience.

collsision detection

In this game, players take control of a ship and face the challenge of defending themselves against incoming asteroids. Equipped with the ability to shoot bullets, players can destroy the asteroids, causing them to break apart into smaller fragments. The game utilizes circle collision detection with radius calculations to detect collisions between the ship, bullets, and asteroids. Once a collision is detected, the appropriate action is triggered based on the collided item. This collision system adds a crucial gameplay element, allowing players to strategically navigate and engage with the dynamic asteroid environment.


closing thougths:

In conclusion, the Asteroid 2D game project successfully recreates the classic Asteroids game with added features and enhancements. The implementation of a top-down/manager architecture without the use of MonoBehaviours in Unity demonstrates a customized and efficient approach to game development. The game incorporates various mechanics, including scoring, life management, difficulty scaling, and wrap-around functionality, providing an engaging and challenging gameplay experience. The collision detection system, based on circle collisions, adds depth and strategy to the player's interactions with asteroids and bullets. Overall, this project showcases effective game development techniques and offers an enjoyable and replayable gaming experience.