We may earn an affiliate commission when you visit our partners.
James Doyle

Learn how to create your very own racing game using Unity, an industry-standard program used by many large gaming studios and indie developers across the world.

In this course you won’t just be learning programming concepts, but tying these concepts to real game development uses. You will have access to a course forum where you can discuss the topics covered in the course as well as the next steps to take once the course is complete.

Read more

Learn how to create your very own racing game using Unity, an industry-standard program used by many large gaming studios and indie developers across the world.

In this course you won’t just be learning programming concepts, but tying these concepts to real game development uses. You will have access to a course forum where you can discuss the topics covered in the course as well as the next steps to take once the course is complete.

This course has been designed to be easily understandable to everyone, so whether you’re a complete beginner, an artist looking to expand their game development range or a programmer interested in understanding game design, this course will help you gain a greater understanding of development.

At the end of this course you will have developed the ability to create such game elements as:

  • A car controller giving you full arcade-style action

  • A full race AI system to challenge your players

  • Unlocking tracks over time

  • Different types of cars to race against

  • Full Track and car selection systems

  • Managing Audio Systems

  • Designing complete custom tracks

  • Full user Interface with interactive menus

  • And more....

Start learning today and let me help you become a game developer.

Enroll now

What's inside

Learning objectives

  • Learn c#, a modern versatile programming language.
  • Understand the capabilities of 3d development in unity.
  • Develop strong and transferrable problem solving skills.
  • Gain an understanding of the game development process.
  • Learn how object oriented programming works in practice.

Syllabus

Introduction & Setup
Introduction
Introduction to The Unity Interface
Project Asset Package
Read more
Importing Assets & Setting Up A Scene
Driving
Setting Up Our Car
First Script Basics
Making The Car Move
Controlling Acceleration
Managing Our Cars Forces
Steering The Car
Better Steering
Setting Our Maximum Speed
Limiting Air Control
Pushing To The Ground
Rotating To Ramps
Turning Wheels
Leaving A Trail
Controlling The Trail
Stopping Dust
Camera Control
Setting Up A Follow Cam
Smoothing Movement
Top-Down Camera
Switching Cameras
Sound
Engine Sounds
Sound Sources
Impact Sounds
Improving The Impact Sound
CHALLENGE - ADD SKID SOUND
Making Laps!
Setting Up Simple Test Track
Setting Up Checkpoints
Hitting Checkpoints
Completing A Lap
Prefabs - Applying To A Real Track
Showing UI
Setting Up UI
Updating Lap Counters
Displaying Lap Times
Fixing Camera Start Position
AI Racing
Setting Up AI Cars
How The AI Will Work
Setting Targets
Making The AI Move
Preventing AI Getting Stuck In Loops
Randomising AI Speed
Fixing AI Not Turning Bug
Race Management
Tracking Player Position
CHALLENGE - SHOW PLAYER POSITION ON UI
Adding Rubber Banding
Race Start Countdown
Resetting To Track
Limiting Reset Times
CHALLENGE - MAKING MORE CARS
Starting & Finishing The Race
Starting The Player At Different Positions
Spawning Random AI Cars
Ending The Race
Laying Out Race Results
Updating Race Results
Making Menus
Setting Up Main Menu
Adding A Background Effect To The Menu
Creating A Pause Menu
Carrying Race Information Between Scenes
Starting Race Using Carried Information
CHALLENGE - MAKING MORE TRACKS
Race Setup
Laying Out Race Setup Menus
Navigating Race Setup Menus
Selecting Tracks
Selecting Racers
Opening Race Selection After A Race
Finishing The Game
Locking Tracks from Track Selection
Unlocking Tracks
Making A Simple Music Player
Building The Game
Course Completed!
BONUS: Completed Project Files
Completed Project Files

Save this course

Save Learn To Create A Racing Game With Unity & C# 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 Learn To Create A Racing Game With Unity & C# with these activities:
Review C# Fundamentals
Solidify your understanding of C# syntax and object-oriented programming concepts before diving into game development. This will make learning Unity and applying C# within the game engine much smoother.
Show steps
  • Review basic C# syntax and data types.
  • Practice writing simple C# programs.
  • Study object-oriented programming principles.
