Professional Documents
Culture Documents
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
1
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
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
2
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.
3
ACKNOWLEDGEMENT
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.
4
INDEX
1. INTRODUCTION 1
1.1 Overview 1
1.2 Objectives 2
1.3
Purpose And Scope 2
2 REVIEW OF LITERATURE 4
3. SURVEY OF TECHNOLOGIES 6
4. 24
WORK DONE
5. CONCLUSION 45
5
REFERECES 46
7.
6
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 a 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.
Key Words:- Game Development, Unreal Engine 5, Blueprints Visual Scripting, Assets
system.
7
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 is:
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.
8
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:
9
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.
10
2.4Michael, Jeanny Pragantha, Darius Andana Haris. (2020). Android Arcade-
Style Racing Game “CarsTime” With Antigravitation Theme. IOP Conference
Series: Materials Science and Engineering.
11
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.
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 PlayerController 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 UnPossess 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.
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.
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 PlayerController specifies a camera class and instantiates a Camera Actor
(ACameraActor) 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.
14
FIG. 3.3 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.
UActorComponent 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.
Figure 1
15
There are a few major classes to understand when creating your own
Components: Actor Components, Scene Components, and Primitive Components.
Actor Components (class UActorComponent) 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.5 Controllers
Controllers are non-physical Actors that can possess a Pawn (or Pawn-derived class like
Character) to control its actions. A PlayerController is used by human players to control
Pawns, while an AIController 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 Unpossess function.
Figure 2
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.6 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.
16
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.6 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 examples of UIs are the main menu displayed when the game starts up or
17
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 splitscreen 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 gametype being used.
Figure 3
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.
18
FIG. 3.7 MATERIAL
Close the submarine blueprint and return to the Content Drawer, select the Materials
folder and click the green Add button. A menu will appear with a list of assets you can
create. Click Material.
FIG.3.7.1 MATERIAL
Name the material SubmarineMaterial and then double-click the file to open it in the
material editor.
19
FIG.3.7.2 The Material Editor
Open the Submarine Blueprint. To start scripting, switch to the Event Graph tab
.
20
Making an object rotate is so simple you only need to create one node. Right-click a
space on the graph to bring up a menu of available nodes. Search for
AddLocalRotation. Rotate the submarine_Motor component. Select AddLocalRotation
(submarine_Motor).
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.10.3 Graphics
21
3.10.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 colour of the light that has bounced on the surroundings numerous times before
reaching the destination point whose colour is currently being computed. The diffuse
component is the colour of the light that contributes to a surface’s base colour. Finally,
the specular component is the colour of the reflection of light on a surface33.
Since it makes little sense to have a light source with different colours for different
material properties, only one colour 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 behaviour of real light is how it is affected
when it comes in contact with a surface. One can not 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.
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 .
22
Figure: This BRDF lobe shows how incident light can scatter non-
uniformly in all directions
3.10.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 colour 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.
Figure 19: 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 the 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.
23
One problem with multiplayer games on connections with high latency is that it can
result in jittering and jumpy/freezing behaviour 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 to 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.
Until late in the development, we did not have any specific type of game round. More
precisely, the game did not have an end. To solve this, we added a timer that when
reaching zero, ended the game and returned the gamer to the game lobby screen. We
accomplished this by letting each client/server have a timer each, but that was only
started when the server sent a special message.
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.
3.10.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
24
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.
25
CHAPTER 4: Work Flow & METHODOLOGY
4 SCRIPTING:
26
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.
27
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
28
Figure 4.2.2: Time remaining counter
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:
29
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.
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: Players 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.
30
Figure 4.3.2: Rajasthan Map
31
Figure 4.2.2 Original Red Fort -Source Google Maps
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.
32
Figure 4.2.3: Level Landscaping
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.
33
Figure 4.2.5: Plant foliage material
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
increases.
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 behaviour 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 behaviours. On the other hand,
functionality refers to the interactive features that bring the game to life, encompassing
35
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.
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
37
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.
38
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 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.
39
CHAPTER 6. CONCLUSION
In the development journey of PRI: Premier Race India, our methodology was
meticulously crafted to ensure a seamless fusion of captivating gameplay, stunning
visuals, and an immersive celebration of Indian culture. By meticulously setting up
controllers, pawns, and AI behaviors, we crafted a gameplay experience that is not only
smooth and responsive but also deeply engaging for players. The integration of third-
party assets for enhanced visuals and sound effects further elevated the game's
presentation, allowing players to immerse themselves in the vibrant landscapes and
architectural wonders of India. Additionally, our focus on designing intuitive UI/UX
elements ensured that players could effortlessly navigate through in-game menus and
HUDs, enhancing accessibility and overall enjoyment. This meticulous attention to
detail extended to the crafting of Indian-themed levels, where each location—from the
bustling streets of Delhi to the serene valleys of Kashmir—was brought to life with
meticulous attention to detail, providing players with a visually stunning and culturally
immersive experience.
40
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/
41
CHAPTER 7. APPENDIX
42
7.1 Certificates of Publication
43
Certificate 3. Mr. Manav Patil
44
Certificate 5. Ms. Aastha Petkar
45