We may earn an affiliate commission when you visit our partners.
Jingtian Li

Welcome to the second installment of the Complete Game Development Series, Project Infinite Runner. Throughout this course, we will delve into the fundamentals of Unity, the widely utilized game engine, as we construct a fully developed infinite-runner game.

Read more

Welcome to the second installment of the Complete Game Development Series, Project Infinite Runner. Throughout this course, we will delve into the fundamentals of Unity, the widely utilized game engine, as we construct a fully developed infinite-runner game.

Our journey begins with an exploration of the core aspects of the Unity editor, encompassing basic manipulation of objects, game objects and their components, the game loop, and asset importing. As the game takes shape, we will progressively explore advanced concepts such as the new input system, physics, animation controllers, prefabs, shader graphs, audio, and more.

This tutorial emphasizes thoroughness. No steps will be omitted, and we will refrain from relying on third-party code or plugins. Every element, including the player controller, world generation, shader graph, player profile, and leaderboard system, will be implemented from the ground up. Our goal is to maintain clean and extensible code throughout the entire process.

Beyond Unity, we will briefly touch on basic modeling using Blender to provide insights into other facets of the game development workflow.

Upon completing the tutorial, you will possess a robust understanding of Unity and game development, coupled with a comprehensive infinite runner project. This knowledge will empower you to tackle more advanced projects and progress through the series seamlessly. Brace yourself for a thorough, enlightening, and continuous game development journey.

Enroll now

What's inside

Learning objectives

  • The fundamentals of the unity game engine
  • Make a complete infinite runner game
  • Using c# to implement game mechanics
  • Package games with unity
  • Save and load game data with json
  • Create ui and audio in unity

Syllabus

Introduction and the Basics
Introduction
01_Install_Unity
02_Introduction_to_the_Editor
Read more
03_Basic_Object_Manipulations
04_Game_Object_and_Components
05_Create_and_Attach_a_Script
06_Delta_Time_and_Expose_Variables_to_The_Editor
Setup the Player
07_Importing_Assets_and_the_Asset_Store
08_Install_the_New_Input_System
09_Add_the_Move_Action
10_Move_the_Player_With_Pre_Defined_Transforms
11_Physics_Constrains_and_Collision_Components
12_Caculate_Jumping_Speed
13_Ground_Check
14_Basics_of_Animator
15_Triggering_Animation_in_the_Code
Procedural Level Generation
16_Prefabs_and_the_World_Generator
17_Generate_the_roads
18_Use_Prefab_to_Setup_the_Collision
19_Add_Movement_Using_a_Component
20_Destory_Object_at_the_End_Point
21_Spawn_new_Blocks_with_Trigger
22_Spawn_Buildings
23_Spawn_Street_Light
24_Create_our_First_Shader
25_Manipulate_the_position_of_the_points
26_Use_the_Circle_Equation_to_arc_the_Environment
Threats
27_Create_the_Threat_and_Compose_the_Car_Class
28_Spawn_the_Car_using_Coroutine
29_Spawn_the_Car_On_Random_Lanes
30_Spawn_the_Road_Block
31_Refactor_the_Threats
32_Refactor_the_Speed_Control
Pick Ups
33_Implment_the_Pickup_Class
34_Implement_the_score_keeper_and_the_UI
35_Spawn_an_Array_of_Coins
36_Refactor_the_Spawning
37_Adjust_the_Position_of_Pickups
The Train
38_Create_the_Train_Segment_Class
39_Spawn_and_Move_the_Train_Segment
Other Game Mechanics
40_Addressing_Overlapping_and_Placement_Issues
41_Make_the_Camera_Follow_the_Player
42_Block_Player_From_going_To_an_Occupied_Lane
43_Fix_Road_Collision_Issue_and_Trigger_Spawning_Bug
44_Change_the_Spawn_Ratio
45_Creat_the_Fail_Zone
46_Implement_the_Trash_Can
47_Add_No_Spawn_Zone_and_Blance_the_Game
48_Create_the_Speed_Boost_Model
49_Create_the_Speed_Boost_Pickup
Menu Setup
50_Expand_the_Ingame_UI
51_Add_Buttons_to_the_Pause_Menu
52_Implement_the_Gameover_Menu
53_Implement_the_Main_Menu
Player Profile and Leader Board
54_Baisc_Saving_Mechanic_and_JSON
55_Create_the_Player_Proflie_UI
56_Save_New_Player
57_Delete_Existing_Player
58_Implement_Leader_Board_Saving_Facilities
59_Set_and_Get_the_Player_Name_and_Sort_Leader_Board
60_Layout_the_Structure_of_the_Leader_Board
61_Read_Entries_to_the_Leader_Board
Audio
62_Add_Background_and_Movement_Audio
63_Implement_Audio_Triggering
64_Finish_all_Audio
Final Touches
65_Update_Button_Visuals
66_Create_Text_in_Blender
67_Add_our_Character_to_the_Title
68_Render_the_Title_and_Import_to_Unity
69_Change_the_Skybox_and_Fix_Input_Bug
70_Build_the_Game_and_Wrap_Up
71_Congrats_and_Final_Remarks