Review 'C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development'
Deepen your understanding of C# by reading a comprehensive guide. This will help you write more efficient and effective code for your racing game.
Show steps
  • Read the chapters on C# syntax and object-oriented programming.
  • Experiment with the code examples provided in the book.
  • Refer to the book when you encounter unfamiliar C# concepts in the course.
Follow Unity Tutorials on Car Physics
Explore Unity's official tutorials on vehicle physics to gain a deeper understanding of how car movement is simulated in the engine. This will complement the course's car controller implementation.
Show steps
  • Search for Unity's official vehicle physics tutorials.
  • Follow the tutorials and implement the car physics examples.
  • Compare the tutorial's approach to the course's car controller.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Experiment with Car Controller Parameters
Modify the parameters of the car controller script to observe how they affect the car's handling. This hands-on experimentation will solidify your understanding of the physics involved.
Show steps
  • Identify the key parameters in the car controller script.
  • Adjust each parameter individually and observe the changes in the car's behavior.
  • Document your findings and note the effects of each parameter.
Review 'Game Programming Patterns'
Learn about common game programming patterns to improve the structure and maintainability of your code. This will be especially helpful as you expand your racing game with more features.
Show steps
  • Read the chapters on relevant design patterns, such as the State pattern or the Observer pattern.
  • Identify opportunities to apply these patterns in your racing game project.
  • Refactor your code to implement the chosen design patterns.
Create a Custom Racing Track
Design and build your own racing track using Unity's terrain tools and assets. This will reinforce your understanding of level design principles and Unity's scene creation workflow.
Show steps
  • Plan the layout of your racing track.
  • Use Unity's terrain tools to create the track's environment.
  • Add assets such as trees, buildings, and barriers to the track.
  • Test your track with the car controller from the course.
Contribute to a Unity Asset
Contribute to an open-source Unity asset related to racing games. This will give you experience working with a team and improve your coding skills.
Show steps
  • Find an open-source Unity asset related to racing games.
  • Identify a bug or feature that you can contribute to.
  • Submit a pull request with your changes.

Career center

Learners who complete Learn To Create A Racing Game With Unity & C# will develop knowledge and skills that may be useful to these careers:
Game Developer
A game developer brings video game concepts to life, working on everything from gameplay mechanics to user interface design. This course may be useful for aspiring game developers, offering a practical introduction to Unity and C#, two fundamental tools in the game development industry. Creating a racing game from scratch provides hands on experience with core concepts, such as car controllers, artificial intelligence for opponents, and interactive menus. The course's coverage of audio systems and track design further prepares one for the multifaceted nature of game development.
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. This course may be useful for anyone aiming to become a Unity developer, offering comprehensive training in Unity and C#. By learning to build a racing game, one gains practical experience with essential Unity features, including scene setup, scripting, and user interface implementation. This course's focus on creating car controllers, AI opponents, and track selection systems directly aligns with the skills needed for Unity development.
C# Developer
A C# developer uses the C# programming language to build a variety of applications, including video games, desktop software, and web services. This course may be useful for those looking to become C# developers, as it provides a hands on learning experience with C# in the context of game development. By creating a racing game, one learns to apply object oriented programming principles and solve real world problems using C#. The course's emphasis on scripting car movement, managing game logic, and implementing user interfaces helps build a strong foundation in C# development.
Gameplay Programmer
A gameplay programmer focuses on implementing the interactive elements of a video game, such as character movement, game mechanics, and user interactions. This course may be useful for aspiring gameplay programmers, offering a practical introduction to game development with Unity and C#. By learning to create a racing game, one gains experience with designing and implementing car controllers, AI racing systems, and user interface elements. Developing skills in camera control and race management can directly transfer to gameplay programming tasks.
Artificial Intelligence Programmer
An artificial intelligence programmer designs and implements the intelligent behaviors of non player characters in video games. This course may be useful for those interested in artificial intelligence programming, as it covers the creation of a full race artificial intelligence system using Unity and C#. The course's focus on setting targets, making the artificial intelligence move, and randomizing artificial intelligence speed provides a solid foundation. This coursework helps one understand the core principles and implementation aspects of artificial intelligence in games.
User Interface Designer
A user interface designer focuses on creating intuitive and engaging user interfaces for software and games. This course may be useful for those interested in user interface design, as it covers the creation of a full user interface with interactive menus using Unity. The course's emphasis on setting up user interfaces, updating lap counters, and displaying lap times provides a practical introduction to user interface implementation in a game development context. Those who take this course can apply their knowledge to a wider range of user interface projects.
Game Designer
A game designer conceptualizes and designs the gameplay, rules, and overall experience of a video game. This course may be useful for aspiring game designers, offering insights into the game development process through the creation of a racing game. By learning to design tracks, implement race management systems, and create interactive menus, one gains a practical understanding of game design principles. The experience of building a complete game from scratch can inform the game design process.
Level Designer
A level designer creates and designs the environments and layouts of video game levels. This course may be useful for individuals interested in becoming level designers, providing practical experience with designing complete custom tracks using Unity. By learning to set up checkpoints, implement prefabs, and optimize track layouts, one gains a foundational understanding. Moreover, building the complete tracks also helps in understanding pacing and flow.
Audio Designer
An audio designer creates and implements sound effects, music, and other audio elements for video games. This course may be useful for aspiring audio designers, as it covers managing audio systems, creating engine sounds, and implementing impact sounds using Unity. The course's focus on improving impact sounds and adding skid sounds provides hands on experience. One who wishes to enhance the player experience should take this course.
Software Engineer
A software engineer designs, develops, and tests software applications. This course may be useful for software engineers interested in diversifying their skills or entering the game development industry, offering a practical introduction to C# and Unity. Creating a racing game provides experience with object oriented programming, problem solving, and software design patterns. The course's coverage of game logic, user interfaces, and artificial intelligence can broaden a software engineer's skillset.
Simulation Developer
A simulation developer creates software that models real world processes or systems for training, research, or entertainment purposes. This course may be useful for simulation developers, offering experience with Unity and C# in the context of building a racing simulation. The course's focus on creating realistic car controllers, artificial intelligence opponents, and dynamic environments can be applied to various simulation projects. This will broaden your understanding of the nuances of simulation development.
Virtual Reality Developer
A virtual reality developer creates immersive experiences and applications for virtual reality platforms. This course may be useful for virtual reality developers, providing a foundation in Unity, a popular engine for virtual reality development. By learning to create a racing game, one gains experience with 3D development, user interface design, and interactive controls. These foundational skills can be extended to virtual reality projects.
Augmented Reality Developer
An augmented reality developer creates applications that overlay digital content onto the real world using devices like smartphones and tablets. This course may be useful for aspiring augmented reality developers, offering a practical introduction to Unity. Unity is a versatile engine for augmented reality development. Completing coursework involves creating user interfaces which helps improve your understanding for development in augmented reality.
Web Developer
A web developer builds and maintains websites and web applications. This course may be useful for web developers interested in game development, offering an introduction to C# within the Unity environment. While primarily focused on game creation, the course exposes web developers to programming concepts, the Unity interface, and the process of building interactive applications, potentially opening doors to new skills and perspectives. It allows one to expand their programming toolkit.
Mobile App Developer
A Mobile App Developer focuses on creating applications for mobile devices, such as smartphones and tablets. This course may be useful for mobile app developers who intend to utilize Unity as a framework for building mobile games. Creating a racing game will let one gain practical experience with core Unity features, including scene setup, scripting, and user interface implementation. This course's focus directly aligns with many tasks needed for mobile app development.

Featured in The Course Notes

This course is mentioned in our blog, The Course Notes. Read one article that features Learn To Create A Racing Game With Unity & C#:

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 Learn To Create A Racing Game With Unity & C#.
Explores common design patterns used in game development. Understanding these patterns will help you write cleaner, more maintainable code for your racing game and future projects. It provides a deeper understanding of software architecture and how to apply it to game development. This book is more valuable as additional reading to improve coding practices.
Provides a comprehensive guide to C# and .NET Core, covering the fundamentals and advanced topics. It's a useful reference for understanding the C# language features used in Unity game development. While not specifically focused on game development, it provides a strong foundation in C# that will be invaluable throughout the course. It can be used as a reference to better understand the C# code used in the Unity game engine.

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