Frvncso
Francois
0%
QT Game
ISEN CIR 2 - 2023
Role
Developer
Duration and Result
1 Month (~150 Hours) | 19,5/20
Team
Individual Project
Tags
C++
Qt
Game Development
OOP
Game Mechanics
Overview
Individual project lasting 1 month in C++. Development of a 2D platform game using the Qt library. Integration of window management, gravity, collision detection, and optimized level creation. Addition of combat mechanics, enemies, platforms, animations, and visual effects to enhance the gaming experience.
Goal
Designing a 2D platform game.
The main objective of the QT Game project was to develop a 2D platform game by applying concepts of object-oriented programming (OOP) while integrating gravity and collision mechanisms. The project also aimed to enhance the gaming experience by incorporating combat mechanics and dynamic interactions.
Another significant goal was to optimize the game’s performance to ensure a smooth and immersive experience, making sure that every interaction and animation functioned correctly.
1.0 Gameplay
Context
Framework and duration.
This project was carried out as part of my second year at ISEN during a C++ module. The goal of the module was to apply advanced C++ development concepts using Qt to manage the graphical interface. It was an individual project lasting one month, designed to deepen my development skills in this language and apply them to a concrete project.
Process and Methodology
Adopted approach and development steps.
The development of this QT game followed a structured process divided into several phases. I began with an initial design phase, followed by the development of core features, then the addition of interactive elements, and finally, performance optimization.
The first phase involved defining the game objectives, designing the overall project architecture, and planning the various features to be implemented, the game environment, and its objectives.
I then implemented essential features such as window management, gravity, and collision detection. These features laid the solid foundation for the game.
After creating the basic infrastructure, I added interactive elements such as enemies, moving platforms, and combat systems, making the game more engaging.
Finally, I dedicated a significant portion of the project to adding new levels, transitions, and more subtle animations.
Challenges Faced and Solutions
Technical difficulties and adjustments made.
Several technical challenges arose during the development of this game, particularly in managing collisions.
Collision detection between the player, enemies, and platforms proved complex. To address this, I assigned a function to each block to simplify calculations and avoid managing all sides.
Another issue was the level creation. Initially hardcoded into the program, I later implemented a feature that allowed me to generate a level from a CSV and numeric codes.
Furthermore, I added a dark level (the last one) characterized by only illuminating around the player. This allowed me to diversify the user experience but also posed performance challenges that were addressed as best as possible.
4.0 Gameplay
Results
Performance and final feedback.
The optimizations made allowed the game to run smoothly while maintaining high-quality visuals. The combat mechanics, dynamic enemies, and visual effects contribute to making the game captivating and engaging. This project was rated 19.5/20.
Lessons Learned and Skills Gained
Lessons learned and skills developed.
This project allowed me to develop several skills, particularly in using Qt and applying advanced object-oriented programming concepts.
The development of the QT game enabled me to better understand Qt's capabilities, particularly for managing graphical interfaces and integrating animations into a game.
I also honed my skills in performance optimization by finding ways to improve level generation.