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
- C++: Chosen for its performance, control over system resources, and wide use in game development.
- Library
- 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.
- OpenGL Mathematics (GLM): Utilized for mathematics operations, providing a comprehensive set of tools for vector and matrix manipulations crucial for game physics and transformations.
- spdlog: Employed for logging, offering fast and user-friendly logging capabilities, aiding in debugging and monitoring game performance.
- yaml-cpp: Used for configuration management, allowing the game to load settings and configurations from YAML files, enhancing flexibility and ease of updates.
Features
- Player Controls: Smooth and responsive controls for the spaceship, allowing for movement and shooting.
- Asteroids: Randomly generated asteroids with varying sizes and speeds, providing a dynamic challenge.
- Collision Detection: Accurate collision detection between the spaceship, bullets, and asteroids to ensure a realistic gameplay experience, facilitated by GLM for precise calculations.
- Scoring System: A point-based scoring system that rewards players for destroying asteroids.
- Graphics and Sound: Engaging visuals and sound effects to enhance the gaming experience, all managed using SFML.
- Logging: Efficient logging using spdlog to track game events and assist in debugging.
- Configuration Management: Game settings and configurations are managed using yaml-cpp, enabling easy adjustments and customizations through YAML files.