Save this course

Save Making an Infinite Runner with Unity to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Making an Infinite Runner with Unity with these activities:
Review C# Fundamentals
Reinforce your C# skills to better understand the game logic and scripting aspects of the course.
Browse courses on C# Scripting
Show steps
  • Review basic syntax and data types.
  • Practice writing simple functions and classes.
  • Complete online C# tutorials.
Document Your Learning Journey
Create a blog or journal to document your progress, challenges, and solutions encountered during the course.
Show steps
  • Set up a blog or journal.
  • Write weekly summaries of your progress.
  • Document any challenges and solutions.
  • Share your insights with others.
Review 'Game Programming Patterns'
Study common game programming patterns to improve code structure and maintainability in your Unity project.
Show steps
  • Read chapters relevant to game design.
  • Identify patterns used in the course code.
  • Apply patterns to refactor existing code.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Prototype a Simple Game Mechanic
Practice implementing a core game mechanic, such as jumping or obstacle avoidance, in a separate Unity project.
Show steps
  • Create a new Unity project.
  • Implement player movement and collision.
  • Add a simple obstacle and collision detection.
  • Test and refine the mechanic.
Review 'Unity in Action, Third Edition'
Use this book as a reference to deepen your understanding of Unity concepts and explore advanced features.
Show steps
  • Read chapters relevant to the course topics.
  • Experiment with the code examples.
  • Apply the concepts to your own project.
Explore Advanced Shader Graph Techniques
Follow tutorials on creating advanced visual effects using Unity's Shader Graph to enhance the game's aesthetics.
Show steps
  • Find tutorials on Shader Graph effects.
  • Replicate the effects in your own project.
  • Experiment with different shader properties.
Optimize Game Performance
Profile the game's performance and identify areas for optimization, such as reducing draw calls or optimizing scripts.
Show steps
  • Use Unity's profiler to identify bottlenecks.
  • Research optimization techniques.
  • Implement optimizations and re-profile.
  • Document the performance improvements.

Career center

