0% found this document useful (0 votes)
49 views

Dungeon Explorer File

The system requirements for Dungeon Explorer include Windows 7 or later, macOS High Sierra or later, or Linux distributions with X64 architecture and SSE2 support. A graphics card capable of DX10, DX11, DX12, Metal or OpenGL 3.2 is required. The game also requires a CPU with X64 architecture and SSE2 instruction set support.

Uploaded by

Sherodhi Sharma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
49 views

Dungeon Explorer File

The system requirements for Dungeon Explorer include Windows 7 or later, macOS High Sierra or later, or Linux distributions with X64 architecture and SSE2 support. A graphics card capable of DX10, DX11, DX12, Metal or OpenGL 3.2 is required. The game also requires a CPU with X64 architecture and SSE2 instruction set support.

Uploaded by

Sherodhi Sharma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 83

A MINOR PROJECT REPORT ON

Dungeon Explorer (2D Platformer Game)


Submitted in partial fulfilment of the requirements
for the award of the degree of

BACHELOR OF COMPUTER APPLICATIONS


to

Guru Gobind Singh Indraprastha University, Delhi

Under the Guidance of Submitted by


Sherodhi Sharma: - 03724002020
Dr.Surabhi Shankar Muskan: - 02824002020
Associate Professor BCA, 6th Semester, 2nd Shift

Session 2022 – 2023

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

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

To Whom It May Concern

• _We Sherodhi Sharma and Muskan , Enrolment No. 03724002020 and


02824002020 from BCA-VI Semester of the Trinity Institute of Professional Studies,
Delhi hereby declare that the Major Project Report entitled Dungeon Explorer (2D Platformer
Game_is an original work and the same has not been submitted to any other Institute for the
award of any other degree.

Date: Signature of the Student

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.

Date: Signature of the Guide


Name of the Guide:
Designation:

2
CONTENTS

S No Topic Page No

• Certificate (s) -

• Acknowledgements -

• List of Tables -

• List of Figures -

• List of Abbreviations -

• Chapter-1: Introduction 5-6

• Chapter-2: Systems Requirement Analysis 7

• Chapter-3: Systems Feasibility Study 8

• Chapter-4: Systems Design 9-24

• Chapter-5: Systems Development (Coding) 25-42

• Chapter-6: Systems Implementation (Screen shots) 43-50

• Chapter-7: Systems Testing 51-60

• Chapter-8: Future Scope 61-62

• References 63

3
LIST OF TABLES:

Table No Title Page No


1 System Requirements 6
2 System Requirements of Windows 53
3 Memory Usage and Disk Usage 54

LIST OF FIGURES:

Figure No Title Page No


1 DFD Level 0 10
2 DFD Level 1 11
3 Rule Tile Game Physics 14

LIST OF ABBREVIATIONS:

S No Abbreviated Name Full name


1 DX Direct X
2 SSE Streaming SIMD Extensions
3 GPU Graphical Processing Unit
4 OS Operating System
5 TDP Technical Data Package
6 2D 2 Dimensional
7 CI Configuration Item

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

Operating Windows 7 High Sierra Ubuntu 20.04, Ubuntu 18.04, and


system (SP1+), 10.13+ CentOS 7
version Windows
10 and
Windows
11, 64-bit
versions
only.

CPU X64 X64 X64 architecture with SSE2 instruction


architecture architecture set support
with SSE2 with SSE2
instruction instruction
set support set support

Graphics DX10, Metal- OpenGL 3.2+ or Vulkan-capable,


API DX11, and capable Nvidia and AMD GPUs.
DX12- Intel and
capable AMD GPUs
GPUs

Additional Hardware Apple Gnome desktop environment running


requirements vendor officially on top of X11 windowing system,
officially supported Nvidia official proprietary graphics
supported drivers driver or AMD Mesa graphics driver.
drivers Other configuration and user
environment as provided stock with the
supported distribution (Kernel,
Compositor, etc.)

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.

Types of Feasibility Study:

• 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

right by pressing the right arrow key.

The components that we used in character’s development are as follows

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.

The components we used for Camera are as follows.

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

The coin will automatically destroy after it get collected.

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.

The two obstacles: -

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)

Systems development is the procedure of defining, designing, testing, and implementing a


new software application or program. It comprises of the internal development of customized
systems, the establishment of database systems, or the attainment of third party developed
software. In this system, written standards and techniques must monitor all information
systems processing functions. The management of company must describe and execute
standards and embrace suitable system development life cycle practise that manage the
process of developing, acquiring, implementing, and maintaining computerized information
systems and associated technology.

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;

public class Coin : MonoBehaviour

[SerializeField] AudioClip coinSound;

[SerializeField] int coinValue = 100;

bool coinEnabled = true;

public static event Action<int> OnCoinTaken;

void OnTriggerEnter2D(Collider2D collision)

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;

public class Enemy : MonoBehaviour

[SerializeField] float moveSpeed = 1f;

[SerializeField] Rigidbody2D rb;

void Update()

Move();

void Move()

if (transform.localScale.x > 0) rb.velocity = new Vector2(moveSpeed, 0f);

else rb.velocity = new Vector2(-moveSpeed, 0f);

void OnTriggerExit2D(Collider2D collision)

HorizontalFlip();
47
}

private void HorizontalFlip()

transform.localScale = new Vector2(-Mathf.Sign(rb.velocity.x), 1f);

}
}

48
GAME SESSION

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class GameSession : Singleton


{
[SerializeField] int playerLives = 3, score = 0;
[SerializeField] float delayAfterDeath = 1f;
[SerializeField] Text livesText, scoreText;
[SerializeField] Image healthImage;
[SerializeField] Color[] colors;

public static event Action OnFinalDeath;

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 IncreaseScore(int value)


{
score += value;
if (scoreText) scoreText.text = score.ToString();
}

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;

public class LevelExit : MonoBehaviour


{
[SerializeField] float levelLoadDelay = 1f, levelExitSlowMo = 0.2f;

public static event Action OnLevelFinished;


public static event Action OnVictoryScreenReached;

void OnTriggerEnter2D(Collider2D collision)


{
StartCoroutine(LoadNextLevel());
}

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;

public class Menu : MonoBehaviour


{
public static event Action OnLoadMainMenu;

public void StartFirstLevel()


{
SceneManager.LoadScene(1);
}

public void LoadMainMenu()


{
OnLoadMainMenu?.Invoke();
SceneManager.LoadScene(0);
}

public void QuitGame()


{
Application.Quit();
}

54
}

MUSIC PLAYER

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class MusicPlayer : Singleton


{
[SerializeField] AudioSource audioSource;
[SerializeField] AudioClip cave, victory;

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;

public class Player : MonoBehaviour


{
[SerializeField] float runSpeed = 5f, jumpSpeed = 28f, climbSpeed=5f;
[SerializeField] float deathKickX = 10f, deathKickY = 10f;
[SerializeField] Rigidbody2D rb;
[SerializeField] Animator anim;
[SerializeField] CapsuleCollider2D bodyCollider;
[SerializeField] BoxCollider2D feetCollider;
bool isAlive = true, playerHasHorizontalSpeed;
float gravityScaleOffLadder;

public static event Action OnPlayerDeath;

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;

public class ScenePersist : Singleton


{
void Start()
{
LevelExit.OnLevelFinished += LevelFinished;
GameSession.OnFinalDeath += LevelFinished;
}

void OnDestroy()
{
LevelExit.OnLevelFinished -= LevelFinished;
GameSession.OnFinalDeath -= LevelFinished;
}

void LevelFinished()
{
Destroy(gameObject);
}
}

60
SINGLETON

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Singleton : MonoBehaviour


{
void Awake()
{
int numOfScenePersists = FindObjectsOfType(GetType()).Length;
if (numOfScenePersists > 1) Destroy(gameObject);
else DontDestroyOnLoad(gameObject);
}
}

61
VERTICAL SCROOL

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class VerticalScroll : MonoBehaviour


{
[Tooltip ("Game units per second")]
[SerializeField] float scrollRate = 0.2f;

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:

 Fabrication of software units to satisfy structural unit specifications.

 Assembly, integration, and testing of software components into a software


configuration item.
 Prototyping challenging software components to resolve implementation risks or
establish a fabrication proof of concept.

 Dry-run acceptance testing procedures to ensure that the procedures are


properly delineated and that the software product (software configuration items
(CIs and computing environment) is ready for acceptance testing.

Software implementation of the framework for the template-based modelling includes several
libraries, which provide building blocks for the templates.

63
COIN PICKUP

Values Changing on score after the coin is picked up.

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

System Testing is a type of software testing that is performed on a complete integrated


system to evaluate the compliance of the system with the corresponding requirements. In
system testing, integration testing passed components are taken as input. The goal of
integration testing is to detect any irregularity between the units that are integrated together.
System testing detects defects within both the integrated units and the whole system. The
result of system testing is the observed behavior of a component or a system when it is tested.
System Testing is carried out on the whole system in the context of either system
requirement specifications or functional requirement specifications or in the context of both.
System testing tests the design and behavior of the system and also the expectations of the
customer. It is performed to test the system beyond the bounds mentioned in the software
requirements specification (SRS). System Testing is basically performed by a testing team
that is independent of the development team that helps to test the quality of the system
impartial. It has both functional and non-functional testing. System Testing is a black-box
testing. System Testing is performed after the integration testing and before the acceptance
testing.

What is Game 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.

Pre- Production Setup: -

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.

 Game assets showed a good integrity.

 Confirmation messages are displaying as we set in the 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

The overall performance of the Game is checked. Performance tuning is performed to


optimize game speed.

Importance parameters checked during 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.

No network is needed right now to play the game.

There are other types of testing we can also perform such as: -

Conformance /Compliance Testing

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.

1. Code Inspection: Source code is reviewed, Program logic &common programming


errors, compliance with coding standards are analyzed.
2. Focus Testing: Chunks of codes are fed to the isolated modules, and the output is
analyzed.
3. Data Analysis: Data usage, interpretation, and manipulation are analyzed
and validated for the different modules.
4. Path and Flow Testing: Correct sequence of objects are executed.
5. Algorithm-specific testing: Testing a particular game scenario or feature by setting
data variables, data values to the code and executing it in the runtime environment.
6. Artificial Intelligence Analysis: The run statistic of the programmable moves and
plays of the AI component is generated. The result is validated to check if all the
programmable moves are used. Example: side grip on the snowboard and plays
(combination punch/kick in multidirectional action) are used.

Game Metrics That a Tester should Know.

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.

Key Risks in Game Testing

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.

Unity is regarded as the most convenient cross-platform game development engine to


enable you to serve a large number of targeted players both avid and casual. These are
some important points to consider when creating a 2D platformer game using Unity.

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

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy