Dungeon Explorer File
Dungeon Explorer File
1
TRINITY INSTITUTE OF PROFESSIONAL STUDIES
(Affiliated to Guru Gobind Singh Indraprastha University, Delhi)
Ranked “A+” Institution by SFRC, Govt. of NCT of India
Recognized under section 2(f) of the UGC Act, 1956
NAAC Accredited “B++” Grade Institution
Certified that the Project Report submitted in partial fulfillment of Bachelor of Computer
Applications (BCA) to be awarded by G.G.S.I.P. University, Delhi by ,
Enrolment No. has been completed under my guidance and is Satisfactory.
2
CONTENTS
S No Topic Page No
• Certificate (s) -
• Acknowledgements -
• List of Tables -
• List of Figures -
• List of Abbreviations -
• References 63
3
LIST OF TABLES:
LIST OF FIGURES:
LIST OF ABBREVIATIONS:
4
CHATPER 1: INTRODUCTION
Video games have been around for decades, providing entertainment for children and adults
alike. They have evolved significantly from the early days of computer games and the first
versions of Nintendo and Atari. The days of pixelated screens and limited sounds are a distant
memory as video games have become more lifelike than ever. As technology continues to
improve, so do video games. Video game creation has become increasingly complex, and the
cost of creating a game to run on one of the major consoles has risen with this increased
complexity. It was once unthinkable to sink millions into development costs, but games today
can cost tens and even hundreds of millions. This has pushed game development into
Hollywood movie territory in terms of production and marketing costs. There are various
game types depending on the game physics design like 3d games which are very popular
nowadays. Although older generations understand the term gaming by watching or playing
2D video games like Super Mario, Contra, etc. They are still very prevalent among hardcore
gamers, with games such as KatanaZero, Mark of the Ninja, Gris and so many more being
renowned for their art style and still making significant profits for the company. 2D games
are flat, sprite-based experiences that only allow you to move up, down, left, and/or right
across the screen.2D games don’t have to be complicated. It's because 2D games are easier to
pick up and play than 3D ones, which lowers the barriers for entry. The range of styles
available to 2D developers is seemingly endless, and new designs are constantly emerging.
Flat design is a good example, creating an illusion of 3D art simply by using contrast and
color to present high-resolution flat images, such as that seen in Gravity Defied and Flat
Kingdom. Flat art appeals to both gamers and those who want to recreate images from their
games in their own artwork. Drawing the Aztec dragon from Flat Kingdom, for example, is a
much easier task than drawing the dragon in Dragon’s Dogma, and can be done by the casual
artist who wants to recreate characters by breaking them down into easy steps. Similar
benefits come from games that draw on monochromatic art, such as Limbo and Once Upon
Light.
5
Dungeon Explorer is a 2D Platformer game developed in Unity, which is a platform that
allows the creation of 2D games on a variety of platforms. The platform features world
building, characters, graphics, physics, and much more.
As a matter of fact, the main purpose of creating a 2D Platformer game is to draw the
younger generation to the 2D art style as well as offer them challenging levels to play.
Dungeon Explorer is a game wherein the character is going to live in a dungeon as there
is a natural calamity ahead of which everyone is aware of. As the calamity can stay up
for days the character is collecting apples so it can survive its days in the dungeon. The
game consists of three levels where the difficulty level increases as you cross each level.
6
CHAPTER 2: SYSTEM REQUIREMENTS ANALYSIS
Without system requirements, the project will be a failure and the company will fail. If the
customer has system requirements that will satisfy their needs, then that company will have a
higher percentage of success. Not only will they have success, but they will also have better
chance of saving money and time. System requirements should be the building blocks and
one of the first things established for any project.
Minimum
Windows macOS Linux (Support in Preview)
requirements
7
CHAPTER 3: FEASIBILITY STUDY
A game feasibility study is a formal project proposal used to secure internal or external
funding and resources for a game development project. It is designed to assess the
business and technical potential/problems of the proposed project i.e., can we make it, if so
can we make at a profitable level. After the study, the game project is either further
developed or cancelled. As a game feasibility study takes time (and therefore, money) to
do correctly, it should only be developed for promising game concepts.
• Technical Feasibility: The ground was set to a layer due to the player jumping
module as continuously pressing the jump button leads to the character moving out
of the game area. Such kind of issues are also known as game physics issues in which
we have to set the physics according to the game mechanics so each and every action
makes sense while playing the game. It was also tough dealing with the gravity of the
game to make the player jump at an appropriate height. The character was falling off
the platform at some areas due to some Unity bugs, so we had to solve the issue by
making the platform collider composite to fix those areas.
• Economic Feasibility: Unity provides free access to the students which just requires
the identification for being a college student. The other assets of the game like
terrain, character design, and enemy design were all made by us (developers) which
required the subscription of PixlArt to create their pixel art models as Dungeon
Explorer is a Pixel Art Game.
8
CHAPTER 4: SYSTEMS DESIGN
Software design is a mechanism to transform user requirements into some suitable form,
which helps the programmer in software coding and implementation. It deals with
representing the client's requirement, as described in SRS (Software Requirement
Specification) document, into a form, i.e., easily implementable using programming
language. The software design phase is the first step in SDLC (Software Design Life Cycle),
which moves the concentration from the problem domain to the solution domain. In software
design, we consider the system to be a set of components or modules with clearly defined
behaviors & boundaries.
DFD (LEVEL 0)
It is also known as a context diagram. It’s designed to be an abstraction view, showing the
system as a single process with its relationship to external entities. It represents the entire
system as a single bubble with input and output data indicated by incoming/outgoing
arrows.
9
10
DFD (LEVEL 1)
Level 1 DFDs are still a general overview, but they go into more detail than a context
diagram. In level 1 DFD, the single process node from the context diagram is broken down
into sub-processes. As these processes are added, the diagram will need additional data flows
and data stores to link them together.
11
MODULES:
Terrain: The terrain is basically a sandbox we dig in and the garden which we grow in. In other words, it’s
the world building of our game which we have to edit which will act like a platform on which everything
resides. We build our terrain using the PixlArt and the entire world building was done with the help of Unity
Sprite Editor. The terrains which are shown above are all used in the three different levels of our game.
12
The following are the components we used in making our terrain. We are providing physical boundaries to
them, so that they are interactive with other objects in the game.
13
14
Background: We used these backgrounds in the three levels of our game.
The following are the components we used in making our background. We are providing physical boundaries
to them, so that they are interactive with other objects in the game.
15
16
Over Background: These are the backgrounds that we used when a level is ending and we’re
going to enter the new level.
17
Character Movements: - The complete design of our game character and all of its
movements in PixlArt. The character has an idle, running, jumping and climbing animation
which is performed throughout the game while it’s running, jumping and climbing a ladder.
The character is followed by a Follow Up Camera which will follow the character every time
it moves which helps to keep the character always on the center of our screen.
IDLE: This state defines the idle position of our character. The character doesn’t move in this
state and stays still.
JUMP: This state is how our character jumps in between the game. Character needs to jump to
cross obstacles and reach next level.
18
FALL: This is the state where the character falls.
RUNNING STATE: This is our character’s running state. This state is the most important element of our
game, as the character is running while collecting apples or food while reaching onto the next level.
19
The character also has a flip animation every time it jumps. The character will jump by
pressing the space key, move towards left by pressing the left arrow key and towards the
20
Camera Module: Camera systems are very important in conveying the right atmosphere
in video games. When developing games, even 2D ones, advanced cameras should be your
tool of choice. The camera system we designed together is modular and extensible. It has a
basic core consisting of several components which will ensure the basic functionality, and
then various components/effects that can be optionally used, depending on the situation at
hand.
21
22
Start Screen: The screen which is shown below is the start screen of our game. It displays
the name of our game which is ‘Dungeon Explorer’ and a start button. Whenever,
someone’s want to play our game they’ll have to click on start which is present in the start
screen to start playing the game we developed.
The components that we used in making the start screen are as follows:
23
24
Collectibles Module: The apples pickup module in game will be working as a scoring
perk, the game score will depend on the number of apples our character is picking in each
level. Every time the character will touch the apples it will be shown as collected by the
game system. The game coin design was built in PixlArt. The main component of our
game are apples, as we collect apples only, but there are also other fruits present
throughout the game.
25
The components that we used in making collectibles are as follows.
26
Multiple Levels: There are a total sum of three levels present in our game. The three levels
are displayed here.
LEVEL 1:
27
LEVEL 2:
28
LEVEL 3:
29
30
31
32
33
34
.
35
36
37
38
Ladder Module: The ladder module in the game will be used by the character to climb
high places in game terrain whenever the character will progress near the ladder it will start
climbing it using forward key button or W in keyboard. The game ladder design is built in
PixlArt.
Game Session Module: The game session module will contain character life and character
score during the game which is directly connected to coin pickup module and character
movements module. The game coin pickup is also connected to sound trigger element in
which every time the character pickup the coin will produce a game sound similarly when the
character will lose its life the other remaining 2 life will be shown as yellow and red in
colour. The coin scoring system is based on: -
1coin = 100score
39
Death Module and Game Exit: The death module in the game will work as the character
death several enemies and obstacles will be present in the game terrain as we know the
character will have 3 lives every time the character will be in contact of any of these it will
lose its one life, if the character loses all its lives, it will send us to main menu interface. The
obstacles were built in PixlArt.
Water Body: - If the character falls in the water, it will lose its life.
40
Spikes: - If the character contact with the spikes, it will lose its life.
41
Enemy: - If the character contacts with the enemy, it will lose its life.
Level Exit Module: The level exit module in the game will work as the character proceeding
to the next level when the character contact with the exit icon it will send our character to the
next level/ round the game exit icon is built in PixlArt.
42
Main menu Module: The main menu module in the game will work as the the game starting
interface from where our game Dungeon Explorer will start using Play button and also it has
quit button to exit the game.
43
44
CHAPTER 5: SYSTEM DEVELOPMENT (CODING)
System development methodologies are promoted in order to improve the management and
control of the software development process, structuring and simplifying the procedure,
and standardizing the development process and product by stipulating actions to be done
and methods to be used. It is often implicitly presumed that the use of a system
development methodology will increase system development output and excellence.
45
COIN
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
if (!coinEnabled) return;
coinEnabled = false;
OnCoinTaken?.Invoke(coinValue);
Destroy(gameObject);
AudioSource.PlayClipAtPoint(coinSound, Camera.main.transform.position);
46
ENEMY
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
void Update()
Move();
void Move()
HorizontalFlip();
47
}
}
}
48
GAME SESSION
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
void Start()
{
Menu.OnLoadMainMenu += SessionOver;
Coin.OnCoinTaken += IncreaseScore;
Player.OnPlayerDeath += HandlePlayerDeath;
livesText.text = playerLives.ToString();
scoreText.text = score.ToString();
}
49
void OnDestroy()
{
Menu.OnLoadMainMenu -= SessionOver;
Coin.OnCoinTaken -= IncreaseScore;
Player.OnPlayerDeath -= HandlePlayerDeath;
}
void SessionOver()
{
Destroy(gameObject);
}
void HandlePlayerDeath()
{
StartCoroutine(PlayerDied());
}
IEnumerator PlayerDied()
{
yield return new WaitForSeconds(delayAfterDeath);
if (playerLives > 1)
{
playerLives--;
livesText.text = playerLives.ToString();
livesText.color = colors[playerLives - 1];
healthImage.color = colors[playerLives - 1];
50
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}
else
{
OnFinalDeath?.Invoke();
SceneManager.LoadScene(0);
Destroy(gameObject);
}
}
}
51
LEVEL EXIT
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
IEnumerator LoadNextLevel()
{
Time.timeScale = levelExitSlowMo;
yield return new WaitForSeconds(levelLoadDelay);
Time.timeScale = 1f;
OnLevelFinished?.Invoke();
52
int nextSceneIndex = SceneManager.GetActiveScene().buildIndex + 1;
print(nextSceneIndex);
print(SceneManager.sceneCountInBuildSettings);
if (nextSceneIndex == SceneManager.sceneCountInBuildSettings - 1)
OnVictoryScreenReached?.Invoke();
SceneManager.LoadScene(nextSceneIndex);
}
}
53
MENU
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
54
}
MUSIC PLAYER
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
void Start()
{
LevelExit.OnVictoryScreenReached += HandleVictoryScreenReached;
Menu.OnLoadMainMenu += HandleLoadingMainMenu;
}
void OnDestroy()
{
LevelExit.OnVictoryScreenReached -= HandleVictoryScreenReached;
Menu.OnLoadMainMenu += HandleLoadingMainMenu;
}
void HandleVictoryScreenReached()
{
55
audioSource.clip = victory;
audioSource.Play();
}
void HandleLoadingMainMenu()
{
audioSource.clip =
cave;
audioSource.Play();
}
}
56
PLAYER
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
void Start()
{
gravityScaleOffLadder = rb.gravityScale;
}
void Update()
{
if (!isAlive) return;
57
playerHasHorizontalSpeed = Mathf.Abs(rb.velocity.x) > Mathf.Epsilon;
Run();
ClimbLadder();
if (playerHasHorizontalSpeed) FlipSprite();
if (Input.GetButtonDown("Jump")
&& feetCollider.IsTouchingLayers(LayerMask.GetMask("Ground"))) Jump();
if (bodyCollider.IsTouchingLayers(LayerMask.GetMask("Enemy", "Hazards"))) Die();
}
void Die()
{
anim.SetTrigger("death");
if (transform.localScale.x > 0) rb.velocity = new Vector2(-deathKickX, deathKickY);
else rb.velocity = new Vector2(deathKickX, deathKickY);
isAlive = false;
OnPlayerDeath?.Invoke();
}
void Run()
{
rb.velocity = new Vector2(runSpeed * Input.GetAxis("Horizontal"), rb.velocity.y);
anim.SetBool("running", playerHasHorizontalSpeed);
}
void Jump()
{
rb.velocity += new Vector2(0f, jumpSpeed);
}
void FlipSprite()
{
transform.localScale = new Vector2(Mathf.Sign(rb.velocity.x), 1);
58
}
void ClimbLadder()
{
if (!feetCollider.IsTouchingLayers(LayerMask.GetMask("Climbing")))
{
rb.gravityScale = gravityScaleOffLadder;
anim.SetBool("climbing", false);
return;
}
rb.velocity = new Vector2(rb.velocity.x, Input.GetAxis("Vertical") * climbSpeed);
rb.gravityScale = 0f;
bool playerHasVerticalSpeed = Mathf.Abs(rb.velocity.y) > Mathf.Epsilon;
anim.SetBool("climbing", playerHasVerticalSpeed);
}
}
59
SCREEN PERSIST
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
void OnDestroy()
{
LevelExit.OnLevelFinished -= LevelFinished;
GameSession.OnFinalDeath -= LevelFinished;
}
void LevelFinished()
{
Destroy(gameObject);
}
}
60
SINGLETON
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
61
VERTICAL SCROOL
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
void Update()
{
float yMove = scrollRate * Time.deltaTime;
transform.Translate(new Vector2(0f, yMove));
}
}
62
CHAPTER 6: SYSTEM IMPLEMENTATION
The software implementation stage involves the transformation of the software technical data
package (TDP) into one or more fabricated, integrated, and tested software
configuration items that are ready for software acceptance testing. The primary activities of
software implementation include the:
Software implementation of the framework for the template-based modelling includes several
libraries, which provide building blocks for the templates.
63
COIN PICKUP
64
DEATH
Value of player’s life decreased as soon as he dies with the color slowly turning to red after
each death.
65
66
67
CLIMBING LADDER
Character will climb up the ladder by pressing the up-control key and will slowly fall down
when the character is left idle.
68
LEVEL EXIT
After the touching the Next Level icon at the end of the level, the games load to the next
level.
69
GAME END
The game will send you to the Main Menu after you lose all your lives.
70
CHAPTER 7: SYSTEM TESTING
Game Testing is a software testing process for testing video games for quality control. The
main goal of Game testing is to identify and discover defects and bugs in a video game and
improve the stability and performance. Game testing is a component of game development
that helps to ensure the video game to be deployed is bug-free.
71
Pre- Production: During this stage Game idea, storyboard, features, requirement analysis,
and documentation is done. This phase includes technical design document and feature
specifications, game architecture, frame overlay, animation. Following items are considered
Music, Camera (zoom in and out, replay, cinematic view,) player and action attributes
Game flow logic, Rules, and condition to attain the next level
Object & event triggers, scores, player movement and positioning, player statistics,
Non-Interactive sequence, Special effects, title screens, multi-button actions
Gamepad, movie clip, shock/vibration effects, legal texts, use of button functions, use
of analog &digital mode.
72
The game logics, camera, Music are working alright after the pre-production test, game
movements are also working alright after the pre-production test. Some Screenshots are
presented by the tester.
73
74
Functional Testing:
Functionality QA testers look for the generic problems within the game or its user interface &
graphics, such as game mechanic issues, stability issues, and game asset integrity. User
interface testing ensures user-friendliness of the game
Example: Checking colors and backgrounds, menu structure, screen orientation and screen
resolution, font size, alignment errors, usability, system navigation such as loading time,
timeout and display, sorting, confirmation messages, sequences, animations and audio
elements aspects of the game, instructions, and dialogue messages. User Interactions, User
Interfaces, Transactions testing, Calibration and accuracy testing of mobile phone cameras,
Screen resolutions, Mobile responsive design testing, Audio quality Testing.
No stability issues were found during the Functional testing the game was running
smoothly as unity as a platform is quite stable to handle a platformer game.
Compatibility Testing:
75
Checking if the game is compatible across different devices, and on different configurations
of hardware and software.
As per now game is only compatible for PC users for available for every version of
Windows.
Performance Testing
Response time on client and servers, Transaction completion time(s), Peak load
performance, Longevity, network coverage, Memory leakage, low memory, low
battery, Time taken to download applications, simultaneous (Multiple users) access to
application’s server, speed, throughput, reliability, scalability, etc.
Currently it is not connected to a server or a database so we are not able to check its
response time but surely it will not have any issue in the future.
76
Battery Consumption and graphics performance: Measure the battery
consumption of the mobile game. Battery Consumption must be optimum over long
hours, and game responses should be satisfactory under varying heavy loads across
different devices.
As it is a 2d platformer game its battery consumption has been seen quite minimal.
Processor and memory constraints: Performance counters are used to measure the
CPU and memory consumption of the application.
Network connectivity: Measures the response time of the mobile games on different
network types (Wi-Fi, 2G, 3G, 4G), It gives an overall insight into how well the game
will perform on unreliable networks. It also checks connectivity between mobile
devices, data centers or the cloud. The whole Peak Times, Jittery Connections,
Duplication of Data, Packet loss, Fragmentation of Data are monitored.
There are other types of testing we can also perform such as: -
Marketplace guidelines compliance (e.g., Apple App Store policies), Enterprise policy
compliance (e.g., prohibited content. Compliance may also refer to regulatory bodies such as
PEGI and ESRB. The game targets a particular content rating. If there is an objectionable
content that is inappropriate for the desired rating, then they are identified and reported. Even
a single violation in submission for license approval may have the game rejected, incurring
additional costs in further testing and resubmission.
77
Example: If the game is to be published in European countries, test for PAL conversion if the
game is produced for Northern America, test for NTSC conversions.
Localization testing
Localization testing becomes essential important when a game is targeted for the global
markets. Game titles, content, and texts need to be translated and tested with devices in
multiple languages. These types of tests can be performed quickly (with the help of cloud-
based device access and test automation).
Example: Localization needs specific to MENA region (Middle East/North Africa), Arabic
localization (Right-to-Left text support, Bi-Directional displays), Pseudo-localization testing,
double-byte characters (for East Asian languages), local time/date, currency, address formats,
and other local requirements.
Soak testing
This game automation testing involves leaving the game running for a prolonged period
in various modes of operation. For example, idling paused, or at the title screen. Soaking
can identify memory leaks or rounding errors.
Example: Game has begun, and the character is made to stand idle for 24 hours. This
technique is used to detect crashes brought on by memory leaks and other faults in the game
engine.
Recovery testing
In software, recovery testing checks how well the application can be recovered from
crashes, hardware failures, and other similar failures. The application is forced to fail, and
later it will be observed how it recovers from the failure conditions and the environment.
Example: While a gaming application is running, suddenly restart the gaming console,
& check the validate the data integrity
78
Security testing
It is done to check how safe the software works from external threats. Data protection from
external threats, uncontrolled system access restrictions, data breach, operating system? aws,
communication system? aws and weak encryption algorithms.
Example: Changing a URL from /login to /play on a gaming site should not allow direct
access to the games.
White-box testing
White Box Testing for Games focuses on the architectural, integration and system aspects of
the mobile game.
DAU/MAU (Daily active users/monthly active users): The ratio of active users who play
each day over the number of monthly active users. Also commonly referred to as the
stickiness factor.
79
Session: Every time any user opens the app, that counts as a session. Here the focus is on the
average number of sessions per DAU.
Download Rank: The rank of a game in a particular app store (iOS, Android Play) by
monthly game downloads.
Retention: Very important metric for an android game tester for a free to play game. To
calculate retention, separate the users into cohorts based on the day the application was
downloaded.
Performance metrics: This is for tracking the performance of the online games or persistent
games. Frame rate at which a game executes on a client hardware platform, or in the case of a
game server, its stability and Performance metrics can be used to monitor changing features
and updates.
1. The game does not create compelling experiences for the targeted audience.
2. The game does not have a player-centric design
3. The fun factor and addictive gameplay missing in the games.
4. Game not unique, competitive, fast paced.
5. The game fails because of technical issues, broken features, critical bugs, bad music
sound, and poor video.
6. Game development cost goes over budget
7. The game should have simple aesthetic design and the gameplay.
80
CHAPTER 8: FUTURE SCOPE
2D Platformer Games like Dungeon Explorer will achieve a lot in terms of look and feel to
meet the aspirations of gamers across the globe. From using advanced tools and technologies
to creating impressive visuals, 2D gaming content can be diverse and from multiple genres.
Readymade Assets: Like any other game development platform, 2D games also rely a lot on
their assets to attract and retain gamers for long. The assets are to be developed as per the
concepts and logic of the games. Hence a lot of time and effort is required to maintain the
proposed quality, features, and functionalities.
Cross-platform Ability: A popular 2D game development company working with Unity, can
provide you the benefits of cross-platform technology to make your games prominent and
popular. With one-time coding, you can make your games accessible across devices and
operating systems. This technique helps you to serve your targeted players sooner than the
competitors.
Strong Tutorials: Like any other professionals, game developers also need to stay updated
with prevailing trends and practices. Unity’s tutorials are being updated frequently to bring
in the much-needed transformation in the gaming experience and to ensure loyalty and
satisfaction among gaming enthusiasts.
81
Growing Community: Unity boasts of a vast community that is still expanding, and from this
place, developers can avail prompt solutions to resolve issues that are hampering the smooth
flow and progress of the developmental tasks. There are plenty of 2D game development
services available to make your games stunning and lively.
In the future, the game (Dungeon Explorer) may be able to have a database system which
will contain all the high scores that have been achieved while playing the game. Upon
entering a new entry, the previous one will be overwritten and all the high scores ranked
from 1-5 or 1- 10 will be saved in the database. In addition to the game itself being uploaded
to a website, users from all over the world will be able to access and participate in the game.
This will be available for everyone to enjoy and play. There will also be a checkpoint
system that will be incorporated into the game. Furthermore, the check points will provide a
save point for the game in addition to the database. This save point will be saved in the
database, and the user can always resume from the point at which the last check point was
entered.
82
REFFERENCES
https://mail2sanjeetprakash.medium.com/how-bright-is-the-future-
of-2d-games-fb9dfc11ae4d
https://unity.com/
https://ecampusontario.pressbooks.pub/gamedesigndevelopmentte
xtbook/chapter/what-is-a-game-designer/
https://whimsical.com/a
https://www.geeksforgeeks.org/top-5-sdlcsoftware-developement-
life-cycle-methodologies/?ref=gcse
https://www.techtarget.com/searchcio/definition/Prototyping-
Model
83