Learners who complete Making an Infinite Runner with Unity will develop knowledge and skills that may be useful to these careers:
Unity Developer
A Unity Developer specializes in using the Unity game engine to create interactive experiences, ranging from video games to simulations and augmented reality applications. Unity Developers design and implement game mechanics, write scripts, and optimize performance to deliver engaging and smooth gameplay. This course centers on developing a complete infinite runner game in Unity, which helps solidify your understanding of the engine's core functionalities. The course covers basic object manipulation to more complex concepts such as shader graphs and animation controllers. Moreover, the course's approach of building every element from the ground up fosters a deep understanding of Unity's capabilities. As you build the infinite runner project, you will gain hands-on experience with C# scripting, asset importing, and UI design. These are skills highly sought after in the field, making this course an excellent starting point for aspiring Unity Developers.
Game Developer
A Game Developer brings video game concepts to life, working on various aspects such as gameplay mechanics, level design, and creating engaging user experiences. This role involves writing code, implementing game logic, and collaborating with artists and designers and is a great job for anyone with a passion for games. This course, with its focus on building an infinite runner game from scratch using Unity, helps build a solid foundation in game development principles. Through this project, you will learn to implement core game mechanics using C#, create procedural level generation, and integrate audio and UI elements and also covers saving and loading game data with JSON, which helps with player profiles and leaderboards. The course's emphasis on creating a complete project without relying on third-party assets ensures that you will gain a comprehensive understanding of the game development pipeline, which is invaluable for anyone pursuing a career as a Game Developer.
Gameplay Programmer
A Gameplay Programmer focuses on implementing the interactive elements of a game, such as character controls, game mechanics, and artificial intelligence. They work closely with game designers to translate design ideas into functional and engaging gameplay experiences. This course's approach to building an infinite runner game provides a strong foundation for gameplay programming. You will learn to implement player controls, physics-based movement, and collision detection. Additionally, the course covers procedural level generation, which is a valuable skill for creating dynamic and replayable gameplay experiences. The course teaches you how to implement the new input system and how to calculate jumping speed. This course helps you to develop a solid understanding of the technical aspects of game design, preparing them for a role as a Gameplay Programmer.
Indie Game Developer
An Indie Game Developer typically works independently or in a small team to create and publish their own games. They often handle multiple aspects of game development, from programming and art to design and marketing. The course emphasizes thoroughness and creating every element from scratch, which is exactly the kind of skill set needed by an Indie Game Developer. This course helps provide comprehensive and practical experience in game development. You will gain hands-on experience with C# scripting, asset creation, and level design. This experience is invaluable for aspiring Indie Game Developers.
Level Designer
A Level Designer is responsible for creating the environments and layouts within a game. They work to ensure that each level is both visually appealing and provides an engaging and challenging experience for the player. This course can be particularly beneficial for aspiring Level Designers due to its emphasis on procedural level generation. Learning how to generate roads, spawn buildings, and add environmental elements such as streetlights is directly applicable to level design. Moreover, the introduction to shader graphs helps you understand how to manipulate the visual appearance of levels. This helps build a strong foundation in level design principles.
Mobile Game Developer
A Mobile Game Developer specializes in creating games for mobile platforms such as iOS and Android. They are adept at optimizing game performance for mobile devices and designing intuitive user interfaces tailored to the mobile experience. This course, which focuses on building an infinite runner game using Unity, may be useful to those interested in mobile game development. Unity is a cross-platform engine, and this course provides insight into creating a complete game project from start to finish. The course covers UI design, audio integration, and optimization techniques, all of which are essential for creating engaging mobile games. Furthermore, the course teaches you how to package games with Unity. This knowledge would prove invaluable for launching a career as a Mobile Game Developer.
UI Programmer
A User Interface Programmer specializes in developing the visual elements and interactive components of a game's user interface. They work closely with UI designers to implement intuitive and engaging interfaces. This course teaches how to create UI elements within Unity, making it relevant for aspiring UI Programmers. The course covers expanding the in-game UI, adding buttons to the pause menu, and implementing the game over and main menus. This helps by providing practical experience in UI implementation, which is valuable for a career as a UI Programmer.
Game Designer
A Game Designer conceptualizes and designs the overall gameplay experience, including game mechanics, story, and user interface. This course, while focusing on the technical aspects of game development, may be useful for aspiring Game Designers because it provides insight into the practical implementation of game concepts. The course's emphasis on creating a complete infinite runner game from scratch helps provide a comprehensive understanding of the entire game development process. This helps you to make informed design decisions and communicate effectively with programmers and artists.
Technical Artist
A Technical Artist bridges the gap between art and programming, creating tools and workflows that allow artists to achieve their creative vision within the technical constraints of a game engine. You may need a strong understanding of both art and programming. This course's exploration of shader graphs and basic modeling using Blender, makes it particularly relevant to the role of a Technical Artist. It demonstrates how to manipulate the position of points and use the circle equation to arc the environment, helping blend artistic vision with technical implementation. This helps you gain skills directly applicable to creating visually stunning and technically sound game environments.
Simulation Developer
Simulation Developers create realistic simulations for various purposes, such as training, education, and research, often using Unity. This course, which focuses on the fundamentals of Unity and building a complete infinite runner game, may be useful to those interested in simulation development. Skills in object manipulation, physics implementation, and UI design are transferable to creating interactive simulations. This course helps you to apply these skills in a practical context.
VR Developer
A VR Developer creates immersive experiences for virtual reality platforms. They use game engines like Unity to design and develop interactive environments, user interfaces, and compelling gameplay mechanics. This course, with its focus on Unity and building an infinite runner game, may be useful to those seeking to work on VR applications. You will learn to manipulate objects, handle user input, and create dynamic environments. The skills acquired from building the infinite runner project are transferable to VR development, making this course a valuable starting point.
AR Developer
AR Developers build applications for augmented reality (AR) platforms, often utilizing Unity. They merge digital content with the real world through devices like smartphones and tablets, creating interactive and immersive experiences. This course, by focusing on Unity game development, may be useful for those interested in becoming AR Developers. The skills learned in manipulating objects, implementing game mechanics, and designing user interfaces can be directly applied to AR projects. The course's emphasis on creating a complete game project helps provide a strong foundation for AR development.
Software Engineer
A Software Engineer designs, develops, and tests software applications. While not specific to game development, the programming skills acquired through this course are valuable for Software Engineers. The course's focus on C# scripting, object-oriented programming, and implementing game mechanics helps you to develop a strong foundation in software development principles. This may be useful in a broader software engineering role.
Software Developer
A Software Developer is involved in the creation, deployment, and maintenance of software applications. Their tasks range from writing code to debugging and ensuring system efficiency. This course, which teaches how to develop an infinite runner game, provides a solid foundation in software development principles. Through the project, you will learn how to implement game logic using C#, manage assets, and optimize performance. This helps demonstrate practical software development skills, making it valuable for your career as a Software Developer.
QA Tester
A Quality Assurance Tester is responsible for identifying and documenting software defects. This is a vital role for software and game development. The course might be somewhat useful for someone interested in testing software applications and games. QA Testers ensure software products meet certain standards of quality. A QA Tester is often someone with a detail oriented mind who likes finding innovative ways to break things.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Making an Infinite Runner with Unity.
Provides a comprehensive guide to Unity development, covering a wide range of topics from basic concepts to advanced techniques. It serves as a valuable reference for understanding the Unity engine and its features. It is particularly useful for solidifying your understanding of Unity concepts. It is commonly used as a textbook for Unity courses.
Provides valuable insights into common design patterns used in game development. It helps in writing cleaner, more maintainable, and extensible code, which is crucial for a project like an infinite runner. While not a prerequisite, it offers a deeper understanding of the code structure. It useful reference for improving code quality.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser