Asteroid

Game link: Github

This report presents an overview of a self-made asteroid game developed using C++ and the Simple and Fast Multimedia Library (SFML). The game is a personal project designed to demonstrate proficiency in game development and the application of SFML for multimedia and graphics rendering.

Development Tools

  • Programming Language
    1. C++: Chosen for its performance, control over system resources, and wide use in game development.
  • Library
    1. SFML (Simple and Fast Multimedia Library): Selected for its ease of use and capabilities in handling graphics, sound, and input, making it ideal for 2D game development.
    2. OpenGL Mathematics (GLM): Utilized for mathematics operations, providing a comprehensive set of tools for vector and matrix manipulations crucial for game physics and transformations.
    3. spdlog: Employed for logging, offering fast and user-friendly logging capabilities, aiding in debugging and monitoring game performance.
    4. yaml-cpp: Used for configuration management, allowing the game to load settings and configurations from YAML files, enhancing flexibility and ease of updates.

Features

  1. Player Controls: Smooth and responsive controls for the spaceship, allowing for movement and shooting.
  2. Asteroids: Randomly generated asteroids with varying sizes and speeds, providing a dynamic challenge.
  3. Collision Detection: Accurate collision detection between the spaceship, bullets, and asteroids to ensure a realistic gameplay experience, facilitated by GLM for precise calculations.
  4. Scoring System: A point-based scoring system that rewards players for destroying asteroids.
  5. Graphics and Sound: Engaging visuals and sound effects to enhance the gaming experience, all managed using SFML.
  6. Logging: Efficient logging using spdlog to track game events and assist in debugging.
  7. Configuration Management: Game settings and configurations are managed using yaml-cpp, enabling easy adjustments and customizations through YAML files.