Major Project Game
Major Project Game
ON
By
SHRADDHA (2102150100080)
SHARMA
NIKHIL KUMAR (2102150100061)
MOHIT KUMAR (2102150100056)
MOHD.ABUZAR (2102150100055)
Submitted to
The Department of Computer Science & Engineering in
partial fulfillment of the requirement
for the degree of
BACHELOR OF TECHNOLOGY
In
COMPUTER SCIENCE &
ENGINEERING
Sanskar College of Engineering & Technology
(Affiliated to Dr. A.P. J Abdul Kalam Technical University, Lucknow)
(Session 2024-25)
A MAJOR PROJECT REPORT
ON
ENDLESS RUNNER GAME
BY
SHRADDHA (2102150100080)
SHARMA
NIKHIL KUMAR (2102150100061)
MOHIT KUMAR (2102150100056)
MOHD.ABUZAR (2102150100055)
BACHELOR OF TECHNOLOGY
In
COMPUTER SCIENCE & ENGINEERING
(II)
TABLE OF CONTENTS
LIST OF FIGURES.......................................................................................................................... V
DECLARATION .......................................................................................................................... VI
ABSTRACT .................................................................................................................................. IX
CHAPTER 1: INTRODUCTION
I. SOFTWARE INTERFACE 22
V. HIGH SCORE 29
VI. SLIDING 30
VII. MAGNET 30
DECLARATION
We hereby declare that this submission titled “Endless Runner Game” is our
original work carried out collaboratively by the undersigned, and that, to the
best of our knowledge and belief, it contains no material previously published
or written by any other person, nor material which has been accepted for the
award of any degree or diploma at any university or institution of higher
learning, except where proper acknowledgment has been made in the text.
This project has been completed in partial fulfillment of the requirements for
the award of the Bachelor of Technology (B.Tech) in Computer Science
and Engineering at Sanskar College of Engineering and Technology,
Ghaziabad, under Dr. A.P.J. Abdul Kalam Technical University (AKTU),
Lucknow.
SIGNATURE: SIGNATURE:
NAME: SHRADDHA SHARMA NAME: NIKHIL KUMAR
ROLL NO :2102150100080 ROLL NO:2102150100061
DATE: DATE:
SIGNATURE: SIGNATURE:
NAME: MOHIT KUMAR NAME: MOHD.ABUZAR
ROLL NO: 2102150100056 ROLL NO: 2102150100055
DATE: DATE:
CERTIFICATE
Project Associates:
Shraddha Sharma
(2102150100080)
Nikhil Kumar
(2102150100061)
Mohit Kumar
(2102150100056)
Mohd. Abuzar
(2102150100055)
ABSTRACT
This project report details the development of an Endless Runner Game using Unreal
Engine, integrating both C++ programming and Blueprint Visual Scripting while
applying the principles of Object-Oriented Programming (OOP). The objective of this
project is to deliver a functional and engaging game that demonstrates technical
proficiency in game development, modular code design, and real-time interactive
systems.
The game is designed in the popular endless runner style, where the player character
moves automatically through a dynamically generated environment. The gameplay
challenges the player to survive by jumping, dodging, and collecting in-game items while
avoiding obstacles. Features include procedural obstacle spawning, a scoring and high-
score tracking system, increasing difficulty levels, and responsive input handling.
The architecture of the game is grounded in OOP principles. C++ classes form the
backbone of the game logic, such as character movement, collision detection, and game
state transitions. Inheritance and polymorphism were applied to create base classes for
actors like Obstacles, Pickups, and UI Components, making the code reusable and
extensible. Encapsulation ensures clean separation of concerns and maintainability.
Blueprints were strategically used for visual scripting tasks such as animation control,
particle effects, and HUD (Head-Up Display) design. This hybrid approach allowed for
efficient iteration and real-time testing, bridging the gap between visual design and low-
level code logic.
CHAPTER:1.1 INTRODUCTION
The gaming industry has grown exponentially over the past decade, with real-time 3D
engines like Unreal Engine revolutionizing the way games are developed and experienced.
This project, titled “Endless Runner Game using Unreal Engine with C++ and
Blueprints,” aims to explore the process of designing and developing a complete,
interactive game using modern game development tools and programming paradigms. The
primary focus is on building a simple yet engaging endless runner game, which not only
entertains but also demonstrates the practical application of core software development
principles.
An endless runner game is a subgenre of platform games where the player character is in
constant motion, typically moving forward through a procedurally generated environment.
The objective is to survive as long as possible while collecting points and avoiding
obstacles. Due to its fast-paced and reflex-based nature, this genre is popular on both
mobile and PC platforms, making it an ideal model for a major project that balances
creativity and technical implementation.
Unreal Engine, developed by Epic Games, was chosen as the development platform for
this project because of its powerful rendering system, flexible Blueprint visual scripting
language, and seamless integration with C++. This engine allows developers to prototype
and build complex, interactive systems rapidly. By combining C++ with Blueprints, this
project benefits from both the performance and control of traditional code, as well as the
speed and clarity of visual scripting.
The game is structured using Object-Oriented Programming (OOP) principles, which help
ensure modularity, maintainability, and scalability. Major gameplay elements—such as the
player character, obstacles, pickups, game UI, and scoring system—are implemented using
base and derived classes. This design approach promotes code reuse and simplifies the
addition of new features.
In addition to gameplay mechanics, the project also covers aspects of user interface design,
game physics, animation, and sound integration, offering a holistic view of game
development. The development workflow involved iterative testing, debugging,
performance optimization, and gameplay balancing to ensure a smooth and enjoyable
player experience.
This report outlines the planning, design, implementation, and testing phases of the project,
supported by diagrams, code snippets, and screen captures. Through this project, the
developer has gained practical experience in using industry-standard tools, applying
theoretical programming concepts, and solving real-world challenges in game
development.
1.2 OBJECTIVE OF THE GAME:
The primary objective of this project is to design and develop a fully functional Endless
Runner Game using Unreal Engine, leveraging the combined strengths of C++
programming and Blueprint Visual Scripting, while adhering to Object-Oriented
Programming (OOP) principles. This project aims to demonstrate an understanding of
both game design and software development, offering an opportunity to apply theoretical
concepts in a practical, interactive environment.
In summary, the project is not just about creating a game, but about understanding the
principles and practices of game development from the ground up, using modern tools
and languages in a professional workflow.
1.3 ADVANTAGES OF THE GAME:
The Endless Runner Game developed using Unreal Engine, with a hybrid approach of
C++ programming and Blueprint Visual Scripting, offers several advantages both from a
development and gameplay perspective. These advantages are outlined below:
7. Educational Value
For developers and learners, this project serves as a comprehensive learning tool. It
covers important aspects such as game mechanics, UI development, physics interactions,
optimization, and gameplay balancing.
This project falls under the category of Game Development, specifically focusing on the
design and implementation of an interactive 3D endless runner game. It incorporates
elements of software development, real-time graphics rendering, object-oriented
programming, and user interaction design within the domain of interactive multimedia
applications.
Simulation and Real-Time Systems – due to the game’s real-time interaction, physics,
and procedural generation.
Entertainment Technology – as the game is designed primarily for user enjoyment and
engagement.
The Software Interface of the Endless Runner Game refers to the interaction between the
user and the system through a well-structured and intuitive graphical interface. Designed
using Unreal Engine's UI framework and Blueprints, the interface offers a responsive and
visually appealing experience that enhances the overall gameplay.
Options Available:
Designed with button widgets and smooth transitions using Unreal Engine’s UMG
(Unreal Motion Graphics) system.
Game Speed Indicator (if implemented): Shows the increasing game speed.
Options include:
Resume
Restart
Main Menu
This interface is layered over the gameplay screen and freezes in-game logic until
resumed.
Shows:
Final score
High score
Consistent theme using background music, buttons, fonts, and visual effects.
7. Input Handling
Input is managed using Unreal Engine's Input Mapping system in both Blueprints and
C++.
The interface has been designed to be minimalistic yet functional, offering players a
smooth and distraction-free experience. All screens are optimized for performance and
aesthetic consistency across different screen resolutions.
Software Interface
CHAPTER 2: DEVELOPMENT OF THE GAME
2.1 SOFTWARE REQUIREMENTS
The software requirements for both the development and execution of the Endless Runner
Game are outlined below:
Unreal Engine 5.x (or Unreal Engine 4.27+): The game engine used for creating and
running the game.
C++ Programming Language: Unreal Engine supports C++ for core game logic and
performance-critical tasks.
Unreal Engine Blueprints: Visual scripting system for rapid prototyping and gameplay
logic, offering flexibility in game development.
Visual Studio 2019 or later (with C++ tools): Required for writing and compiling C++
code for Unreal Engine.
Graphics Software (Optional): Tools like Adobe Photoshop, GIMP, or similar for
designing and editing textures, sprites, and UI elements.
Version Control (Optional): Git, with platforms like GitHub or Bitbucket, to manage
project versions and collaboration.
Operating System: Windows 10 (64-bit) or later for development and running Unreal
Engine. Audio Editing Software (Optional): Tools like Audacity for editing and
producing sound effects and background music.
2. Execution Software Requirements
Graphics API: Unreal Engine supports DirectX 11/12 and Vulkan for rendering. DirectX
12 is recommended for the best performance.
Runtime Libraries: DirectX 11/12 and the Visual C++ Redistributable packages, which
are required to run the compiled game.
Game Engine Files: Unreal Engine must package the game into an executable for
distribution, which can be played on any supported platform.
Android: Unreal Engine allows deployment to mobile platforms, requiring the installation
of Android Studio and the Android SDK.
iOS/macOS: These platforms can also be targeted with additional configuration for
Unreal Engine, but they are optional for the project’s scope.
2.2 HARDWARE REQUIREMENTS
The hardware requirements for both development and execution of the Endless Runner
Game are outlined below:
Processor (CPU):
Memory (RAM):
Minimum: 8 GB RAM.
Storage:
Operating System:
Processor (CPU):
Memory (RAM):
Minimum: 4 GB RAM.
Recommended: SSD with at least 10 GB free space for faster load times and
improved gameplay performance.
Operating System:
These hardware specifications ensure that the game will run smoothly during
development and on target machines, with an optimal experience provided by the
recommended hardware.
2.3 GAME
HUD(Heads-up Display)
Main Menu
Pause Menu
Character Design
High Score
Sliding
Magnet
2.4 TECHNOLOGY USED
The development of the Endless Runner Game utilized a combination of advanced game
development tools, programming languages, and software technologies. These
technologies provided the necessary resources for creating a visually appealing,
performant, and interactive game. Below are the key technologies used in the project:
1. Unreal Engine
Usage: Unreal Engine was the core platform for the entire game development process. It
was used for environment creation, asset management, physics simulation, AI behavior,
and game logic implementation. The game engine’s built-in features, such as Blueprints
and C++ integration, made it possible to create the gameplay mechanics efficiently.
2. C++ Programming
C++ is the primary programming language used for the development of the game’s core
functionality. Known for its high performance and control over system resources, C++
was used to write the game’s logic for key systems such as character movement, collision
detection, and procedural generation of the environment.
Usage:
Implementing core game systems like movement, scoring, and obstacle spawning.
Handling performance-critical tasks that benefit from lower-level access to memory and
processor functions.
Ensuring the game’s logic runs efficiently, allowing smooth gameplay without lag or
stutter.
3. Unreal Engine Blueprints
Blueprints is Unreal Engine’s visual scripting system, allowing developers to create game
mechanics without writing code manually. It provides a node-based interface where you
can drag and drop elements to define the game’s behavior.
Usage:
Building gameplay features such as interactions between the player character and
obstacles.
Streamlining the rapid prototyping process by allowing immediate testing and iteration
without needing to write C++ code for every element.
4. Visual Studio
Visual Studio is the integrated development environment (IDE) used to write, compile,
and debug C++ code for Unreal Engine projects.
Usage:
Integration with Unreal Engine for managing and building the project.
UMG is Unreal Engine’s user interface framework, used for creating menus, HUDs, and
other interactive UI components.
Usage:
Designing and implementing the game’s main menu, pause screen, game over screen, and
HUD.
Blender: An open-source 3D modeling software that was used (if applicable) for creating
game assets such as obstacles, characters, and props. Blender is an ideal tool for creating
and exporting assets for Unreal Engine.
Usage:
Exporting models into Unreal Engine using compatible formats like FBX.
(Alternative tools like Maya or 3ds Max could be used, depending on the project's
requirements.)
Git is a version control system that allows tracking and managing changes in the project’s
codebase and assets. Platforms like GitHub or Bitbucket were used to host the repository
and collaborate on the project.
Usage:
Managing and tracking changes made to the codebase, ensuring that each update can be
rolled back if necessary.
Collaborating with other team members (if applicable) and maintaining project
organization.
8. Procedural Generation Algorithms (Custom C++ Code)
Usage:
Creating a randomly generated game environment that changes each time the player starts
a new session.
Unreal Engine comes with a robust physics engine that simulates realistic movements,
collisions, and interactions between game objects.
Usage:
Conclusion
The combination of Unreal Engine, C++, Blueprints, and additional development tools
allowed for the creation of a dynamic, interactive, and optimized endless runner game.
These technologies enabled the project to meet both performance and gameplay
requirements while ensuring ease of development through a hybrid approach of low-level
programming and visual scripting.
2.5 KEY FEATURES
The Endless Runner Game developed using Unreal Engine leverages both C++
programming and Blueprints to provide an engaging and immersive gaming experience.
Below are the key features of the game:
1. Endless Gameplay
The core mechanic of the game is that it’s an endless runner, meaning the player
increasing over time. This keeps the game engaging and encourages players to
aim for high scores by surviving as long as possible.
The player controls a character that continuously runs forward. The gameplay
focuses on dodging, jumping over, or sliding under obstacles in the path.
Smooth and responsive character controls are achieved using C++ programming
for physics-based movement and Blueprints for intuitive control mechanics.
4. Increasing Difficulty
The game keeps track of the player’s score, which increases the longer the
player survives. The score is displayed in real-time on the HUD (Head-Up
Display), with the highest score recorded across sessions.
High score tracking encourages players to beat their previous best scores, adding
to the game's competitive element.
Throughout the game, the player can collect power-ups that provide temporary
advantages such as magnet, which boost the collecting power of coins, where
magnet collect all coins which is inside the magnetic field.
The game features an adaptive difficulty system, where the game automatically
increases the difficulty based on how long the player survives. This prevents the
game from becoming too easy or too difficult at any point, maintaining a
challenging but rewarding experience.
The game includes a clean and intuitive user interface that displays the score,
high score, and game status.
The main menu, pause menu, and game over screen are easy to navigate, offering
options such as Start Game, Restart, and Exit.
The game features fluid character animations for actions like running, jumping,
and sliding. These animations are created using Unreal Engine’s built-in
animation blueprint system.
Sound effects are used such as Collecting power-ups and from collecting coins
inside the game. which is responsible to enhance the sound experience.
Players can pause the game at any time and access a pause menu with options
like resume, restart, or exit to the main menu.
Upon losing, the game over screen displays the final score, allowing players to
see how they performed and encouraging them to try again.
Conclusion
The Endless Runner Game integrates these key features to provide a dynamic,
engaging, and challenging experience for players. By combining procedural
generation, increasing difficulty, power-ups, and smooth player controls, the game
keeps players coming back for more, aiming to break their high scores.
Chapter 3: IMPLEMENTATION
The Endless Runner Game was implemented using Unreal Engine 5, combining the
strengths of C++ and Blueprints. The implementation process was structured into several
stages: setting up the project, creating the core game mechanics, developing the game
environment, implementing AI and obstacles, and optimizing the gameplay experience.
The following sections outline the step-by-step implementation process.
Unreal Engine Setup: The project was initiated using Unreal Engine 5 (or Unreal
Engine 4 if specified). A new blank project was created with a Third-Person template,
which provided the basic structure and control schemes for the player character.
File Organization: The project was structured with organized folders for assets (textures,
models, sounds), blueprints, C++ classes, and UI components. This helped maintain
clarity during development and made the project easier to manage.
Character Model and Animation: The player character was either imported from a 3D
modeling tool (such as Blender) or chosen from Unreal Engine’s default assets. The
character model was rigged and animated for movements like running, jumping, and
sliding.
Forward Running: Automatically moving forward with the ability to control lateral
movement (left/right).
Sliding: A low-crouching animation that could be triggered to pass under obstacles.
Procedural Level Design: The core gameplay experience in the Endless Runner Game is
powered by procedural generation, which dynamically generates obstacles, environments,
and pickups as the player advances.
Obstacle Spawning: The game generates obstacles at random intervals using a random
number generator. These obstacles are placed in the path of the player, with varying
sizes, shapes, and types (e.g., walls, pits, and moving obstacles).
Blueprints and C++ Integration: Procedural spawning logic was handled in C++ for
performance-critical tasks, while Blueprints were used for simple object placement,
visual design, and testing.
Collision Handling: Unreal Engine’s Physics Engine was utilized to handle collision
detection between the player character and obstacles. The Character Movement
Component ensured that the player’s movements responded to physical interactions, like
running into walls or jumping over obstacles.
C++ Implementation: Collision logic was written in C++ to detect when the player
character collides with an obstacle. When a collision occurs, the player’s health is
decreased or the game ends.
Trigger Zones: Specific areas (e.g., near obstacles or collectible items) used trigger
volumes to detect player interactions and initiate events, such as increasing the score or
activating power-ups.
5. Scoring System and Difficulty Scaling
Score Mechanism: The player’s score is calculated based on the distance traveled in the
game. The score is incremented every few seconds or every time the player overcomes an
obstacle.
Score Display: The score is displayed in the HUD (head-up display) as the game
progresses. This feature was implemented using Unreal Motion Graphics (UMG).
Increasing Difficulty: As the player’s score increases, the game gradually increases the
difficulty by:
Power-ups were implemented using Blueprints for object placement and logic (e.g.,
timers and activation effects).
Unreal Motion Graphics (UMG) was used to design and implement the Main Menu,
Pause Menu, and Game Over Screen.
The Main Menu allows the player to start the game, view high scores, or adjust settings.
The Game Over Screen displays the player’s final score, with the option to restart the
game or return to the main menu.
HUD Design: The HUD displays real-time information like the player’s score, current
speed, and collected power-ups. This was done using UMG Widgets that update every
frame during gameplay.
Unit Testing: C++ classes for movement, collision, and game logic were extensively
unit-tested. Unreal Engine’s built-in testing tools were used to simulate different in-game
situations (e.g., obstacle collisions, power-up usage).
Playtesting: The game was regularly playtested to ensure that the difficulty curve was
balanced and that no critical bugs were present. Changes were made to tweak the
gameplay, remove bugs, and adjust player controls based on test feedback.
Memory Management: Assets such as textures, sounds, and models were optimized for
low memory usage. Unreal Engine’s Level of Detail (LOD) system was used for models
to reduce the complexity of objects rendered at a distance.
The Endless Runner Game was successfully developed by integrating core game
mechanics, procedural generation, and a fluid player experience. By utilizing C++
programming for high-performance systems and Blueprints for rapid iteration and
gameplay logic, the project achieved a balance between performance and flexibility. The
game’s dynamic difficulty, engaging obstacles, and polished UI offer a challenging and
rewarding experience for players, while optimizations ensure smooth performance across
platforms.
SOURCE CODE:
_BP_FLOOR( Header Code )
Testing for the Endless Runner Game was carried out at various stages of development to
ensure that the game mechanics, performance, and overall user experience met the
project’s requirements. The following types of testing were performed:
1. Unit Testing
C++ Classes: Unit tests were written for critical C++ classes, including the player
character's movement, collision detection, scoring system, and obstacle generation. These
tests helped ensure the logic was working as expected.
Automated Testing: Unreal Engine's built-in testing tools were used to automate the
testing of these systems, especially for complex game mechanics like the procedural
environment generation.
2. Functional Testing
Core Mechanics: The core gameplay mechanics, such as player movement, obstacle
interactions, and power-up collection, were manually tested to ensure they functioned
smoothly and without errors.
UI Testing: The main menu, in-game HUD, and game over screens were tested to verify
proper transitions, score display, and button functionality.
Level Design: The procedural generation of obstacles and environment layouts was
tested to ensure a balanced gameplay experience with no visual glitches or unplayable
configurations.
3. Performance Testing
Frame Rate: The game was tested on different hardware configurations to ensure it
maintained a stable frame rate. Optimizations like object pooling and asset compression
were validated.
Memory Usage: The game was tested for memory leaks and performance drops,
especially on lower-end hardware, ensuring smooth performance during extended
gameplay sessions.
4. Playtesting
Bug Identification: Various playtests helped identify and fix bugs related to collision
detection, animation blending, and scoring logic.
5. Cross-Platform Testing
Mobile and Desktop Testing: The game was tested on both mobile (iOS/Android) and
desktop (Windows) platforms to ensure compatibility, proper controls, and performance
on different devices.
Conclusion of Testing
The game was thoroughly tested to ensure that the core mechanics were stable, the
performance was optimized, and the player experience was engaging. The issues
identified during testing were promptly fixed, resulting in a polished and well-functioning
final product.
CHAPTER 5: CONCLUSION AND FUTURE
WORK
5.1Conclusion
The Endless Runner Game, developed using Unreal Engine and leveraging both C++
programming and Blueprints, successfully meets the objectives of delivering an
engaging, dynamic, and performance-optimized gaming experience. By implementing
key features like procedural generation, increasing difficulty, a robust scoring system,
and fluid player controls, the game offers a highly interactive and replayable experience
for players.
The procedural generation of obstacles and environments keeps the gameplay fresh and
exciting, offering players a unique experience with every run. The dynamic difficulty
curve adds an additional layer of challenge, making the game rewarding as players
improve their skills and aim for higher scores.
Overall, this project has served as a valuable learning experience, showcasing the
capabilities of Unreal Engine and providing insight into game design, development, and
optimization techniques. It also demonstrates the integration of object-oriented
programming principles in the development of interactive applications. The game stands
as an example of how creative and technical skills can come together to produce an
entertaining and engaging product.
Moving forward, there are numerous opportunities for further enhancement, such as
adding new game modes, improving the AI, and expanding the game world with
additional assets and features. The game’s modular design allows for easy updates and
improvements, which could potentially expand its scope to reach a larger audience.
5 . 2 FUTURE WORK
While the Endless Runner Game has successfully met the initial objectives of providing
an engaging and challenging gameplay experience, there are several avenues for
improvement and expansion. In the future, the game can be enhanced with additional
features, optimizations, and platform support to further enrich the player experience.
New Game Modes: Introducing new game modes such as Time Attack, Survival Mode,
or Challenge Rounds can add variety to the gameplay and offer different experiences to
players.
replayability.
systems would give players a sense of progression and competition, encouraging them to
invulnerability for a limited time, slow-motion) and player abilities (e.g., double jumps,
dash moves) can make gameplay more dynamic and give players more strategies to
employ.
Enhanced Visual Effects: Improving particle effects, lighting, and environment textures
can make the game visually more appealing. Adding day-night cycles, weather effects, or
skins, outfits, or accessories) could add a fun element and increase player investment in
the game.
Dynamic Music: Implementing dynamic music that changes based on the player’s
progress, such as faster tempo or more intense music as the difficulty increases, can
More Sound Effects: Additional sound effects, such as unique sounds for each power-
up, new obstacles, and more ambient background sounds, would further enrich the
auditory experience.
4. Cross-Platform Development
Mobile Support: Expanding the game to mobile platforms (iOS and Android) is a
potential future enhancement. This would require adapting the controls for touch-based
Console Support: The game can also be adapted for consoles such as PlayStation and
react to the player's actions (e.g., chasing the player, predicting their movements) could
increase the challenge and make the game feel more alive.
AI Difficulty Scaling: Implementing an AI-driven difficulty scaling system that not only
adjusts the obstacles' frequency but also their intelligence and behavior based on the
player’s performance could make the game more adaptive and engaging.
as the most common failures, popular power-ups, or common high-score ranges, could
provide valuable insights for further game balancing and feature development.
Player Feedback Integration: Regularly gathering and integrating player feedback
could help identify areas for improvement and ensure that the game aligns with player
end devices or systems, will ensure that the game runs smoothly across a wider range of
hardware.
Memory and Asset Optimization: Reducing memory usage and optimizing assets, such
as textures and models, will ensure faster loading times and prevent performance issues,
Game Launch: Once the game is fully developed and polished, a planned launch
strategy on platforms like Steam, Google Play, or the App Store will be necessary to
Community Building: Building a community around the game through social media,
gaming forums, and content creators can drive engagement and attract a loyal player
base.
Conclusion for Future Work
The Endless Runner Game is a solid foundation for further development, and there are
iterate on the game based on player feedback and industry trends, future versions can
https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-5-5-
documentation
https://store.epicgames.com/en-US/download
www.youtube.com
https://youtube.com/playlist?list=PLKWcO-
53OuH71Oo_sCNjNOKP1GmBcD6cI&si=wUw19IG-6mnFJLc_
https://youtube.com/playlist?list=PLNTm9yU0zou4qQh33nqojMPTUSo-
RuVCJ&si=x4a6WUb31_hJJ4if
https://youtu.be/gfleby2BLGo?si=S2g95j0KXebxM9HO
https://youtu.be/1cfPiofNy-U?si=5l1atTfwdZTFjpIS
https://youtu.be/aaLqEHXGiww?si=TOHRWqjbQKmJQJUu
https://youtu.be/k-zMkzmduqI?si=cgoVPHRssptbuB2L