Design & Development of Target Based Game (SLINGSHOT)
CGM PROJECT REPORT
Submitted for Computer Graphics and Modelling lab Project Evaluation
Bachelor of Technology
In
Computer Science & Engineering
Submitted By
Mohit Sikarwar (BTCS25O1084)
Moin Khan (BTCS25O1085)
Faculty Mentor
Prof. Jigyasa Mishra
Assistant Professor
Department of Computer Science & Engineering
Jan-June 2026
ABSTRACT
The project titled “Design and Development of Target-Based Game” focuses on creating an
interactive and engaging gaming application that enhances user experience through simple
yet effective gameplay mechanics. The primary objective of this project is to design a game
where players aim and hit specific targets within a defined environment, improving their
reflexes and coordination. The game is developed using fundamental programming concepts,
incorporating graphics, user input handling, moving targets, and a timer.
The development process includes planning the game structure, designing the user interface,
and implementing core functionalities such as scoring, levels, and difficulty progression.
Special emphasis has been placed on ensuring smooth performance and intuitive controls for
better user engagement. The project also explores basic game design principles, including
collision detection, timing mechanisms, and visual responsiveness.
Additionally, the game is designed to be scalable, allowing future enhancements such as
advanced levels, sound effects, and multiplayer features. This project not only demonstrates
programming and problem-solving skills but also provides insight into the fundamentals of
game development. Overall, it serves as a practical implementation of theoretical concepts in
a creative and interactive manner.
ACKNOWEDGEMENT
We express our sincere indebtedness towards our guide Prof. Jigyasa Mishra, Computer
Science & Engineering, Madhav Institute of Technology & Science, Gwalior for his invaluable
guidance, suggestions and supervision throughout the work. Without his kind patronage and
guidances the project would not have taken shape. We would also like to express our
gratitude and sincere regards for his kind approval of the project, time to time counselling and
advices.
We would also like to thank to our HOD Dr. Manish Dixit, Department of Computer Science
& Engineering, Madhav Institute of Technology and Science, Gwalior for his expert advice
and counselling from time to time.
We owe sincere thanks to all the faculty members in the department of Computer Science
and Engineering assistant professor Nishant Jain and assistant professor Dr. Saurabh
Agrawal sir for their kind guidance and encouragement from time to time.
Date: 20 April 2026 Mohit Sikarwar, Moin Khan
(BTCS25O1084), (BTCS25O1085)
TABLE OF CONTENT
Declaration by the Candidate………………………………………………..i
Abstract……………………………………………………………………......ii
Acknowledgement…………………………………………………………...iii
Content………………………………………………………………………..iv
Nomenclature………………………………………………………………....v
Introduction…………………………………………………………………...vi
Objective……………………………………………………………………...vii
Workflow……………………………………………………………………..viii
Methodology………………………………………………………………….ix
Progress……………………………………………………………………….x
Result and Analysis………………………………………………………..…xi
Conclusion…………………………………………………..………………..xii
Bibliography…………………………………….……………..……………….…….…………………..xiii
NOMENCLATURE
x, y – Coordinates of objects on the screen (bird, target, obstacles)
birdX, birdY – Initial position of the projectile (bird)
tX, tY – Position of the target
obs1Xi – Coordinates defining the first obstacle
obs2Xi – Coordinates defining the second obstacle
angle (θ) – Angle of projection of the bird (in degrees)
velocity (v) – Initial velocity/speed of the projectile
t (time) – Time variable used in trajectory calculation
g – Acceleration due to gravity (taken as 9.8 m/s²)
level – Represents the current level of the game
chances – Number of attempts available to the player
levelCleared – Flag variable indicating whether the level is completed
targetDir – Direction of target movement (up/down)
targetSpeed – Speed of moving target
dir1, dir2 – Direction of obstacle movement
speed1, speed2 – Speed of obstacles
gameStartTime – Stores the starting time of the game
GetTickCount() – Function used to calculate elapsed time
kbhit() – Function to detect keyboard input
getch() – Function to read keyboard input
delay() – Function used to control animation speed
setcolor() – Functions used to define drawing colour and style
fillellipse() / bar() – Functions used to draw shapes (bird, target, obstacles)
cos(), sin() – Trigonometric functions used for trajectory calculation
INTRODUCTION
The goal of the project "Design and Development of a Target-Based Game" is to leverage
fundamental computer graphics techniques to create an interactive graphical application.
Using mathematical concepts like projectile motion, players must shoot a projectile (a bird)
towards a target while dodging obstacles. It is written in C/C++ and uses graphics. The library
offers basic functions for managing screen output and drawing shapes. The project
demonstrates how basic programming and graphics techniques can be used to create an
engaging user interface. Additionally, it emphasises real-time interaction via dynamic object
movement and keyboard input. To keep players engaged and progressively increase
difficulty, the game is designed with several levels. All things considered, it functions as a
useful application of fundamental computer graphics and logical problem-solving.
OBJECTIVE
The primary objective of this project is to design and develop a target-based game using basic
computer graphics techniques without relying on advanced frameworks such as OpenGL. The project
aims to demonstrate how simple graphical functions can be used to create an interactive and visually
appealing application. It focuses on building a system that is both functional and easy to understand,
making it suitable for beginners in graphics programming.
Another important objective is to simulate projectile motion using mathematical formulas. The
trajectory of the bird is calculated using trigonometric functions and physics-based equations, allowing
for realistic movement. This helps in bridging the gap between theoretical concepts and practical
implementation. The project also aims to provide hands-on experience in handling user inputs, where
players can control angle and velocity dynamically.
The implementation of collision detection is another key objective of this project. The system must
accurately determine whether the projectile hits the target or collides with obstacles. This requires
careful logical design and efficient coding practices. Additionally, the project focuses on incorporating
multiple levels to gradually increase difficulty and maintain user engagement throughout the
gameplay.
Furthermore, the project aims to enhance programming skills such as modular coding, debugging,
and optimization. It is designed in a way that allows future improvements like better graphics,
additional features, and more complex gameplay. Overall, the objective is to create a simple yet
effective game while strengthening core concepts of computer graphics and programming.
CODE AND WORK FLOW
CODE
WORKFLOW
The process of the target-based game starts with the graphics mode being initialized, which
prepares the graphics environment of the program. After being started, the game shows the
level to be played and the instructions to follow the gamer. This action makes the user familiar
with how to communicate with the system, before initiating the gameplay.
The player is then provided with the control to change the angle and the velocity of the
projectile using the inputs of the keyboard. These are the inputs that directly affect the
direction of the bird. Once the player sets the desired parameters, he or she throws the
projectile, which travels in a path that is determined by using projectile motion equations.
At the movement stage, the system constantly changes the display and verifies the impact
with the targets and obstacles. When the bird strikes the target, then the level has been
completed and a player proceeds to the next level. When the bird hits an object or fails to hit
the target, the gamer is deprived of an opportunity and may replay.
The difficulty is increased as the game goes on with the introduction of moving targets and
obstacles. There is a timer that runs in the background to monitor the overall time that the
player has taken. Once the game is complete, the system will indicate the final result and will
also give the option to restart, proceed or exit. This organized workflow provides the seamless
playing process and a compelling user experience.
METHODOLOGY
The format of working in this project is clear and organised to ensure that the development
and building process is smooth. We begin by mapping out key elements of the game such as
the bird, the targets,the obstacles, and the layout of the screen. All these elements are drawn
with basic shapes of circles and rectangles and we use graphics.h library to create these
elements.
Then we put the bird in motion using math formulas that explain the motions of objects in the
[Link] functions such as sine and cosine are used to determine where the bird should be
at each and every moment and this makes its path appear natural and curved. The player is
able to adjust the angle and speed of the bird using the keyboard and then release them.
To maintain a smooth running game, we use a loop that continuously updates the screen and
moves everything in real time. With each cycle we surveil where the barriers and the goals
are and we observe whether the bird is striking something. Ifit hits a target,the level is
done;ifnot,the player gets fewer chances. The game is in levels, and each level is more
difficult, because the obstacles and targets move faster or vary.
We test everything to ensure that it is working as it should be and we correct what we come
[Link] code is further divided into smaller sub-units known as functions making it easier
to comprehend and modify. There are also additional features such as sound effects and a
timer to ensure that the game is more entertaining and interesting. This orderly method of
working also allows the game to run smoothly, perform properly and be easy to modify in the
future.
RESULT AND ANALYSIS
Result:
Analysis:
The analysis of the project indicates that the target-based game effectively implements core
programming concepts such as user input handling, collision detection, and real-time response. The
gameplay design ensures smooth interaction and maintains user engagement through a structured
scoring and level system. Performance evaluation shows that the application runs efficiently with
minimal delays. Additionally, the modular design approach allows easy scalability and future
enhancements. Overall, the project successfully achieves its intended objectives while providing a
strong foundation for further development.
CONCLUSION
In conclusion, the project “Design and Development of a Target-Based Game” has been successfully
completed, fulfilling its primary objectives of creating an interactive and engaging gaming application.
The project demonstrates the effective application of programming concepts such as user input
handling, collision detection, and real-time feedback mechanisms. Through careful design and
implementation, the game provides a smooth and responsive user experience.
The development process also enhanced problem-solving skills and provided practical exposure to
game design principles. The scoring system and level progression contribute to maintaining user
interest and improving gameplay dynamics. Additionally, the project highlights the importance of
efficient coding practices and structured design for better performance.
Future improvements can include adding advanced graphics, sound effects, and multiplayer features
to enhance the overall experience. The modular nature of the design makes it easy to extend and
upgrade. Overall, this project serves as a strong foundation for further exploration in game
development and reflects a successful integration of theoretical knowledge into practical application.
BIBLIOGRAPHY
1. Geeks for Geeks (GFG) Tutorial on Computer Graphics.
2. GitHub repositories( TinyRenderer, Open3D).
3. Introduction To Computer Graphics by Karsten Lehn.
4. Open GL.
5. Visual Studio Code – Used as the primary development environment for coding and
testing the game.
6. Turbo C++ / GCC – Used for compiling and executing the program.
7. Fundamentals of Computer Graphics – Provided an easy understanding of core
graphics principles useful for beginners.
8. Class Notes and lecture material provided by our Tutor.