Professional Documents
Culture Documents
Final Completed
Final Completed
Final Completed
A Project Report
ON
Breakout Ball in Python
Submitted by:
Anil Pokharel (19070431)
Abhishek Subedi (20070368)
Submitted to:
Department Of Computer Science & Engineering
Universal Engineering and Science College
Chakupat, Lalitpur
November, 2022
DECLARATION
We hereby declare that the report of the project entitled “Breakout Ball in Python”
which is being submitted to the Department of Computer Science and Engineering,
Universal Engineering and Science College, Chakupat, Lalitpur, in the partial
fulfillment of the requirements for the award of the Degree of Bachelor of Engineering in
Computer Engineering, is a bonafide report of the work carried out by us. The materials
contained in this report have not been submitted to any University or Institution for the
award of any degree and we are the only author of this complete work and no sources
other than the listed here have been used in this work.
i
CERTIFICATE OF APPROVAL
The undersigned certify that they have read and recommended to the Department of
Computer Science and Engineering, Universal Engineering and Science College, a
minor project work entitled “Breakout Ball in Python” submitted by Anil Pokharel and
Abhishek Subedi, in partial fulfillment for the award of Bachelor’s Degree in Computer
Engineering. The Project was carried out under special supervision and within the time
frame prescribed by the syllabus.
We found the students to be hardworking, skilled and ready to undertake any related
work to their field of study and hence we recommend the award of partial fulfillment of
Bachelor’s degree of Computer Engineering.
Project Supervisor
Mr. Nabin Shrestha
Senior Coordinator, Department of Computer Science & Engineering, UESC
External Examiner
Mr. ………………………….
HOD, Department of Computer Engineering, …………………….
November, 2022
ii
COPYRIGHT
The author has agreed that the library Department of Computer Science & Engineering,
Universal Engineering & Science College, may make this report freely available for
inspection. Moreover, the author has agreed that the permission for extensive copying of
this project work for scholarly purpose may be granted by the professor/lecturer, who
supervised the project work recorded herein or, in their absence, by the head of the
department. It is understood that the recognition will be given to the author of this report
and to the Department of Computer Science & Engineering, Universal Engineering &
Science College in any use of the material of this report. Copying of publication or other
use of this report for financial gain without approval of the Department of Department of
Computer Science & Engineering, Universal Engineering & Science College and
author’s written permission is prohibited.
Request for permission to copy or to make any use of the material in this project in whole
or part should be addressed to department of Department of Computer Science &
Engineering, Universal Engineering & Science College.
iii
ACKNOWLEDGEMENT
It is a great pleasure for me to acknowledge the guidance and contribution of all the
individuals for their assistance and guidance. I would like to take this opportunity to
express my gratitude and thanks the peoples who have helped me in various ways to
complete my minor project. First, I would like to thank our college “Universal
Engineering and Science College” and computer department for providing us this great
opportunity to put our learning and knowledge in a real time project.
I am very grateful to my project supervisor who has been very polite and helpful in giving
instruction in the preparation of this project. I would like to thank him for his valuable
guidance and support throughout this project time. Similarly, I must convey our gratitude
to my project supervisors Er.Nabin Shrestha for giving me constant source of
inspiration and encouragement throughout the project time. Also, I would like to convey
thanks to entire teacher and staff of the Department of Computer Science and
Engineering, UESC for their invaluable guidance and support to complete this project.
Finally, yet more importantly I would like to express my deep appreciation and sincere
gratitude to my family, classmates and friends for their perpetual support and
encouragement throughout the period of this project.
Thanking You,
iv
ABSTRACT
Games are a fundamental way that humans interact and learn. They provide so many
advantages for people of all interests and abilities. The main benefits of using computer
games as learning tools, is related with problem solving, 21stcentury skills, integration of
learning and assessment, collaborative and interactivity, addressing cognitive as well as
affective learning issues, and motivation for learning. Gaming is gaining a different level
of attention not only from the youngsters but also from different age people. It is creating
a virtual world where we can virtually live our life. Gaming has gained importance in
Desktop application as well as in Android Application. The objective of the project is to
give information about the game “Breakout Ball”. It is a classic arcade game. The game
is mainly based and motivated from the game "Arkanoid". The game play is based on
elementary physics i.e., reflection principle. Breakout Ball is a game in which the player
must smash a wall of bricks by deflecting a bouncing ball with a paddle. The paddle
moves horizontally and is controlled with keyboard. When all the bricks have been
destroyed, the player advances to a new level. There are 3 levels with color-coded tiles
and entertaining sound.
Keywords: Ball. Paddle, Brick,
v
Table of Content
DECLARATION...................................................................................................................................i
CERTIFICATE OF APPROVAL.......................................................................................................ii
COPYRIGHT.......................................................................................................................................iii
ACKNOWLEDGEMENT...................................................................................................................iv
ABSTRACT...........................................................................................................................................v
Table of Content..................................................................................................................................vi
List of figures.....................................................................................................................................viii
List of Tables........................................................................................................................................ix
1. INTRODUCTION.........................................................................................................................1
1.1 Background..................................................................................................................................1
1.2 Motivation....................................................................................................................................2
2. LITERATURE REVIEW.............................................................................................................4
3. REQUIREMENT ANALYSIS.....................................................................................................5
vi
4.2 Flowcharts.............................................................................................................................10
5. IMPLEMENTATION DETAIL.................................................................................................12
6.1 Outcome.....................................................................................................................................13
7. Conclusion....................................................................................................................................14
References............................................................................................................................................15
vii
List of figures
viii
List of Tables
ix
1. INTRODUCTION
Breakout Ball is a simple brick breaker game which will have layers of colored bricks and
ball with which to break the layers. The player will move the paddle from left to right to
keep the ball from falling. A life will be used when the player fails to hit the ball. A
regular brick will disappear when it’s hit by the ball, or breaks a little if it’s a bulkier
brick. At the same time, there will be music outputs to match different game effects. If
time permits, we plan to add more features to the game, such as bricks that drop items to
make the paddle longer, make the ball faster, or turn the ball on fire so that it burns every
brick on the path. We will build a scoring system that reflects how efficient the user is to
clear the bricks. Number of total paddle hits and maximum brick hits per trip are two of
the possible factors. [1]
1.1 Background
Breakout Ball is an arcade video game developed and published by Atari, Inc. and
released on May 13, 1976. It was designed by Steve Wozniak, based on conceptualization
from Nolan Bushnell and Steve Bristow who were influenced by the seminal 1972 Atari
arcade game Pong. In Breakout Ball, a layer of bricks lines the top third of the screen and
the goal is to destroy them all by repeatedly bouncing a ball off a paddle into them. The
arcade game was released in Japan by Namco. Breakout ball was a worldwide commercial
success, among the top five highest-grossing arcade video games of 1976 in both the
United States and Japan and then among the top three highest-grossing arcade video
games of 1977 in the US and Japan. The 1978 Atari VCS port uses color graphics instead
of a monochrome screen with colored overlay. [2]
While the concept was predated by Ramtek's Clean Sweep (1974), Breakout spawned an
entire genre of clones. It was the inspiration for aspects of the Apple II computer
and Taito's Space Invaders (1978). An official sequel was released in 1978, Super
Breakout, which eventually became the pack-in game for the Atari 5200 console in
1982. Super Breakout introduced multiple balls in play at once, which became a common
feature in the genre. In 1986 the Breakout concept found new legs with Taito's Arkanoid,
1
which itself spawned dozens of imitators. In Japan, the genre is known as block
kuzushi ("block breaker") games. [3]
1.2 Motivation
In the start of this wonderful idea, we actually planned to develop an E-commerce site.
The idea was dropped later because we thought it was too mainstream, then we finalized
the resume developing site, that idea was to dropped because of small audience and less
exposure.
Finally, we choose, The Breakout Ball Game In Python.
1.3 Problem Definition
Although technologies have been developed rapidly in many parts of the world, Nepal is
still behind in utilization and production of them. In the context of rapidly evolving
gaming technologies, Nepal is still behind due to lack of infrastructure on networks,
payment methods and many more problems. Based on the research papers review we
found out that few of the problems need to be addressed in our project. Some of those
problems are listed below.
High level software and hardware requirements from games issue.
Low level collaboration of physics and assets
Movements not aligned with graphical representation.
Games involve certain rules. This means that the player has to think quickly while
making any move to ensure that the ball stays within the play zone of that
2
particular level. The player needs to make split- second decisions that will
determine whether or not he or she will advance to the next level.
According to research, individuals who play games frequently can process these
stimulators faster than others. These stimulators ensure that the brain is
continuously working to interpret them.
3
2. LITERATURE REVIEW
Breakout Ball is an arcade video game developed and published by Atari, Inc. and
released on May 13, 1976. It was designed by Steve Wozniak, based on conceptualization
from Nolan Bushnell and Steve Bristow who were influenced by the seminal 1972 Atari
arcade game Pong. In Breakout Ball, a layer of bricks lines the top third of the screen and
the goal is to destroy them all by repeatedly bouncing a ball off a paddle into them. The
arcade game was released in Japan by Namco. Breakout ball was a worldwide commercial
success, among the top five highest-grossing arcade video games of 1976 in both the
United States and Japan and then among the top three highest-grossing arcade video
games of 1977 in the US and Japan. The 1978 Atari VCS port uses color graphics instead
of a monochrome screen with colored overlay.
While the concept was predated by Ramtek's Clean Sweep (1974), Breakout spawned an
entire genre of clones. It was the inspiration for aspects of the Apple II computer and
Taito's Space Invaders (1978). An official sequel was released in 1978, Super Breakout,
which eventually became the pack-in game for the Atari 5200 console in 1982. Super
Breakout introduced multiple balls in play at once, which became a common feature in the
genre. In 1986 the Breakout concept found new legs with Taito's Arkanoid, which itself
spawned dozens of imitators. In Japan, the genre is known as block kuzushi ("block
breaker") games. [4]
4
3. REQUIREMENT ANALYSIS
The main aim of the feasibility study activity is to determine whether it would be
financially and technically feasible to develop the project. The feasibility study activity
involves the analysis of the problem and collection of all relevant information related to
the project such as different data items which would be the input to the system, the output
5
data required to be produced by the project as well as the various constraints on the
behavior of the project.
3.2.1 Economic Feasibility
This feasibility checks whether the system can be developed with the available funds. The
Breakout Ball does not require an enormous amount of money to be developed. This can
be. done economically if planned properly, so it is economically feasible The Breakout
Ball operates on a general PC. There is no need for any sophisticated devices and
equipment. The only investment is time and effort. So the project support economically
feasible since it does not require a great deal of financial
3.2.2 Operational Feasibility
It is mainly related to the game play of the game. The game is operationally feasible as it
is very easy for the users to play. It only needs basic information about the game.
3.2.3 Technical Feasibility
This feasibility checks the technical requirements of the system. This is concerned with
tools, technology, equipment, and software that will successfully satisfy the user
requirement. We are using Python, which is modern technology; the game provides
entertainment to the user. The interactive Graphical User Interface is compatible with
most modern computers. Another important aspect that we must consider is that the game
must be compatible with the most operating system. Our game works well with most of
the Windows
Time evaluation is the most important consideration in the development of a project. The
schedule required for the development of this project is very important since more
development time affects machine time, and cost and causes a delay in the development of
other projects. A reliable Breakout Ball game can be developed in a considerable amount
of time
6
4. SYSTEM ARCHIETECTURE AND METHODOLOGY
Main menu
Quit
7 Pause
Play
Resume
Ball Moving
Collide with
paddle
Hits Brick
Avoid Paddle
Update
Score Life Reduce
End Game
Speed up
8
4.2 Flowcharts
Start
NO
Play
Game
YES
Click to Start
Game Start
End Game
All Bricks
You Lost Destroyed
NO
YES
You Won
Stop
9
An activity diagram visually presents a series of actions or flow of control in a system
similar to a flowchart or a data flow diagram. Activity diagrams are often used in business
process modelling. They can also describe the steps in a use case diagram. Activity
modelled can be sequential and concurrent.
10
5. IMPLEMENTATION DETAIL
The project provides a layout of the game Breakout ball. For the implementation of the
game we assigned a certain screen resolution (Height and Width). The game is titled as
"Breakout Ball'' which has a background that consists of different colored bricks like red,
green and blue. We declared different variables and functions for the game. We created
classes for different objects in the game like Brick wall class, Ball class, Paddle class etc.
game. We created a user instructions to start the game like "CLICK ANYWHERE TO
START", "YOU WON" and "YOU LOST”
Paddle control
The paddle will be controlled by keyboard. The keyboard’s left and right arrow will
correspond to the paddle’s movement.
Bouncing ball
As the ball bounce around walls (edges of the screen), bricks and paddle the reflection of
the ball depends on the angle of incidence. We implement the game with player have
multiple lives.
Bricks
For each type of brick, the game different color. Different types of brick may need 1 or 2
or 3 times of breaking before they are destroyed.
Score counting
The game will count for the scores by how many bricks broken in total. The score will be
displayed on the down left corner of the screen.
11
6. RESULT AND ANALYSIS
6.1 Outcome
We have created a Breakout Ball Game for windows using Python, which has 3 levels,
score counting and 3 lives per level. Every level’s brick is of three layers. First layer brick
takes a single strike from the ball to get destroyed, second layer brick takes two strikes and
third layer brick takes three strikes to get destroyed. When all bricks of a certain level are
destroyed the level gets upgraded.
6.2 Time Schedule
12
7. CONCLUSION
A software project means a lot of experience. In this section we summarize the experience
gained by the project team during development of "Breakout Ball". Working with python
was a completely new experience for us. Normally we are working with different
programming languages like C, C++,Java languages etc. We adapted to the programming
language by video tutorials, text tutorials, internet and learning materials given by the tool
itself. It's a matter of time, patience and hard work. Now we know much more about
Python. How does it work? The properties, objects and others. We learned a lot about
different documentation.
Future Plan
1. Level Extension
2. Improve Graphical Representation
3. Introduce new game features
4. Introduce new game environment and scenes
13
REFERENCES
14