Report PRI Game
Report PRI Game
BACHELOR OF ENGINEERING
IN
(COMPUTER SCIENCE & ENGINEERING)
By:
Ms. Vijaya Adamane
Ms. Anuja Panchariya
Mr. Manav Patil
Ms. Aastha Petkar
Mr. Aniket Tandekar
Prof. C. U. Chauhan
i
CERTIFICATE OF APPROVAL
Certified that the project report entitled “Premier Race India: The Motorsport
Championship” has been successfully completed by Ms. Vijaya Adamane, Ms. Anuja
Panchariya, Ms. Aastha Petkar, Mr. Manav Patil, Mr. Aniket Tandekar under the guidance
of Prof. C. U. Chauhan from Department of Computer Science and Engineering in
recognition to the partial fulfillment for the award of the degree of Bachelor of Engineering in
Computer Science and Engineering, Government College of Engineering, Chandrapur (An
Institution Affiliated to Gondwana University, Gadchiroli).
Prof. C. U. Chauhan
Head Of Department
Department of Computer Science and
Engineering, GCOE Chandrapur
Dr. P. V. Washimkar
Principal
Government College of Engineering Chandrapur
ii
DECLARATION
We certify that
a. The work contained in this project has been done by me under the guidance of
my supervisor(s).
b. The work has not been submitted to any other Institute for any degree or diploma.
c. We have followed the guidelines provided by the Institute in preparing the project
report.
d. We have conformed to the norms and guidelines given in the Ethical Code of
Conduct of the Institute.
e. Whenever we have used materials (data, theoretical analysis, figures, and text)
from other sources, we have given due credit to them by citing them in the text of
the report and giving their details in the references. Further, we have taken
permission from the copyright owners of the sources, whenever necessary.
iii
ACKNOWLEDGEMENT
We would like to extend our special thanks to our Project Coordinator Prof.
Chandrapal U. Chauhan who has helped us directly or indirectly to
complete this project work.
We would also like to thank all our classmates for their valuable suggestions
and helpful discussions and our thanks goes to all the people who have
supported us to complete the research work directly or indirectly.
Finally, we are extremely grateful to our parents for their love, prayers, care
and sacrifices for educating us and preparing us for our future.
iv
INDEX
Abstract…………………………………………………………………....vi
List of Figures…………………………………………………………….vii
Chapter 1: Introduction…………………………………………………….1
1. Overview………………………………………………………….... 1
2. Problem Statement…………………………………………………..1
3. Objective…………………………………………………………….1
Chapter 2: Review of Literature…………………………………………....3
1. Proposed system…………………………………………………….5
2. Survey of technology……………………………………………......5
3. Gameplay Frameworks……………………………………………...6
4. Components…………………………………………………………7
5. Controllers…………………………………………………………..9
6. Materials…………………………………………………………...11
7. Detailed Implementation of Racer Game System…………………14
Chapter 3: Work flow & Methodology…………………………………..19
1. Scripting…………………………………………………………...19
2. UI/UX and Level Designing……………………………………….21
3. Level engineering………………………………………………….25
4. Third-party assets………………………………………………….28
5. Logic and functionality……………………………………………29
6. Integrating model………………………………………………….30
7. Testing, Debugging & Deployment……………………………….31
Results and Discussion…………………………………………………...32
Summary and Conclusions……………………………………………….33
References………………………………………………………………..34
Appendix…………………………………………………………………35
v
ABSTRACT
Game Development is the art of creating games and describes the design, development
and release of a game. It may involve concept generation, design, build, test and release.
While creating a game, it is important to think about the game mechanics, rewards, player
engagement and level design and for game development we will be using the Unreal
Engine 5 which provides a robust toolset that includes advanced graphics, physics, and
animation tools. The engine's tools are incredibly powerful and enable developers to
create high-quality games quickly and efficiently. We will be making an arcade racing
game using UE5s Blueprints. The Blueprint Visual Scripting system in Unreal Engine is
a complete gameplay scripting system based on the concept of using a node-based
interface to create gameplay elements from within Unreal Editor. As with many common
scripting languages, it is used to define object-oriented (OO) classes or objects in the
engine. According to case studies blueprint is a game element introduced in Asphalt
Street Storm Racing and brought over to Asphalt 8: Airborne, Asphalt Xtreme, and
Asphalt 9: Legends and we will be making a racing game with different level maps and
different racing modes.
vi
LIST OF FIGURES
3 3.3.2 Components 8
4 3.4 Blueprints 9
5 3.4.1 Pawn 10
7 3.5 Material 12
vii
22 4.2.4.1 Creating New Level 23
viii
CHAPTER 1. INTRODUCTION
The aim of this project was to design and develop a Car racing game using Unreal Engine
5. The project was undertaken as a final year project for the purpose of demonstrating the
team's ability to apply concepts and techniques learned throughout their degree program.
The game was designed to provide players with an immersive and engaging experience
through the use of realistic environments, challenging mechanics, and smooth gameplay.
1.1 Overview
The project utilized the latest technology and game development techniques, including
the use of Unreal Engine 5, blueprints and third-party assets to create an existing game
that would showcase the team's technical and creative abilities. Racing games are video
genre in which the players participate in the racing competition.
The final product was a fully functional Car Racing game that offered players an
engaging and challenging experience. We are going to cover some key aspects of car
racing game development. Car racing games are popular among gamers of all ages,
offering and thrilling experience of high-speed races and intense competition. To make
low poly simple arcade Indian themed car racing game using Unreal Engine 5, blueprints
and third-party assets with integrated user interface for players to easily navigate menus,
select game modes, and customizable settings.
The project demonstrated the team ability to apply the concepts and techniques learned
during their degree program to create a high-quality game using Unreal Engine 5,
blueprint and third-party assets. The project provided the team with valuable experience
in game development, including planning, design, implementation, and testing, while
also demonstrating their ability to apply technology to create a high-quality game.
1.2 Objectives
The main objectives of this project are:
• To show how the project is developed.
• To show the details of graphics and design.
• To show how the user can interact with car racing games.
• To connect people with racing games.
• To relief stress of people who are too busy in their work.
• To increase the concentration and focus.
1
• The purpose of this project was the creation of an easy to use, pick up and
play game that could be played by all ages as long as they have their PC. I
will also have to learn the fundamentals of game programming and stick to
the life cycle associated with developing games
• The purpose of this game is set up the requirements for the development of
Car Racing Game.
1.3 Scope
• Racing games are typically non-violent, and they can calm stress in a few
different ways. Choosing easy courses that you've raced before or solo test
laps without the pressure of competition brings low stress, and a good
performance is always rewarding. Taking a beautiful car you can't afford for
a scenic ride somewhere you've never been can melt away few worries after
a long day.
• Surprisingly, intense racing can also reduce stress (in the long run). High-
speed racing with close competition a few times each week can train your
brain to decrease signaling that causes increases in adrenaline, sweat and heart
rate. In turn, you will be better able to control yourself in other real world
stressful situations.
• For you dedicated drivers who practice driving lines and aggressive tactics
before facing your competition, mapping out a plan is essential before a race.
Hardware Requirements:
Software Requirements:
2
CHAPTER 2. REVIEW OF LITERATURE
Overview
2.1 R. Kothari, S. Nawar, S. Kothari3, Asst. Prof. J. Jeswani (April 2021), “Game
Development using Artificial Intelligence in Unreal Engine”. IRJET
2.2 Marvin T. Chan, Christine W. Chan, and Craig Gelowitz. (2015). Development of a Car
Racing Simulator Game Using Artificial Intelligence Techniques. International Journal of
Computer Games Technology
Excerpt: This paper presents a car racing simulator game called Racer, in which
the human player races a car against three game-controlled cars in a three-
dimensional environment. The objective of the game is not to defeat the human
player, but to provide the player with a challenging and enjoyable experience. To
ensure that this objective can be accomplished, the game incorporates artificial
intelligence (AI) techniques, which enable the cars to be controlled in a manner that
mimics natural driving. The paper provides a brief history of AI techniques in
games, presents the use of AI techniques in contemporary video games, and
discusses the AI techniques that were implemented in the development of Racer. A
comparison of the AI techniques implemented in the Unity platform with traditional
AI search techniques is also included in the discussion.
2.3 David Michalík, Miroslav Jirgl, Jakub Arm and Petr Fiedler. (2021). Developing
an Unreal Engine 4-Based Vehicle Driving Simulator Applicable in Driver Behavior
Analysis—A Technical Perspective. Safety.
Excerpt: Vehicle safety remains a topic of major interest, and diverse assistance systems
are implemented that focus primarily on analyzing the immediate vicinity of the car and
the driver’s control
inputs. In this paper, by contrast, we emphasize understanding the driver’s control
performance via obtaining valuable data and relevant characteristics. To acquire the data,
we employed an inhouse- designed, laboratory-built vehicle driving simulator. This
simulator exploits the Unreal Engine 4 framework to deliver a high level of realism.
3
2.4Michael, Jeanny Pragantha, Darius Andana Haris. (2020). Android Arcade-Style
Racing Game “CarsTime” With Antigravitation Theme. IOP Conference Series:
Materials Science and Engineering.
4
CHAPTER 3. PROPOSED SYSTEM
Unreal Engine 5 is a game engine developed by Epic Games, designed for creating
high-quality video games and other interactive applications. It is the latest version of
the popular Unreal Engine, which has been used to develop many successful games
and applications, including Fortnite, Gears of War, Car racing game and Robo Recall.
Unreal Engine 5 is built with the latest technology, including advanced rendering
capabilities, physics simulation, and dynamic lighting, which allow for highly realistic
and immersive experiences. It also includes powerful tools for game development, such
as visual scripting and a robust code editor with support for C++, Python, and other
programming languages.
One of the most notable features of Unreal Engine 5 is its Nanite technology. which
enables developers to create incredibly detailed and complex environments without
sacrificing performance. Nanite allows for real-time rendering of massive amounts of
geometry, making it possible to create highly realistic landscapes and other
environments.
Unreal Engine 5 also includes powerful tools for creating Al and game logic, as well as
tools for creating cinematics, audio, and other elements of the game experience.
Additionally, it includes support for a variety of platforms, including PC, console, and
mobile devices.
This system is extremely flexible and powerful as it provides the ability for designers
to use virtually the full range of concepts and tools generally only available to
programmers. In addition, Blueprint-specific markup available in Unreal Engine's C++
implementation enables programmers to create baseline systems that can be extended
by designers.
The Blueprint Visual Scripting system in Unreal Engine is a complete gameplay scripting
system based on the concept of using a node-based interface to create gameplay elements
from within Unreal Editor.
5
As with many common scripting languages, it is used to define object-oriented (OO)
classes or objects in the engine. As you use Unreal, you'll often find that objects defined
using Blueprint are colloquially referred to as just "Blueprints."
This system is extremely flexible and powerful as it provides the ability for designers to
use virtually the full range of concepts and tools generally only available to programmers.
In addition, Blueprint-specific markup available in Unreal Engine's C++ implementation
enables programmers to create baseline systems that can be extended by designers.
▪ Actors are the base class for an Object that can be placed or spawned in a level.
Actors may contain a collection of Actor Components, which can be used to control
how actors move, and how they are rendered. Actors support the replication
of properties and function calls across the network during play.
▪ Cameras represent the player's point of view, such as how the player sees the world.
The Player-Controller specifies a camera class and instantiates a Camera
Actor which is used to calculate the position and orientation the player views the
world from.
▪ The Pawn class is the base class of all Actors that can be controlled by players or
AI. A Pawn is the physical representation of a player or AI entity within the world.
A Character is a special type of Pawn that has the ability to walk around. By default,
there is a one-to-one relationship between Controllers and Pawns; meaning, each
Controller controls only one Pawn at any given time.
▪ Controllers are non-physical Actors that can possess a Pawn or Pawn-derived class
like a Character to control its actions. A Player Controller is used by human players
to control Pawns, while an AI Controller implements the artificial intelligence for
the Pawns they control. Controllers take control of a Pawn with the Possess function
and give up control of the Pawn with the Unpossessed function.
▪ User Interfaces (UIs) and Heads-up Displays (HUDs) are a way of providing
information about the game to the player and in some cases allowing the player to
interact with the game.
6
These ‘PlayerControllers’ allow players to possess pawns in the game so they can have
physical representations in the level. ‘PlayerControllers’ also give players input controls,
a heads-up display, or HUD, and a ‘PlayerCameraManager’ for handling camera views.
3.3 Components
The Camera represents the player's point of view, such as how the player sees the world.
For this reason, cameras only have relevance to human-controlled players. The Player-
Controller specifies a camera class and instantiates a Camera Actor (AI-Camera-Actor)
which is used to calculate the position and orientation the player views the world from.
For basic examples on how to work with Cameras, refer to Using Cameras. For an
example of how to layer animations onto cameras, refer to the CameraAnim
feature documentation.
All of the camera's behavior and properties are set up in the ‘CameraComponent’.
The ‘CameraActor’ class primarily acts as a wrapper for the ‘CameraComponent’, so that
the camera can be placed directly in the level rather than within another class. When
using a ‘CameraComponent’ in the Editor, you can navigate to Details > Camera
Settings to set whether the camera is in Perspective or Orthographic mode.
7
FIG 3.3.1 CAMERA ACTOR
The vertical field of view (FOV) can be set for perspective mode, and the width in world
units can be set for orthographic mode. For both modes, the aspect ratio can be designated
and preset aspect ratios for common devices and display types are provided.
You can add Post process effects to the camera, and it is possible to scale the strength of
the post process effects.
Actor Component is the base class for all Components. Since Components are the only
way to render meshes and images, implement collision, and play audio, everything the
player sees or interacts with in the world when playing the game is ultimately the work
of some type of Component.
8
There are a few major classes to understand when creating your own Components: Actor
Components, Scene Components, and Primitive Components. Actor
Components (class Actor-Component) are most useful for abstract behaviors such as
movement, inventory or attribute management, and other non-physical concepts. Actor
Components do not have a transform, meaning they do not have any physical location or
rotation in the world.
3.4 Controllers
Controllers are non-physical Actors that can possess a Pawn (or Pawn-derived class like
Character) to control its actions. A Player-Controller is used by human players to control
Pawns, while an AI-Controller implements the artificial intelligence for the Pawns they
control. Controllers take control of a Pawn with the Possess function, and give up control
of the Pawn with the Unpossessed function.
Controllers receive notifications for many of the events occurring for the Pawn they are
controlling. This gives the Controller the opportunity to implement the behavior in
response to this event, intercepting the event and superseding the Pawn's default
behavior. It is possible to make the Controller tick before a given Pawn, which minimizes
latency between input processing and Pawn movement.
3.4.1 Pawn
The Pawn class is the base class of all Actors that can be controlled by players or AI. A
Pawn is the physical representation of a player or AI entity within the world. This not
only means that the Pawn determines what the player or AI entity looks like visually, but
also how it interacts with the world in terms of collisions and other physical interactions.
This can be confusing in certain circumstances as some types of games may not have a
visible player mesh or avatar within the game.
9
Regardless, the Pawn still represents the physical location, rotation, etc. of a player or
entity within the game. A Character is a special type of Pawn that has the ability to walk
around.
FIG.3.4.1 PAWN
Guides and information for artists and programmers creating user interfaces such as
menus and HUDs
The way in which the game communicates and interacts with the player is extremely
important. User Interfaces (UIs) and Heads-up Displays (HUDs) are the games' way of
providing information about the game to the player and in some cases allowing the player
to interact with the game.
Unreal Engine 4 provides multiple means of creating UIs and HUDs. The Canvas class
can be used to draw directly to the screen at a low level, overlaid onto the world.
The game's Interface is used to convey information to the player and provide a means of
prompting the user for directed input. A game interface generally consists of two main
elements: the heads-up display (HUD)
User Interfaces refer to menus and other interactive elements. These elements are usually
drawn overlaid on the screen much like the HUD, but in certain circumstances they could
be part of the game world itself rendered onto a surface in the world. The most obvious
10
examples of UIs are the main menu displayed when the game starts up or the pause menu
shown when the player has paused the game. However, other UIs may be displayed
during play. These could be used to show dialog between characters in the game or in
more complex situations, such as in an RTS or RPG, they may be integral to the game
play itself allowing the player to choose weapons, armor, units to build, etc.
The HUD is the base object for displaying elements overlaid on the screen. Every human-
controlled player in the game has their own instance of the AHUD class which draws to
their individual Viewport. In the case of split screen multiplayer games, multiple
Viewports share the same screen, but each HUD still draws to its own Viewport. The
type, or class, of HUD to use is specified by the game type being used.
If you look closely at the submarine, you’ll see it has a checkerboard on its surface instead
of a proper appearance. To give the submarine color and detail, you will create a material.
What is a Material?
A material determines how the surface of something looks. Fundamentally, a material
defines four elements:
Below is an example of three materials. They have the same color but separate attributes.
Each material has a high value for its respective attribute. The other attributes are set to
zero.
• Base Color: The color or texture of a surface. Used to add detail and color
variations.
• Metallic: How “metal-like” a surface is. Generally, a pure metal will have the
maximum Metallic value whereas fabric will have a value of zero.
• Roughness: A surface with maximum roughness will not have any shininess. It’s
used for surfaces such as rock and wood.
11
FIG. 3.5 MATERIAL
FIG.3.5.1 MATERIAL
Name the material Submarine Material and then double-click the file to open it in the
material editor.
12
FIG.3.5.2 THE MATERIAL EDITOR
Note: If the node isn’t listed, uncheck Context Sensitive at the top right of the menu.
The player-controlled car module consists of four sub modules: (i) the body, (ii) the
wheels, (iii) the heads-up-display (HUD), and (iv) the player controller script. The body
of the car is the 3D model that the player sees in the game environment; this sub module
also contains the colliders, which enable the car to collide with objects in the game
environment. The wheels of the car contain wheel colliders, which enable the wheels to
make contact with the road and drive the car forward. The wheels sub module also
contains a script which animates the rotation of the wheels as the car moves. The HUD
component of the car is controlled by the HUD script, which handles displaying the
current speed, position, and lap of the car to the player. Lastly, the sub module of the
player-controller script, called PlayerCarController, handles the user input from the
keyboard and applies the appropriate steering, accelerating, and braking output levels of
the player-controlled car.
3.6.3 Graphics
14
3.6.4 Lights and Rendering
To capture the very complex behavior of light in the real world so that a computer may
simulate it, relatively simple models are needed. One extensively used idea is to break up
light into three components; ambient, diffuse and specular. The ambient component is
the color of the light that has bounced on the surroundings numerous times before
reaching the destination point whose color is currently being computed. The diffuse
component is the color of the light that contributes to a surface’s base color. Finally, the
specular component is the color of the reflection of light on a surface33.
Since it makes little sense to have a light source with different colors for different material
properties, only one color is normally used for all of light source’s components. However,
the material of a surface is modelled in part by these three components as well. The
diffuse component of a material is lit by the diffuse component of a light. Similar
reasoning holds for the specular and ambient components33.
Another essential part of modelling the behavior of real light is how it is affected when
it comes in contact with a surface. One cannot assume that the light bounces off with the
same angle as the incident angle. More care needs to be taken when dealing with
computer graphics. Of course each individual photon cannot possibly be traced through
the entire scene in real- time with the computational power of a modern computer, and
actually no light is traced in any way by a regular rasterizing renderer22. Instead, when
a fragment of a surface is being rendered, all of the incident light is assumed to come
directly from the light source (except for the ambient light), and the amount of outgoing
light in all directions from the fragment is determined by a BRDF.
15
The BRDF is supposed to capture the surface’s way of scattering the incident light, since
this one point that is being rendered actually represents a small area that may not be
completely flat, which would be a requirement for the light to simply bounce off the
surface with the same angle as the incident angle 30.
FIG 3.6.4.2: THIS BRDF LOBE SHOWS HOW INCIDENT LIGHT CAN
SCATTER NON-UNIFORMLY IN ALL DIRECTIONS
3.6.5 Shadows
Shadows are highly important for a good sense of realism. If objects that occlude the light
would not cast shadows onto other objects in a scene, an observer is likely to quickly pick up
on that something is wrong39. Variance Shadow Mapping40 was selected for computing the
shadows in our game.
Shadow Mapping is a technique commonly used in games to cast shadows. The basic idea is
to record how far the light from a specific source reaches, and then compare this to the length
between the light source and the actual fragment being rendered. More specifically, one starts
with rendering the scene from the view of the light source, but for each pixel, a depth value
is stored instead of a color The texture produced is called a depth map, or more commonly,
shadow map. This means that for any point in the scene, a depth has been recorded in the
direction from the light source approximately to that point, and this depth represents how far
the light reaches towards the point before something stops it. For any point that is closer or
just as close to the light source as the recorded depth, the point must be in light. If on the
other hand, the point is further away from the light source than the recorded depth, this must
mean that some other object is occluding the light, and this point must be in shadow.
16
Fig 3.6.5: POINT P2 IS BEING RENDERED, AND THE DEPTH RECORDED IN
THE DIRECTION FROM THE LIGHT SOURCE TO P2 IS LOOKED UP. THE
DEPTH IN THIS CASE IS THE DISTANCE FROM THE LIGHT SOURCE TO
POINT P1, MEANING THAT THE LIGHT STOPS THERE AND DOESN’T
REACH P2.
When the game has started, for each game update, the players send the position,
orientation (rotation) and velocity of their car to the server. When the server receives this
information from a client, it starts by updating its local re- presentation of the client’s car,
and then forwards the information to all the other clients. And likewise, when the clients
receive player data from the server, they update their local representation of the player
cars with this information.
One problem with multiplayer games on connections with high latency is that it can result
in jittering and jumpy/freezing behavior on data shared over the network. In a racing
game, the car could appear to jump from different positions between frames, because the
position data of the car is taking too long to travel on the network. This however, is solved
by interpolating and taking qualified guesses of the position at each frame, by taking into
account the positions from previous frames.
This implementation worked out smoothly and very straight forward, and from what we
could tell, the interpolation via the physics engine worked surprisingly well.
The timers on the client side filled only a graphical purpose, while the timer on the server
was the only one that could end the game. This was done in such way to avoid sending
to much unnecessary information over the network to just synchronize the clock.
17
FIG 3.6.7: TIME REMAINING COUNTER
3.6.8 Sound
The graphical aspect of the game definitely was one our top priorities, but even though
we focused much on blowing the players’ visual mind, music and sound effects in the
game were also features we wanted to include. We felt that visual effects lost some of its
context without corresponding audio effects, and that sound therefore was necessary in
the game to offer the player a complete experience.
In order to find sound effects that matched the graphical dittos, we had to search through several
different sound banks. The largest sound bank, which provided us with sounds like the electronic
engine, was Digiffects58, a sound bank provided by many companies in different countries,
including Swedish “Ljudproduktion AB”. We also took great use of many public sound banks on
the Internet: FindSounds59, and PacDV60.
Even though we were satisfied with many of the sound effects we found from different
sound banks, we still had problems finding good sound effects for collisions. By
recording our own sound effects, we felt like we were adding a more personal touch to
the game, besides the fact that we needed collision sound effects.
18
CHAPTER 4: WORK FLOW & METHODOLOGY
4 SCRIPTING:
A scripting language or script language is a programming language that is used to
manipulate, customize, and automate the facilities of an existing system. It is usually
interpreted at runtime rather than complied. Scripting languages are also referred to as
very high-level programming languages, as they operate at a high level of abstraction, or
as control languages, particularly for job control languages on mainframes. In this
context, the term script refers to a small program in such a language; typically, contained
in a single file, and no larger than a few thousand lines of code.
19
4.1.2 AI Car Model
It starts with creating a new Blueprint Class for the AI car. It includes setting up
acceleration, steering, braking, and handling for the AI cars, defining checkpoints and
paths for it to follow, and implementing logic for decision-making.
AI cars to act as competitors for the player by adjusting parameters such as speed,
aggression, and skill level to manage overtaking and precision. AI perception is used to
detect nearby obstacles, other vehicles, and track boundaries. These cars learn the path
with each lap and gets better than previous.
20
4.2 UI/UX AND LEVEL DESIGNING:
User interface (UI) engineering is the design of user interfaces for the game, with the
focus on maximizing usability and the user experience. It is a paramount in ensuring
players are fully immersed in the thrilling and fast-paced gameplay. UX encompasses
every aspect of the player's interaction with the game, from the moment they launch it to
the exhilarating moments of crossing the finish line. The handling and responsiveness of
the car controls significantly impact the UX. Precise and intuitive controls allow players
to feel connected to their vehicles
21
FIG 4.2.2.1: TIME REMAINING COUNTER
22
Figure 4.2.3.2: Our created 3D model of Red Fort
By navigating through the menu, selecting "File," then "New Level," and then configured
the various parameters of level like map size, type, spline type, etc. Utilizing the landscape
tool, sculpted the terrain, ensuring it harmonized with our design concept by adjusting its size
and shape accordingly. We also used Gaea for creating height-maps of the desired level.
Illuminated lighting and atmosphere manipulating light sources to evoke specific moods
and atmospheres. Various lighting techniques such as directional lights, point lights,
skyLight, atmospheric fog, clouds were created to balanced brightness and shadows to
accentuate architectural details and enhance visual interest.
23
Figure 4.2.5: Atmospheric Lighting and Fog
Through the integration of static meshes, including rocks, trees, buildings, and various
props sourced from both the Unreal Engine Marketplace and custom-made assets from
external modeling software like Blender and Maya, we enriched the environment,
infusing it with vitality. Foliage and vegetation were placed using the foliage tool,
embellishing the terrain with trees, bushes, grass, and other flora to enhance realism in
respective of their atmosphere.
The changes in texture and smoothness of ground are tempered to give the soil realistic
look so that it will have more quality in players sight and will blur as the distance
24
increases.
Creating Indian-themed levels for a game is an exciting endeavor that allows for the
exploration of India's diverse culture, landscapes, and architecture. Let's elaborate on the
level maps you've created:
25
3. Kashmir Map
1. Delhi Map:
Description: The Delhi Map transports players to the bustling capital city of India,
known for its rich history, vibrant culture, and architectural wonders. The level is divided
into various sections, each representing iconic landmarks and neighborhoods of Delhi.
Key Features: Red Fort Section: Players navigate through the majestic Red Fort, a
UNESCO World Heritage Site, marveling at its imposing red sandstone walls, intricately
carved arches, and lush gardens.
Challenges: Players encounter obstacles such as navigating through crowded streets,
dodging traffic, and overcoming hurdles inspired by Delhi's unique urban landscape.
Visuals: The level features vivid and detailed graphics, showcasing the architectural
beauty, cultural diversity, and dynamic atmosphere of Delhi.
2. Rajasthan Map:
Description: The Rajasthan Map immerses players in the royal state of Rajasthan,
renowned for its majestic forts, opulent palaces, and colorful heritage. The level captures
the essence of Rajasthan's desert landscape, rich history, and vibrant traditions.
Key Features: The palace is a five-story structure, with four floors submerged
underwater when the lake is full. Only the top floor remains above the water level, giving
the palace its distinctive appearance of floating on the lake.
Challenges: Players face obstacles such as traversing rugged terrain, avoiding
sandstorms, and outmaneuvering opponents in camel races inspired by Rajasthan's desert
heritage. Visuals: The level showcases vibrant colors, intricate designs, and ornate
architecture, capturing the opulence, elegance, and grandeur of Rajasthan's royal
heritage.
26
3. Kashmir Map:
Description: The Kashmir Map transports players to the picturesque paradise of
Kashmir, renowned for its breathtaking natural beauty, serene lakes, and snow-capped
mountains. The level offers a serene and tranquil experience amidst lush valleys and
pristine landscapes
Key Features: Dal Lake Tranquility: Player’s glide across the serene waters of Dal Lake,
surrounded by majestic mountains and floating gardens, as they soak in the tranquility
and beauty of Kashmir's iconic lake.
Challenges: Players encounter challenges such as navigating treacherous mountain
paths, overcoming obstacles in snow-covered landscapes, and competing in high-speed
ski races, inspired by the adventurous spirit of Kashmir's outdoor activities.
Visuals: The level features stunning vistas, serene landscapes, and vibrant colors,
capturing the pristine beauty and ethereal charm of Kashmir's natural wonders.
These Indian-themed level maps offer players a captivating journey through India's
diverse landscapes, rich heritage, and cultural landmarks, providing an immersive and
unforgettable gaming experience.
27
4.4 THIRD-PARTY ASSETS:
Third-party assets, which are sourced from outside developers or companies and
integrated into the game to enhance its visual appeal, include 3D models, textures, car
models and race tracks, immersive sound effects and music tracks, or sophisticated code
snippets for gameplay mechanics. We expedite the development process to provide
players with a polished and captivating gaming experience by utilizing these third-party
assets. We used 3D models of trees, rocks, cliffs, billboards, and street maintenance
objects like traffic cones and street lights imported using Quixel-Bridge a Ureal Engine
plugin.
28
FIGURE 4.4.3 3D PLANTS AND TREES FROM QUIXEL-BRIDGE
In game development, logic and functionality are the backbone of creating immersive
and engaging interactive experiences. Logic encompasses the intricate set of rules and
algorithms governing the behavior of the game, dictating everything from player input
responses to win/loss conditions. Developers meticulously design gameplay logic to
ensure a seamless and enjoyable experience, scripting events, defining mechanics, and
implementing artificial intelligence for lifelike character behaviors. On the other hand,
functionality refers to the interactive features that bring the game to life, encompassing
user interfaces, physics engines for realistic movement, sound and music integration, and
networking capabilities for multiplayer experiences. Achieving a delicate balance
between sophisticated logic and smooth functionality is essential to crafting a successful
game, where players are not only challenged by the intricacies of the game world but also
seamlessly immersed in its interactive elements.
29
FIGURE 4.5.2: TIME-RACE LEVEL LOGIC
30
The integration process also involves optimizing models for performance, balancing
visual fidelity with the game's technical requirements. Successful model integration is
essential for delivering a visually captivating and coherent gaming experience, where the
artistry and functionality of these digital assets converge to create a compelling and
interactive virtual world for players to explore.
In game development, the phases of testing, debugging, and deployment are integral to
ensuring a polished and stable gaming experience. Testing involves systematically
evaluating various aspects of the game, including gameplay mechanics, graphics, and
user interfaces, to identify and rectify potential issues. This process encompasses unit
testing for individual components, integration testing to assess the collaboration of
different elements, and user acceptance testing to gauge player experience. Debugging
follows testing, addressing identified issues through the identification and correction of
errors in the source code. Game developers employ debugging tools and techniques to
enhance performance, fix glitches, and refine the overall functionality of the game. Once
testing and debugging are satisfactorily completed, the game is ready for deployment.
Deployment involves packaging the finalized game for distribution across platforms,
ensuring compatibility and adherence to platform-specific guidelines. This phase also
includes considerations for marketing, release strategies, and ongoing support, marking
the culmination of the development cycle and the transition to delivering the gaming
experience to a wider audience. A thorough and well-executed testing, debugging, and
deployment process is crucial for releasing a high- quality and enjoyable game to players
worldwide. We used the V-model of software engineering to develop the PRI.
31
CHAPTER 5. RESULTS & DISCUSION
The development methodology employed for PRI: Premier Race India has yielded
exceptional results, culminating in a polished and immersive gaming experience that
celebrates Indian culture while captivating players with engaging gameplay, stunning
visuals, and seamless functionality across platforms.
The design of intuitive UI/UX elements, including in-game menus and HUDs,
enhances accessibility and ease of navigation, ensuring that players can quickly and
intuitively interact with the game interface. This attention to detail in UI/UX design
contributes to a seamless and immersive gaming experience, keeping players engaged
and immersed in the game world.
The crafting of Indian-themed levels with meticulous attention to detail showcases the
rich cultural heritage and diversity of India, transporting players to iconic destinations
such as Delhi, Rajasthan, and Kashmir. Each level is carefully designed to capture the
distinct allure and splendor of India's landscapes, architecture, and cultural landmarks,
providing players with a visually stunning and culturally immersive experience.
The implementation of logic for gameplay mechanics and functionality ensures that
the game offers a compelling and rewarding experience for players. Whether racing
through the bustling streets of Delhi, navigating the desert terrain of Rajasthan, or
skiing down the snow-capped slopes of Kashmir, players are challenged and
entertained by a variety of gameplay scenarios and challenges.
32
CHAPTER 6. CONCLUSION
33
CHAPTER 7. REFERENCES
• David Michalík, Miroslav Jirgl, Jakub Arm and Petr Fiedler. (2021).
Developing an Unreal Engine 4-Based Vehicle Driving Simulator Applicable
in Driver Behavior Analysis—A Technical Perspective. Safety.
• https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-
5-3- documentation
• https://docs.quadspinner.com/
• https://docs.blender.org/manual/en/latest/
34
CHAPTER 7. APPENDIX
35
7.1 Certificates of Publication
36
Certificate 3. Mr. Manav Patil
37
Certificate 5. Ms. Aastha Petkar
38