Final Group Project of Game Development
Final Group Project of Game Development
(Game Development)
In partial fulfillment of the requirements for the award of the degree of Bachelor of Computer
Application
Submitted By:
1. Minshu Kumar (A4530482281)
2. Himanshu Dubey (A4530482280)
3. Piyush Prakhar (A4530482268)
1
CERTIFICATE OF ORIGINALITY
is an authentic and original work carried out by the following students under my supervision:-
The matter embodied in this project work has not been submitted earlier for award of any degree or
diploma to the best of my knowledge and belief
……………………………………..
(Signature of the guide)
Date……………………………
Name………………………….
Designation…………………
2
GUIDE’s CERTIFICATE
is an authentic and original work carried out by the following students under my supervision:-
……………………………………..
(Signature of the guide)
Date……………………………
Name………………………….
Designation…………………
3
CERTIFICATE OF TRAINING
4
DECLARATION
We hereby declare that the project report entitled “SINI’S REVENGE” submitted to
Amity Institute of Information Technology, Amity University, Patna in partial
fulfilment of the requirement for the award for the degree of BACHELOR OF
COMPUTER APPLICATIONS (BCA) , is an authentic and original work carried out by
us, under the supervision of our guide Mr. Abhinav Sahay. The matter embodied in
this project is a genuine work done by us and has not been submitted whether to
this institute or to any other University / Institute for the fulfilment of the
requirements of any course of study.
We have used materials from other sources or have quoted written materials, We
have given due credit to them by giving their details in the references section.
5
ACKNOWLEDGEMENT
This project being an enormous piece of work happens to be the outcome of time, hard
work, and patience of a multitude and was unfeasible to accomplish single-handedly it. I
feel and express our gratitude to AMITY UNIVERSITY, PATNA for giving me a strong
foundation and infinite opportunities to harness our/my skills. This esteemed institute,
under the proficientadministration of Respected VC sir Dr. Vivekanand Pandey has been
providing a nurturing environment to all its disciples for growing.
I took on this task with assurance coming from our HOD Dr. Rashmi Shekhar and the
unremitting guidance and support of my mentor Prof. Abhinav Sahay. Their direction and
tutorial skills were the stimuli behind the completion of this project. I thank all the faculty
members of the AIIT Department for entrusting me with my potential.
Our parents, being the source of inspiration and encouragement all the time deserve our/my
indebtedness. I/we must mention our/ my friends and family who stood there as a
backbone.
Date: ….………………
6
TABLE OF CONTENTS
1 Abstract 8
5 Graphics and UI 12
7 All assets 16
11 Source code 26
12 Conclusion 27
13 Limitation 28
14 Future Scope 29
15 Refrences 30
7
ABSTRACT
8
Introduction: -
In this game, Sini is a player who has been reborn in a middle-class family. He has a car, and he came to
know about a game race in which he can get the chance to win a large cash prize. So, he decided, to participate
in that race with his car.
Objective: -
The main objective of the game is to win the car races and advance through different levels while completing side
quests for revenge. The goal is for revenge on his king in this 2 nd car racing championship.
Equipment Required: -
GAME BRIEF: -
My Game Theme is Car Racing with Points Collection Within a Given time interval.
In this game, I have created 3 levels.
In 1st level - the first task is to start the car and collect the coins within a given time if all coins are collected then the
car is moved to level 2.
and 2nd level - the player's task is to pick up any component to its source and then move to level 3.
and 3rd level - the player task is which component used to pick up in level 2 that component moves into its destination.
NARRATIVE BRIEF: -
Once upon a time there lived a king and one of his subjects was very pious, that person was murdered by one of the
king's soldiers, and that person was reborn into a middle-class family whose name is Sini, he has a car and he came to
know from somewhere that a game of car racing is going on, so he also decided to participate in the car race as he was
also passionate about racing. He participates in the race and wins it. He remembered some of the memory of his
previous life, and the face of that person who has killed was known to him.
Sini finds detailed information about that guy, and he came to know that he is an experienced car racer who is going
to participate in a new car race.
Sini gets the chance to take revenge on that guy. Hence, he participated in another race and killed that guy after
winning that race.
9
GAMEPLAYS: -
2.1 OVERVIEW:
Gameplay will be created using a Keyboard and Mouse as the game will be built for pc use,
so, the keyboard function in this game to play game is to turn right to press the up arrow with the right arrow key.
and turn left to press the up-arrow key with the left arrow key and move forward to press the up-arrow key and
move backward to press the down arrow key.
2.2 LAYOUT:
10
GAME WORLD: -
• The first level of the game is set in a bustling urban environment with streets, buildings,
and cityscapes.
• Players navigate their car through a city filled with skyscrapers, parks, and lakes, creating a
lively and dynamic atmosphere.
• The roads are lined with zebra crossings and sidewalks, adding to the realism of the city
setting.
• Players must collect coins scattered throughout the city streets while avoiding obstacles
like wooden tree trunks
11
GRAPHICS/ART S TYLE/SOUND DESIGN: -
In this game, I have created 3 levels. I have used graphics in 1st level to show greenery areas, buildings, lakes, and trees.
12
Component of the Game: -
1.) 1st Level
5.1 Main Characters of this Game:
1.) CAR –
2.) COINS-
Figure 6-Coins
13
3.) OBSTACLES-
❖ This is 3rd one main component of this game when the car moves onward to a path the suddenly comes against the car. When a car is
collied to this then the score has been decreased.
❖ This is the barrier for homeless boys.
➢ Grass Texture
➢ Mountain Texture
➢ Water Texture
➢ Texture of Zebra Crossing
➢ Coins Texture
14
All Assets:-
1 WOODLAND (Unity Store): This is Asset is used for Bridges, trees…. etc.
2 COLOURCITY (Unity Store): This asset is used for different types of buildings in our 1 st level game.
3 PROMETED Car-Controller (Unity Store): This asset is used for the main player as a car.
Figure 8 - Asset 3
4 FREE DIMENSIONFORGE (Unity Store): This asset is also used for trees, grass, and different types of I have used
from this asset
Figure 9- Asset 4
15
5 SIMPLE NATURE PACK (Unity Store): This asset is used for different types of rocks and mountains in our game .
Figure 10-Asset 5
Figure 11 Asset 6
7 TREES_WORLDSPACE (Unity Store): This asset is used for only colourful trees in our 1st level game.
16
REQUIREMENT ANALYSIS:-
UNITY ENGINE:
• Unity is a popular and versatile game development engine that is widely used in the video game
industry.
• It provides a powerful and flexible platform for creating 2D and 3D games for a variety of platforms,
including PC, mobile devices, consoles, and virtual reality.
• Unity is known for its user-friendly interface, extensive asset store, and strong community support.
C#:
1. Ease of Learning and Use: C# is known for its relatively straightforward syntax, making it accessible for both
beginners and experienced developers. Unity's user-friendly interface and C# scripting make it easier for
game developers to create and manage game logic.
2. Strongly Typed Language: C# is a strongly typed language, which means that it enforces type safety,
reducing the chances of runtime errors and providing more predictable behavior in your code.
3. Unity Integration: Unity was designed with C# in mind, and it has a well-integrated scripting API. This tight
integration allows C# scripts to interact seamlessly with Unity components and objects, simplifying game
development.
4. Productivity: C# provides features like automatic memory management through garbage collection and
powerful libraries. This enables developers to focus on game logic and features rather than low-level
memory management.
5. Object-Oriented: C# is an object-oriented language, which aligns well with the component-based
architecture of Unity. You can easily create reusable and modular scripts for game objects, enhancing code
organization and maintainability.
17
PREPARING YOUR UNITY PROJECT FOR BUILDING IN WINDOWS:-
We need to come to unity and switch platform so that we can build our game for unity The project
should be user friendly interface.
Within Unity, Open the Built settings from the Unity (File>Built Settings).
Highlight Windows from the list of the platform on the left and choose switch platform at the bottom of
the window.
18
FUNCTIONAL REQUIREMENT:
• Physics:
✓ Car Movement Physics: The game simulates realistic car physics, including acceleration,
deceleration, turning, and handling, ensuring the car responds accurately to player input.
✓ Obstacle Collisions: Physics govern how the car interacts with obstacles like wooden tree
trunks, calculating collision forces for realistic impact and reaction.
✓ Coin Collection: Physics are applied to coin collection, managing forces and animations
to simulate the interaction between the car and collected coins.
✓ Speed Boosting: The physics engine controls speed boost mechanics, altering the car's
acceleration and top speed when the player activates it.
✓ Environmental Physics: The game world features physics elements like gravity, terrain
friction, and collision detection for realistic car behavior.
✓ Rigidbody Components: Unity's Rigidbody components enable realistic movement and
collision responses for the car and other game objects.
• User Interface
✓ Main Menu: Start game, settings, high scores.
✓ In-Game HUD: Real-time score, coins, and time.
✓ Pause Menu: Resume, main menu, settings, save/load.
✓ Game Over Screen: Final score and restart options.
✓ Level Progression: Indicators for level and objectives.
✓ Settings and Options: Customization (sound, graphics).
✓ High Scores & Achievements: Leaderboard and achievements.
✓ On-Screen Prompts: Controls and power-up hints.
✓ Visual and Audio Enhancements: Aesthetics and sound effects.
o
• Graphics – In the graphics I have used many assets to make its attractful.
• Camera – The camera will be follow the car movement because camera is align to view with car.
SOFTWARE REQUIREMENTS:
• WINDOWS 7 OR HIGHER(With best graphics card)
• UNITY 5.4 OR LATest version of unity
• Internet Connections
19
Game Mechanics: -
1. Player Control:
• The player controls a Car using input from a keyboard, mouse, or touch controls (depending on
the platform).
2. Coin Collection:
• Coins are scattered throughout the game environment, and the player's goal is to collect them by
moving the Car over them.
3. Obstacles:
• There is one obstacle placed in the road, such as Woodland tree trunks.
• If the player (Car) collides with an obstacle, the player's score is decreased.
4. Score System:
• The score is continually updated during the gameplay and displayed on the screen.
5. Speed Booster:
• It is the most interesting thing in our game if the player (Car) Collects 5 coins.
• then speed is increased for 5s after that cooldown and runs normally.
6. Level Design: -
✓ 1st level: -
• At first, I designed the level at which a player collects the coins, and the score is increased.
• If the player collided with any obstacles, the Score decreased.
• The player collects all the coins in the given time interval and moves to the next level
Otherwise restart the game or quit the game.
✓ 2nd Level: -
• Also, in this level all functionality of Level 1 is present here.
20
✓ 3rd Level: -
• Also, in this level all functionality of Level 1 is present here.
▪ In this level Sini’s motive is to pay some coins (which are collected in 1st and 2nd levels) to
the separated boy.
▪ And leave separately to his family safely.
8. User Interface:
• The game includes a user interface with buttons for starting the game, accessing settings, and
viewing high scores.
• When the player's Car collides with an obstacle, the game displays a "Game Over" screen.
• The player can then choose to restart the game or return to the main menu.
Creating the Car Racing Game in Unity involves using the Unity game engine, scripting in C# for game mechanics,
setting up 3D physics, and creating the game's art and assets.
The game can be extended and customized with additional features, such as power-ups, different tasks, level
selection, and more, depending on the complexity and creativity of the development team.
o In the first level all processes are done in also in the 2 nd level but some extra activity in this level
o Sini (Driver) Search the separated boy with the help of a Car.
o After Searching for the boy, Sini picks up the boy.
21
Winning Picture after finishing level 1: -
22
Uses Of Scripts And Why Uses:-
The "PlayerCtrl2" script is used to control the player's car in your game. It handles the car's
movement, steering, and collision with pick-up items to increase the player's score. When
the player collects a set number of items (14 in this case), the script triggers a win condition
by loading the "win" scene.
The "scriptloader" script is used to change scenes in your game. When a specific event or
condition is met, the changeScene function is called, which loads the "4th Game" scene. This
script is essential for managing scene transitions in your game.
The "scriptloader" script is used to handle collision events in your game. When the player's
car collides with objects tagged as "pick," this script deactivates the object, increases the
player's score, and checks if the score reaches 14. If the score is 14, it triggers a scene
change, likely leading to a win or completion scene in your game.
23
All Source codes:-
1 Player Controller:-
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
// using UnityEngine.InputSystem;
using UnityEngine;
using System.Security.Cryptography;
using System.Threading;
using TMPro;
using UnityEngine.SceneManagement;
void SetCountText()
{
CountText.text = "Score : " + Count;
24
verticalInput = Input.GetAxis("Vertical");
lastPosition = transform.position;
transform.Translate(Vector3.forward * Time.deltaTime * speed * verticalInput);
if (transform.position.z != lastPosition.z)
{
transform.Rotate(Vector3.up, Time.deltaTime * turnspeed * horizontalInput);
}
}
if (Count == 14)
{
SceneManager.LoadScene("win");
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class scriptloader : MonoBehaviour
{
public void changeScene()
{
SceneManager.LoadScene("4th Game");
25
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
if (Count == 14)
{
SceneManager.LoadScene("win");
}
}
}
26
CONCLUSION
In conclusion, the game's narrative revolves around the protagonist, Sini, who embarks on a journey of
revenge after being reborn in a middle-class family. As he enters the world of car racing, the game takes
players through three exciting levels, each with its unique challenges and objectives. Sini's ultimate goal is
to avenge the death of a pious subject in his previous life by defeating an experienced car racer.
The game combines the thrill of car racing with the pursuit of justice, offering an engaging and immersive
gaming experience. As Sini progresses through the levels, players must collect points, navigate obstacles,
and complete side quests. This narrative-driven gameplay adds depth and motivation to the racing
adventure.
The story of Sini's transformation from an ordinary individual into a skilled racer seeking revenge adds a
compelling layer to the game's theme. Players can experience the excitement of racing while uncovering
the mysteries of Sini's past and fulfilling his quest for retribution.
27
LIMITATIONS
1. Complexity vs. Accessibility: The game's narrative, which involves a character seeking revenge,
might not be suitable for all audiences. It could limit the game's appeal to a specific demographic
and may not be suitable for younger players.
2. Storytelling Execution: Implementing a compelling and emotionally engaging revenge narrative
within a car racing game can be challenging. Maintaining a balance between gameplay and
storytelling is essential to avoid overwhelming players with a complex plot.
3. Game Balance: Balancing the game's difficulty, particularly in the context of collecting points, can
be tricky. Players may find the game frustrating if it's too challenging or, conversely, too easy.
Finding the right difficulty curve is crucial.
4. Replayability: Depending on the game's content, players may have limited reasons to replay it
once they've completed all levels and objectives. Ensuring replayability through additional
challenges or content is important.
5. Resource Requirements: Developing a game with detailed 3D graphics, multiple levels, and an
immersive narrative can demand significant time and resources. The game's scope and complexity
may be limited by available resources.
6. Audience Appeal: The game's narrative may limit its appeal to a specific audience interested in
both racing games and revenge-driven plots. It's essential to identify and target the right
audience.
7. Technical Challenges: Developing a game with multiple levels, advanced physics, and animations
can introduce technical challenges. Ensuring smooth performance and minimizing bugs can be
time-consuming.
8. Testing and Feedback: Gathering player feedback and conducting thorough testing is crucial for
addressing potential issues and ensuring that the game's narrative and mechanics resonate with
players.
In summary, while the revenge plot and car racing theme offer exciting possibilities, the game's success
will depend on addressing these limitations and finding a balance between engaging storytelling and
enjoyable gameplay.
28
FUTURE SCOPE
1. Additional Levels: You can add more levels with diverse challenges, environments, and
objectives, keeping players engaged for longer.
2. Enhanced Graphics: Improved 3D graphics and visual effects can make the game more
immersive and attractive.
3. Multiplayer Mode: Introducing a multiplayer mode would allow players to race against each
other, adding a competitive aspect to the game.
4. Customization: Allowing players to customize their cars, characters, and even create their own
tracks can enhance the game's appeal.
5. Power-Ups and Abilities: Incorporating power-ups and special abilities can make the gameplay
more dynamic and exciting.
6. Leaderboards and Achievements: Implementing leaderboards and achievements can motivate
players to compete and achieve in-game milestones.
7. Story Expansion: Expanding the revenge-driven narrative with twists, turns, and character
development can make the story more compelling.
8. Mobile Port: Adapting the game for mobile platforms can tap into a larger gaming audience.
9. Virtual Reality (VR) Support: Exploring VR compatibility can offer a more immersive racing
experience.
10. Community Engagement: Building an active gaming community through forums, social media,
and user-generated content can foster a dedicated player base.
11. Downloadable Content (DLC): Creating additional content packs or DLC can extend the game's
life and generate revenue.
12. Monetization Strategies: Exploring various monetization methods, such as in-app purchases,
can help support ongoing development.
13. Feedback Integration: Continuously gathering and incorporating player feedback can lead to a
game that better meets player expectations.
The future scope of the game lies in adapting to player preferences and evolving gaming trends, ensuring
it remains engaging and competitive in the ever-growing gaming industry.
29
REFERENCES
❖ Kim, Sung Lae, et al. "Using Unity 3D to facilitate mobile augmented reality game
development." 2014 IEEE World Forum on Internet of Things (WF-IoT). IEEE, 2014.
https://ieeexplore.ieee.org/abstract/document/6803110
❖ Goldstone, Will. Unity game development essentials. Packt Publishing Ltd, 2009.
https://www.packtpub.com/product/unity-game-development-essentials
❖ Kuznetsov, Vladyslav S., et al. "Using Unity to teach game development." Journal of
Physics: Conference Series. 2021. Ball, D. "Artists as Assets: Labor and Capital in the
Unity Asset Store." (2022).
❖ https://www.pexels.com/search/gaming/
❖ https://www.freepik.com/free-photos-vectors/low-poly-texture
30