NEHA RAWAT
NEHA RAWAT
ON
“Simba”
The Adventure Game
Acknowledgement
I take this opportunity to thank our teachers and friends who helped me throughout the
project. First and foremost, I would like to thank my guide for the project Ms. Bhanu
Tomar for the valuable advice and time during development of project.
Neha
MCA 2nd SEM
CERTIFICATE
This is to certify that Neha , Class – MCA 2nd Sem. has carried out the project word title “Simba:
The Adventure Game” under the supervision of Ms.Bhanu Tomar.
This project work is originally work carried out by the student and has not been submitted to any
other college/institute to the best of knowledge.
Supervisor
Ms. Bhanu Tomar
Table of Contents
Chapter 1-
1.1: Introduction of Python…………………………………………………………………………….6
1.2: History of Python…………………………………………………………………………………….7
1.2.1: Who invented Python?......................................................................7
1.2.2: Evolution of Python…………………………………………………………………………8
1.3: Features of Python…………………………………………………………………………………..10
1.4: Framework & Library……………………………………………………………………………….12
1.5: Python Application in Real World…………………………………………………………….14
1.6. Requirement ……………………………………………………………………………………………16
Chapter 2 –
Introduction…....................................................................................................22
2.1: Game Overview …………………………………………………………………………………….22
2.2: Synopsis …………………………………………………………………………………………………22
2.3: Target Audience …………………………………………………………………………………….22
2.4: Game Description ………………………………………………………………………………….23
2.5: Game Objectives ……………………………………………………………………………………23
2.6: Why game as a project? …………………………………………………………………………24
2.7: Methodology ………………………………………………………………………………………….24
Chapter 3 –
3.1: Feasibility Study ……………………………………………………………………………………..25
3.2: Financial Feasibility …………………………………………………………………………………25
3.3: Technical Feasibility ………………………………………………………………………………..25
3.4: Economic Feasibility ………………………………………………………………………………..26
3.5: Legal Feasibility………………………………………………………………………………………..26
Chapter 4 –
System Design …………………………………………………………………………………………………27
4.1: List of Classes and their Responsibilities: ………………………………………………….27
4.2: Player Weapon Class Diagram ……………………………………………………………………29
Chapter 5 –
Characters, Weapons & Other Objects …………………………………………………………….30
5.1: Main Character………………………………………………………………………………………….30
5.2: Enemy Character……………………………………………………………………………………….30
5.3: NPC Characters …………………………………………………………………………………………30
5.4: Player Weapons ………………………………………………………………………………………..30
5.5: Other Objects …………………………………………………………………………………………..30
Chapter 6 –
6.1: Level Design ……………………………………………………………………………………………..31
6.2: Menu Scene ……………………………………………………………………………………………..31
6.3: Dungeon_1 Scene …………………………………………………………………………………….31
6.4: Dungeon_2 Scene …………………………………………………………………………………….31
Chapter 7 –
7.1: Game Design ……………………………………………………………………………………………32
7.2: Game Rules ……………………………………………………………………………………………..32
7.4: Game Structure ……………………………………………………………………………………….33
7.5: Game Play ………………………………………………………………………………………………..34
7.6: Menu Camera ………………………………………………………………………………………….34
7.7: Game Camera…………………………………………………………………………………………..34
7.8: Animation States …………………………………………………………………………………….35
7.8.1 : Player ………………………………………………………………………………………………35
7.8.2 : Enemies ……………………………………………………………………………………………35
7.8.3 : Environment ……………………………………………………………………………………35
7.12 : UI ………………………………………………………………………………………………………….35
7.13: Audio………………………………………………………………………………………………………35
Attempts to make game more fun …………………………………………………………………36
Chapter 8 –
User Interface ………………………………………………………………………………………………….38
8.1: Select or Unlock Character Skin Menu in Main Menu……………………………….38
8.2: Character Menu in Game Scenes ………………………………………………………………39
8.2.1 : Pause Menu …………………………………………………………………………………………40
8.2.1 : Death Menu………………………………………………………………………………………….41
Chapter 9 –
Conclusion ………………………………………………………………………………………………………42
9.1: Future Plans …………………………………………………………………………………………...42
Chapter 1
Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a
simple but effective approach to object-oriented programming. Python’s elegant syntax and dynamic typing,
together with its interpreted nature, make it an ideal language for scripting and rapid application
development in many areas on most platforms.
The Python interpreter is easily extended with new functions and data types implemented in C or C++ (or
other languages callable from C). Python is also suitable as an extension language for customizable
applications.
Why Python?
Python works on different platforms (Windows, Mac, Linux, Raspberry Pi, etc).
Python has a simple syntax similar to the English language.
Python has syntax that allows developers to write programs with fewer lines than some other
programming languages.
Python runs on an interpreter system, meaning that code can be executed as soon as it is written.
This means that prototyping can be very quick.
Python can be treated in a procedural way, an object-oriented way or a functional way.
Example
print("Hello, World!")
1.2: History of Python:-
Python is a widely used general-purpose, high-level programming language. It was initially designed
by Guido van Rossum in 1991 and developed by Python Software Foundation.
It was mainly developed for emphasis on code readability, and its syntax allows programmers to express
concepts in fewer lines of code.
In the late 1980s, history was about to be written. It was that time when working on Python started.
Soon after that, Guido Van Rossum began doing its application-based work in December of 1989
at Centrum Wiskunde & Informatica (CWI) which is situated in the Netherlands. It was started as a
hobby project because he was looking for an interesting project to keep him occupied during
Christmas.
The programming language in which Python is said to have succeeded is ABC Programming
Language, which had interfacing with Amoeba Operating System and had the feature of exception
handling.
He had already helped create ABC earlier in his career and had seen some issues with ABC but
liked most of the features. After that what he did was very clever.
He had taken the syntax of ABC, and some of its good features. It came with a lot of complaints
too, so he fixed those issues completely and created a good scripting language that had removed all
the flaws.
The inspiration for the name came from the BBC’s TV Show – ‘ Monty Python’s Flying Circus’,
as he was a big fan of the TV show and also he wanted a short, unique and slightly mysterious name
for his invention and hence he named it Python! He was the “Benevolent dictator for life” (BDFL)
until he stepped down from the position as the leader on 12th July 2018. For quite some time he
used to work for Google, but currently, he is working at Dropbox.
Evolution of Python
The language was finally released in 1991. When it was released, it used a lot fewer codes to
express the concepts, when we compare it with Java, C++ & C.
Its design philosophy was quite good too. Its main objective is to provide code readability and
advanced developer productivity. When it was released, it had more than enough capability to
provide classes with inheritance, several core data types of exception handling and functions.
Following are the illustrations of different versions of Python along with the timeline.
1.3: Features of Python:-
Python language is freely available at the official website and you can download it from the given
download link below click on the Download Python keyword. Download Python Since it is open-
source, this means that source code is also available to the public. So you can download it, use it
as well as share it.
Python is a high-level programming language. Python is very easy to learn the language as
compared to other languages like C, C#, Javascript, Java, etc. It is very easy to code in the Python
language and anybody can learn Python basics in a few hours or days. It is also a developer-
friendly language.
As you will see, learning Python is quite simple. As was already established, Python’s syntax is
really straightforward. The code block is defined by the indentations rather than by semicolons or
brackets.
Graphical User interfaces can be made using a module such as PyQt5, PyQt4, wxPython, or Tk in
Python. PyQt5 is the most popular option for creating graphical apps with Python.
Python is a high-level language. When we write programs in Python, we do not need to remember
the system architecture, nor do we need to manage the memory.
Excellent information for mistake tracing. You will be able to quickly identify and correct the
majority of your program’s issues once you understand how to interpret Python’s error traces.
Simply by glancing at the code, you can determine what it is designed to perform.
Python language is also a portable language. For example, if we have Python code for Windows
and if we want to run this code on other platforms such as Linux, Unix, and Mac then we do not
need to change it, we can run this code on any platform.
Python is also an integrated language because we can easily integrate Python with other languages
like C, C++, etc.
Python is an Interpreted Language because Python code is executed line by line at a time. like
other languages C, C++, Java etc. there is no need to compile Python code this makes it easier to
debug our code. The source code of Python is converted into an immediate form called bytecode.
Python has a large standard library that provides a rich set of modules and functions so you do not
have to write your own code for every single thing. There are many libraries present in Python
such as regular expressions, unit-testing, web browsers, etc.
Python is a dynamically-typed language. That means the type (for example- int, double, long, etc.)
for a variable is decided at run time not in advance because of this feature we don’t need to specify
the type of variable.
1.3.14. Frontend and backend development
With a new project py script, you can run and write Python codes in HTML with the help of some
simple tags <py-script>, <py-env>, etc. This will help you do frontend development work in
Python like javascript. Backend is the strong forte of Python it’s extensively used for this work
cause of its frameworks like Django and Flask.
In Python, the variable data type does not need to be specified. The memory is automatically
allocated to a variable at runtime when it is given a value. Developers do not need to write int y =
18 if the integer value 15 is set to y. You may just type y = 18.
Django
CherryPy
Flask
Bottle
NumPy
Pandas
Matplotlib
BeautifulSoup4
TensorFlow
SciKit Learn
Keras
SciPy
NLTK
TextBlob
Selenium
PyTest
Splinter
Pywinauto
Nose2
PyGame
Kivy
Pyglet
PyKyra
Panda3D
Python Hash
Requests
Scapy
pylibnet
Cryptography
Python-Nmap
Python applications offers provides ease in building a plethora of apps, web development
processes, and a lot more.
1.5.1. Web Development:
It is one of the most astonishing applications of Python. This is because Python comes up with
a wide range of frameworks like Django, Flask, Bottle, and a lot more that provide ease to
developers. Furthermore, Python has inbuilt libraries and tools which make the web
development process completely effortless.
The use of Python for web development also offers:
Amazing visualization
Convenience in development
Enhanced security
Fast development process
Machine Learning and Artificial Intelligence are the hottest subjects right now. Python along with
its inbuilt libraries and tools facilitate the development of AI and ML algorithms. Further, it offers
simple, concise, and readable code which makes it easier for developers to write complex
algorithms and provide a versatile flow.
Some of the inbuilt libraries and tools that enhance AI and ML processes are:
Numpy for complex data analysis
Keras for Machine learning
SciPy for technical computing
Seaborn for data visualization
Data science involves data collection, data sorting, data analysis, and data visualization. Python
provides amazing functionality to tackle statistics and complex mathematical calculations.
The presence of in-built libraries provides convenience to data science professionals. Some of the
popular libraries that provide ease in the data science process are Tensor Flow, Pandas, and Socket
Learning. These libraries provide an ecosystem for fine-tuning data models, data preprocessing,
and performing complex data analysis.
With the rapidly growing gaming industry, Python has proved to be an exceptional option for
game development. Popular games like Pirates of the Caribbean, Bridge Commander, and
Battlefield 2 use Python programming for a wide range of functionalities and add-ons.
The presence of popular 2D and 3D gaming libraries like pygame, panda3D, and Cocos2D makes
the game development process completely effortless.
1.5.5. Audio and Visual Applications
Audio and video applications are undoubtedly the most amazing feature of Python. Python is
equipped with a lot of tools and libraries to accomplish your task flawlessly. Applications that are
coded in Python include popular ones like Netflix, Spotify, and YouTube. This can be handled by
libraries like
Dejavu
Pyo
Mingus
SciPy
OpenCV
Python is just the perfect option for software development. Popular applications like Google,
Netflix, and Reddit all use Python.
Apart from these Python offers enhanced features to work with rapidly growing technologies like
Machine learning and Artificial intelligence. All these embedded features make it a popular choice
for software development.
CAD refers to computer-aided design; it is the process of creating 3D and 2D models digitally.
This application has replaced manual drift and is used by architects, product designers, and
construction managers to design products with extremely high consistency.
Python is embedded with amazing applications like Blender, Free CAD, open cascade, and a lot
more to efficiently design products. These provide enhanced features like technical drawing,
dynamic system development, recordings, file export, and import.
Python offers excellent security and scalability features that make it perfect for delivering high-
performance business applications.
All these distinguishing features make it fit for creating business applications.
Python is an interactive programming language that helps developers to create GUIs easily and
efficiently. It has a huge list of inbuilt tools for Python usage are PyQT, kivy, wxWidgets, and
many other libraries like them to build a fully functional GUI in an extremely secure and efficient
manner.
1.6. Requirements
Hardware Requirements:-
Desktop/laptop
8GBRAM
Software Requirements:-
Idle(Python)
Installing:-
To install python, you have to download the latest version of python from the Python official
website. This gives the latest version of Python to download on your Windows operating system.
See the screen below giving you a button with text “Download Python 3.11.3“.Click this button to
download the latest version of Python on your Windows. 11
The version of Windows can be any including Windows 7, Windows 10 and all other versions of
Windows.
Install Now
Customize Installation
Let’s start with the “Install Now” process first:
This process installs the Python on windows automated location. You can check the installation
location in the image given below. The location automatic generated for fast process of installation.
The “Install Now” link is given as in the screen below. This gives you the automated installation
location as given in the link.
But before you click the link, you have to click the check box. The checkbox set the PATH for
Python on your windows on installation. To add the PATH, you just need to click the checkbox
given in the image. The checkbox contains the text “Add Python3.7 to PATH” above with of 12
Now, click the “InstallNow” link given in the above image. This starts the installation process of
Python
But before you click the link, you have to click the checkbox. The checkbox set the
PATH for Python on your windows on installation. To add the PATH, you just need to
click the checkbox given in the image. The check box contains the text “Add Python 3.7
to PATH” above with of
Now, click the “Install Now” link given in the above image. This starts the installation
process of Python.
You can check the installation progress as given in the screen above. This installs all the
libraries of Python on to your local system.
After the progress is completed, you will see a setup successful message. The
successful message screen is as given below.
Click the close button to complete the process and open Python.
To install the Python on a specified location of the computer system. Follow the steps given
below.
Step1: First click the checkbox with the text “Add Python3.7 to PATH“. This adds the
Path of Python on your computer system.
After that, You have to select the link option with the text “Customize Installation“. This starts
the installation process of Python on to a specified location.
Step2: In this step, the screen is as shown in the image below. You don’t need to click
any checkbox here. Just click the “Next” button here.
Step3:
In this step, you have to browse and select the location where you want Python.
The above image installs the Python software in Python folder of C drive. Click the
“Install” button to start the installation progress.
The installation progress shows the addition of all Python files and libraries.
After the progress is completed. You will get a successful message of Python installation.
Chapter 2
Introduction
This report describes the process involved in making 2D Top-Down Simba the adventure game,
Simba: The Adventurer with Unity3D.
This game is for both PC Standalone and Android devices. This chapter discusses the game
overview including the synopsis, target audience, description, then focuses on the game design,
describing how the game is implemented.
Each area of the dungeon has different enemies with different health, and damage, he can
only go further if he clears the current area that he can enter and exit. This section elaborates
the synopsis, target audience, software used and finally game description.
2.2. Synopsis
Simba, a first grade adventurer, dreams to become the seventh (highest) grade adventurer. To
accomplish his dreams he needs to complete all of the seven levels, Will Riko be able to
accomplish his dreams?
This shows that a large base of players are actively interested in this genre and gives me a
good opportunity to tap into that market by following the traditions that have already set for
this genre. But I’m mainly targeting to casual gamers aged from 13-30.
2.4. Game Description
This game involves a single player entering a random dungeon with a sword as the weapon
after selecting a character from menu scene. The dungeon is inhabited by various creatures
that will attack the player if he goes into the area that the creatures inhabiting.
If the player successfully defeats the creatures the player gains experience points and if the
experience points are max as the current grade adventurer.
The player gets promoted and the process goes on until he is the max grade adventurer. But he
does not entirely become the max grade adventurer within a single dungeon; he has to defeat
creatures by teleporting to different levels. In this game, I have designed 4 dungeons for the
player to play and besides the creatures the dungeons have NPCs, obstacles like crates, health
restorations. Although there are 4 dungeons, the dungeons are not considerably big for the
player to take a lot time to clear the entire dungeon thus it will only take 5-10 minutes on
average without pausing the game.
To create a RPG game that will have all the functionality of traditional RPG games.
To implement word attack as the ability.
To implement multiple weapons with different bullets and power.
To implement various kinds of enemies that have the purpose to simply attack the
player until the death of the player.
To add sound effects to player, enemies, weapons and other objects like doors.
To add animations to all sorts of game objects like player, enemies, doors, water
including UI transitions.
I also have to invest a lot of time on the proper game designing to make it visually accepted.
And to add that game requires a lot of scripts. The scripts are like pieces of a puzzle which
you need to put all of them together to make it work. Thus I think game is a perfect project to
prove myself as a MCA student.
2.7. Methodology
The software methodology I have used to develop this game is Agile methodology which is an
approach for developing products (in this case: games) using short iterations. The main idea
is not making the whole project from start to finish, but making small features for the current
project in small periods of time. In this way the results of each iteration are used to adjust
the project plan.
Each iteration is like a short project in itself.
Uses “inspect and adapt” practices to adjust the goals and measure progress.
Chapter-3
3.1. Feasibility Study
This chapter describes all the feasibilities that come as questions to both the developers
and other users during the development of software.
The chapter contains financial feasibility, technical feasibility, economic feasibility and
legal feasibility.
For the mobile game players, it is completely a free to play game; the only potential reason that
it may consume internet data even though it is an offline game is the ads that this game may
have in the near future which is considered to be relatively low.
Additionally if we add some premium weapons or player skins in future the player may need to
pay to acquire them which is a choice for the players and is not must. The points mentioned
above indicate that the project is financially feasible.
Adobe Photoshop CC 2017 Code Editor: Visual Studio Code Programming Language:
Tiled itself also has animation editor which can be used to make simple animations that is
related to moving objects, changing sprites, and sprite editor which can separate sprites which
is good enough for this game.
The simplicity of the project along with the facts mentioned above proves that this software is
also technically feasible.
Chapter 4
System Design
4.1. Number Class Name Responsibility
2) Player.py Is one kind of Enemy, which has unique player attacking functionality than
the other enemies
3) Bullet.py Moves the player bullet, damage enemy, if it hits the wall then
explode.
4) CameraController.py Follow the player.
5) CameraShake.py Shake the camera when shooting
6) CharacterMenu.py Is part of UI, responsible to show player’s current stats, the in game
system.
7) CharacterSelectionCamera.py Is only part of the Main Menu scene that follows the
specific player which MenuController.py sends, showing zoom in, zoom out
animations.
8) Chest.py Grant the player either gold or weapons
9) Collectable.py Is child class of Collidable.py which is same as collidable.py objects but
only was created to manage trigger game Objects like chests.
10) Damage.py Is like struct only contains 3 variables (origin, damageAmount,
pushForce).
11) DataController.py It has the functions to load and save game.
12) Enemy.py Is a child class of Mover.py which is responsible to move the melee enemy,
change its animation state, manipulating its health bar, and controls receive damage
system and death flow.
14) Paryicles.py Is a child class of Mover.py which is responsible to move the ranged
enemy, change its animation state, manipulating its health bar, and controls receive
damage system and death flow.
15) EnemyShoot.py Contains several types of enemy bullet movements that be used in
ranged enemies to attack the player.
Table:- 1
Number File name Responsibility
1. AudioController.py
2. Player.py
3. Settings.py
4. Bullet.py
5. Tiles.py
6. Ui.py
7. Particles.py
8. Level.py
9. GameData.py
10. Enemy.py
11. Decoration.py
12. EnemyProjectile.py
13. EnemyShoot.py
14. DataController.py
15. Overworld.py
GAME Structure:=
Level Selection Screen :
Chapter 5
Characters, Weapons & Other Objects
This is one of the interesting chapters that you may read with enthusiasm, because it
contains lots
There are also animations involved in designing the level like water, lava flow animations but
that will be described in the Game Design Chapter
Chapter 7
I will also discuss more about what I did to make the game more fun rather than visually
accepted with the existing resources I have and that is part of game design because even if we
make a fancy game with good graphical work if the game design is not well enough it will not
attract the user.
So I invested a lot of time on doing this section, since without it the game is incomplete.
There are multiple enemies inhabiting with different damage points and health that will attack
the player if it enters in their inhabitant area. Initially player has no target so he can freely
shoot but when player goes near to any kind of enemies the weapon locks the target so player
can only shoot it when triggering the shooting event.
If player successfully kills the enemy it gains experience points, in the process if experience
is max to current grade of the player, the player gets promoted with gaining back the full
health and the level only completes if he killed all the enemies.
The levels are also filled with chests in random places which can grant the player gold or
new weapons. In games scenes there is also NPCS that player can communicate with.
7.3. Game Structure
Character
Selection
Quit Screen
Choose Character
Screen
Game play (in Random Dungeon)
Door opened to teleport (if all enemies died)
Loosing Screen (if died)
Pause Screen
Shop Screen
7.6.2. Enemies
They have two animation states: idle state, attack state. Initially enemies’
animation state is idle, if player enters in their inhabitant area the enemies’ state
transition to attack state. This mechanism applies to all of the enemies.
7.6.3.NPCs
The NPCs only have one animation state, which is idle.
7.6.4.Environment
Few of the game objects that were used to design environment have animations
which only have a single state.
The following game objects have animations in them:
Hills: It has the river wave animation which can be seen in Dungeon_1 scene.
TREES: It has water flowing animation which can be seen in Dungeon_1 scene.
Lava: It has lava wave animation which can be seen in Dungeon_2, Dungeon_3
scene.
Water: It has water wave animation which can be seen in Dungeon_2 scene.
Fire Torch: It has fire movement animation which can be seen in all of the
dungeons.
7.7. UI
There are animation transitions to show the different UI panels, and all of were animated in
Unity and have two animations states: “Hide” and “Show”.
Hide simply hides the panel by either fade in transition or moving the panel to out of the
screen space and show animation does the opposite of hide animation.
7.8. Audio
The following table shows the list of audio clips with description I have used to develop this
game, each of the audio clips may play in several objects like same audio clip is being played
in several enemies, but I have changed the pitch of the audio clip to distinguish sound effect for
enemies.
Name Category Description Auvic - Heal Me Background Music Plays during the game
Brainwave - Contingency Of Pink
Background Music Plays during the game
Glitch Hop Auvic ft. Pipo Fernandez - Indignation
Background Music
Background Music
Plays during the game
Orange Wolke - Stephen's Tiny Cafe Background
Music Plays during the game
With keeping that mind set I have included the following features in the game to make the more
fun.
Screen Shake :
When player shoots the camera is slightly shaking that gives an impression that an event is
occurring.
Environment Animations:
I have added river wave, lava, water wave, background animations to make the game
visually more beautiful.
Background Music:
Instead of playing a single BG music I have added multiple BG music that we usually get to
hear in car racing with the order being totally randomized.
Sound Effects:
Instead of playing same sound clip when player is shooting, I have added different sound
clips for each of them, which helps us to distinguish the weapons, and added other sounds
effects that have been playing as player hurt, enemy hurt, victory, game over clip.
Shooting effect:
Adding a weapon trigger effect also makes a lot difference.
Toast Message :
Popup text can be used to in various places to inform the player but it is not a good
approach to use for the important things like when game ends a text pop up that level is
completed but that does not sound rewarded enough so I have added toast message for
the special events like level completion, character selection, new weapon reception.
#MAIN CODE
import pygame, sys from
settings import *
from level import Level from overworld
import Overworld from ui import UI class
Game:
def init (self):
# game attributes
self.max_level = 2
self.max_health = 100
self.cur_health = 100
self.coins = 0
# audio self.level_bg_music=pygame.mixer.Sound('../audio/level_music.wav')
self.overworld_bg_music=pygame.mixer.Sound('../audio/overworld_mu sic.wav')
# overworld creation
self.overworld = Overworld(0,self.max_level,screen,self.create_level) self.status
= 'overworld' self.overworld_bg_music.play(loops = -1)
# user interface
self.ui = UI(screen)
def create_level(self,current_level):
self.level = Level(current_level,screen,self.create_overworld,self.change_coins,self.
change_health)
self.status = 'level'
self.overworld_bg_music.stop()
self.level_bg_music.play(loops = -1)
def create_overworld(self,current_level,new_max_level): if
new_max_level > self.max_level:
self.max_level = new_max_level
self.overworld=Overworld(current_level,self.max_level,screen,self.creat e_level)
self.status = 'overworld'
self.overworld_bg_music.play(loops = -1)
self.level_bg_music.stop()
def change_coins(self,amount):
self.coins += amount
def change_health(self,amount):
self.cur_health += amount def
check_game_over(self):
if self.cur_health <= 0:
self.cur_health = 100
self.coins = 0
self.max_level = 0
self.overworld = Overworld(0,self.max_level,screen,self.create_level)
self.status = 'overworld'
self.level_bg_music.stop() self.overworld_bg_music.play(loops = -
1)
def run(self):
if self.status == 'overworld':
self.overworld.run()
else: self.level.run()
self.ui.show_health(self.cur_health,self.max_health)
self.ui.show_coins(self.coins) self.check_game_over()
# Pygame setup
pygame.init()
screen = pygame.display.set_mode((screen_width,screen_height))
clock = pygame.time.Clock()
game = Game()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
screen.fill('grey')
game.run()
pygame.display.update()
clock.tick(60
Chapter 8
User Interface
Conclusion
In this game, I have implemented character unlock and selection system, achievable weapons and
its individual weapon upgrade system, player experience gaining system, various types of AI
enemies with different behavior and activities with following the idea of OOP, player and enemy
receiving damage system, player reward system, added different effects to most of the player’s
intractable objects and also added animations to all of the possible game objects including the user
interface.
This game is solely made for the user’s entertainment purpose and its principle objective was to
make a game that is similar to old Pixel Art RPG games but yet to have modern vibe.