We may earn an affiliate commission when you visit our partners.
John French

Escape tutorial hell

If you've already tried to learn how to make your own games, but you still feel like you don't have the confidence to start a project of your own, then you might be stuck in tutorial hell, a state where you keep taking on new information, but without ever making any real progress.

If this sounds like you, then I want to help you escape.

Learn how to write scripts of your own

How to Code in Unity is a different kind of online course.

Read more

Escape tutorial hell

If you've already tried to learn how to make your own games, but you still feel like you don't have the confidence to start a project of your own, then you might be stuck in tutorial hell, a state where you keep taking on new information, but without ever making any real progress.

If this sounds like you, then I want to help you escape.

Learn how to write scripts of your own

How to Code in Unity is a different kind of online course.

If you've read any of my articles, or watched my YouTube videos, then you probably already know that I love to do deep-dives into the basics of Unity game development, often tackling the questions that everyone has, but that no one else bothers to answer properly.

This is because learning a skill, especially how to write code, isn't as simple as watching someone write a script, or copying an answer from a tutorial.

While it can be useful to see how things are made, if you don't understand when or why you'd do it in that way, when the time comes to write a script of your own, you're probably not going to know where to start.

Sound familiar?

Become a developer by mastering the basics

In this course, you'll learn the fundamental techniques of writing code that Unity developers use every day to get their projects finished, and you'll learn them in a way that actually sticks, with in-depth explanations, live demonstrations, and one to one support from me whenever you need it.

You'll master the core skills that all scripts, methods, and techniques in Unity are built on, and, by the end of this course, you won't need to copy other people's code, instead you'll be able to write your own C# scripts in Unity, with confidence.

Who this course is for

This course is for anyone who's serious about learning to write code in Unity.

Whether you're a complete beginner who wants to make their first game, or an experienced developer who wants to master the basics, this course can help you do exactly that.

If you're sick of learning how to make example projects, and you want to give yourself the skills to build something of your own, How to CODE in Unity will help you to do exactly that.

Enroll now

What's inside

Learning objectives

  • Start with the basics of scripting in unity, by learning how to use variables, functions, and loops
  • Move on to advanced techniques, such as events, inheritance, interfaces, and scriptable objects
  • You'll learn the fundamentals of c# scripting, so that you can confidently write your own code
  • As well as best-practice scripting approaches, such as the solid principles, and how to actually use them
  • Become a game developer by mastering the basics of c# scripting in unity

Syllabus

Welcome
What you'll learn on this course
You'll learn what scripts in Unity are for and how you're likely to use them in your game.
Introduction to Scripting
Read more
Demonstration
You'll learn about the different parts of a C# script in Unity, such as using directives, the class declaration, variables, and function blocks.
Anatomy of a Script
Operators
Code Examples
Learn how to create your own variables in Unity, the difference between reference types, value types, simple types and literals, when to make a variable public, and when not to.
Variables
Bonus Lesson (List Capacity vs Count)
Lesson Summary
Learn how functions in Unity work. How to write them, how to call them, and how to use them in your game.
Functions
Timing
Learn how to create basic logic by comparing, checking, and changing data with Operators.
You'll learn how to create conditional logic, using if conditions, switch statements, and how to stage logic with conditional code.
Conditional Statements
Learn how to connect scripts together in Unity, how to find other objects in the scene, and get references to their components.
Learn how a for loop works, how to loop through elements of an array, and how to use while loops to create mini update loops inside of a coroutine.
Loops & Iterators
Learn how to use coroutines, why they're useful, and when to use them instead of a regular function.
Coroutines
Coroutines Demonstration
Learn how to identify problems in your game, and how to fix them.
Learn how to manage when things happen in your game, change the execution order of scripts, and use Unity's event messages to trigger logic.
Connecting Scripts
Project Installation Instructions
Learn how numbers are commonly used in Unity, and game development in general, to create control values, manage directions, and to measure time.
Working with Numbers
Fixing Problems
In this demonstration series, you'll learn how to use the techniques featured in this module in context.
Setting up the Project
Introduction
Creating Movement
Infinite Scene Bounds
Global Audio Manager
Creating the Explosion Effect
Setting up Object Pools
Creating the Game Manager
Creating Damageable Objects
Setting up the Asteroids
Spawning the Asteroids
Creating the Projectile
Adding the Player Script
Creating the Weapon Script
Adding Respawn Protection
Respawning the Players
Updating the UI
Updating the Score
Spawning the Players
Showing a Win Screen
Learn how to create data instances using Scriptable Objects.
Scriptable Objects
Learn how to create custom data structures using classes, structs, and enums.
Data Structures
Learn how to use event delegates, Actions, and Unity Events to broadcast information to other scripts in your game.
Events & Delegates
Learn how to use the Script Composition approach to manage the abilities of your game objects.
Script Composition
Learn how to use Inheritance to share code between different scripts.
Inheritance
Learn how to use interfaces to create generalised connections between different scripts that can do the same thing.
Interfaces
Learn how to use properties to manage how variables can be accessed, and what happens when they're read and set.
Properties
Learn the most common causes of poor performance in scripting, and how to avoid them.
Performance
Learn how to use the SOLID principles to apply best-practice rules to your script writing, and when not to.
Best Practice
In the final lesson, you'll learn how to apply the best-practice techniques from this module to a real project.
Intro
Asteroid Responsibility
Movement Responsibility

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Starts with the basics of scripting, such as variables, functions, and loops, which builds a strong foundation for beginners in Unity game development
Progresses to advanced techniques like events, inheritance, and scriptable objects, which strengthens an existing foundation for intermediate learners
Covers best-practice scripting approaches, such as the SOLID principles, which are highly relevant to industry standards in software development
Teaches C# scripting, which is a core skill for Unity developers and is widely used in the game development industry
Includes a module on performance, which is a crucial aspect of game development and helps developers optimize their code for better game performance
Focuses on an older version of Unity, so learners may need to adapt the code to work with newer versions of the engine

Save this course

Save How to CODE in 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 How to CODE in Unity with these activities:
Review C# Fundamentals
Solidify your understanding of C# syntax and programming concepts before diving into Unity scripting. This will make learning Unity-specific code much easier.
Show steps
  • Review basic C# syntax and data types.
  • Practice writing simple C# programs.
  • Familiarize yourself with object-oriented programming concepts.
Review 'C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development'
Supplement your C# knowledge with a comprehensive guide. This book will provide a deeper understanding of the language and its features.
Show steps
  • Read the introductory chapters on C# syntax and data types.
  • Explore the sections on object-oriented programming.
  • Refer to the book as needed throughout the course.
Complete C# Coding Challenges
Reinforce your C# skills by completing coding challenges on platforms like HackerRank or LeetCode. Focus on problems that involve data structures and algorithms.
Show steps
  • Select a coding challenge platform.
  • Choose C# coding challenges related to data structures and algorithms.
  • Solve the challenges and test your solutions.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Create a Simple Unity Game Prototype
Apply your newly acquired Unity scripting skills by creating a small game prototype. This will help you solidify your understanding of the concepts covered in the course.
Show steps
  • Choose a simple game idea (e.g., a basic platformer or endless runner).
  • Create a new Unity project and set up the basic scene.
  • Write C# scripts to implement the game mechanics.
  • Test and refine your prototype.
Document Your Unity Learning Journey
Create a blog or video series documenting your progress in learning Unity. This will help you reflect on your learning and share your knowledge with others.
Show steps
  • Choose a platform for your documentation (blog, video, etc.).
  • Document your learning process, challenges, and solutions.
  • Share your content with the Unity community.
Contribute to a Unity Open Source Project
Contribute to an existing Unity open-source project on GitHub. This will give you experience working with a real-world codebase and collaborating with other developers.
Show steps
  • Find a Unity open-source project on GitHub.
  • Review the project's documentation and contribution guidelines.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.
Review 'Game Programming Patterns'
Learn common game programming patterns to improve your code design and architecture. This will help you write more maintainable and scalable Unity scripts.
Show steps
  • Read the chapters on common game programming patterns.
  • Identify opportunities to apply these patterns in your Unity projects.
  • Refactor your code to incorporate the patterns.

Career center

Learners who complete How to CODE in Unity will develop knowledge and skills that may be useful to these careers:
Unity Developer
A Unity developer uses the Unity game engine to create interactive experiences, including games, simulations, and virtual reality applications. This course, How to CODE in Unity, is perfectly aligned to those wishing to become Unity developers. The course focuses on how to write their own C# scripts within Unity, starting with the basics and progressing to more advanced techniques. This includes best practice approaches such as the SOLID principles. It encourages users to move away from tutorials and to start writing their own code. This course helps those wishing to become a Unity developer to master the basics of scripting, so that they can build their own unique projects.
Game Developer
A game developer is responsible for the creation of video games. This includes programming game mechanics, writing scripts for character movement, creating user interfaces, and implementing game logic. This course, How to CODE in Unity, directly helps those wishing to write code for games. The course aims to teach learners to write their own C# scripts in Unity, moving past tutorials and into the realm of creating their own projects. The course covers fundamental techniques that Unity developers use every day, including best practice approaches, such as the SOLID principles. With its focus on enabling learners to write their own scripts, this course prepares students to enter the field of game development.
Indie Game Developer
An indie game developer works independently or in small teams to create and publish games. They are often involved in all aspects of game development. This course, How to CODE in Unity, is directly relevant to any indie game developer. The course empowers them to write their own C# scripts in Unity, starting with the basics and progressing to more advanced techniques such as events, inheritance, interfaces, and scriptable objects. Indie game development requires a diverse skillset, and the ability to write your own scripts is critical. This course emphasizes learning how to write your own code, and not copying solutions from tutorials. This enables more creative and unique games.
Game Programmer
A game programmer writes the source code for a game. They are responsible for building the systems and mechanics that allow a game to function. This course, How to CODE in Unity, helps build the skills required to become a game programmer. By teaching learners how to write their own scripts in C# within Unity, the course prepares aspiring programmers to build their own game systems. The course covers fundamental techniques, such as variables, functions, loops, events, inheritance, interfaces, scriptable objects, and best practice. This course allows a game programmer to move past tutorials and build their own projects with confidence and autonomy.
Gameplay Programmer
A gameplay programmer works on the interactive elements of a game. This includes programming player movement, character abilities, enemy behavior, and other game mechanics. This is not limited to implementing such mechanics, but also includes the ability to make them fun, engaging and functional. This course, How to CODE in Unity, helps build a foundation for this role. The course teaches how to use variables, functions, and loops, in addition to more advanced techniques like events, inheritance, interfaces, and scriptable objects, using Unity's C# language. It will help a gameplay programmer who needs to write their own scripts in Unity, enabling them to realize their interactive, fun and engaging gameplay ideas.
Mobile Game Developer
A mobile game developer creates games for smartphones and tablets. These developers manage the entire development process, from initial design to final release. This course, How to CODE in Unity, is directly relevant for anyone looking to enter mobile game development. The course enables a mobile game developer to write their own C# scripts in Unity, instead of copying solutions from tutorials. It covers core skills, including an understanding of variables, functions, loops, and advanced topics such as events, inheritance, interfaces, and scriptable objects. The course gives learners the ability to create the systems they need for their mobile game, with confidence.
Augmented Reality Developer
An augmented reality developer designs and creates interactive experiences that merge the real and digital worlds. This includes applications for mobile devices and wearable technology. This course, How to CODE in Unity, will help augmented reality developers, as Unity is a commonly used engine for creating AR applications. The course gives a strong foundation in C# scripting within Unity, from the basics of variables and functions, to more advanced techniques like events, interfaces and scriptable objects. It teaches best practice approaches. As AR applications require complex interactive logic, this course prepares the augmented reality developer to build complex interactive systems.
Virtual Reality Developer
A virtual reality developer creates immersive experiences using VR technology. These often include interactive 3D environments, simulations, and games. This course, How to CODE in Unity, directly aligns with the needs of virtual reality developers. The course teaches the fundamentals of C# scripting within the Unity engine, essential for building VR applications. By focusing on scripting techniques, including advanced practices such as events, interfaces, and scriptable objects, the course helps VR developers to build dynamic and interactive VR experiences. It focuses on writing your own scripts, instead of copying solutions. This allows for more creative and innovative VR projects.
Technical Designer
A technical designer bridges the gap between design and programming. They use their technical expertise to implement game designs, often using visual scripting or other simplified programming tools. This course, How to CODE in Unity, helps introduce technical designers to the fundamentals of C# scripting and Unity. The course starts with basics such as variables, functions and loops and progresses to more advanced techniques, such as events, inheritance and interfaces. The course focuses on deep explanations, live demonstrations and support, and can help a technical designer master the basics and write their own code, when needed, allowing them to implement various game mechanics effectively.
Educational Game Developer
An educational game developer creates games for learning and training purposes. They design games that are engaging, interactive, and able to teach specific skills or concepts to users. This course, How to CODE in Unity, may be helpful for those looking to become educational game developers. The course focuses on learning C# scripting within the Unity engine, from variables and functions to advanced topics including events, inheritance, interfaces, and scriptable objects. It emphasizes writing your own code. As educational games require logic and interaction, this course gives developers the foundational skill to create such games.
Serious Game Developer
A serious game developer creates games for purposes beyond entertainment, such as for training, education, healthcare, or research. They design games with specific outcomes in mind. This course, How to CODE in Unity, may be helpful for a serious game developer. The course provides the skills needed to write C# scripts within Unity, using techniques such as variables, functions, and loops, as well as more advanced approaches including events, inheritance, interfaces and scriptable objects. A serious game developer needs to be able to confidently write their own scripts and not merely copy solutions. This course provides that capability.
Tools Programmer
A tools programmer develops tools that aid in the game development process. They create software that helps level designers, artists, and other team members work more efficiently. This course, How to CODE in Unity, may be useful to help aspiring tools programmers. By focusing on learning how to write their own code and understanding the fundamentals of C# scripting in Unity, the course prepares students to develop and customize Unity-based tools. The course emphasizes writing your own C# scripts, instead of copying from tutorials. It also provides advanced knowledge of interfaces, composition, events and best-practice. All these tools will assist anyone who has to develop specialized tools.
Simulation Developer
A simulation developer creates virtual environments for training or research purposes. These virtual environments often share aspects of games, though the simulation itself is distinct. Simulation developers rely on programming skills to create realistic, interactive scenarios. This course, How to CODE in Unity, may be useful for a simulation developer. As the course covers in-depth explanations of programming basics using C#, including variables, functions, loops, events, and scriptable objects, it provides simulation developers with a foundation to improve their work. Furthermore, the course focuses on writing your own scripts, which is a key aspect of simulation development.
Software Engineer
A software engineer develops and maintains software applications. They design, code, and test software to meet specific requirements and needs. Although not explicitly focused on game development, this course, How to CODE in Unity, can help software engineers understand fundamental programming concepts. The course teaches how to write code using C#, and introduces various programming techniques and best practices, including the SOLID principles. For a software engineer looking to expand their programming knowledge, or transition into game development, this course can be useful.
Interactive Developer
An interactive developer creates digital experiences that engage users. This includes websites, applications, and installations that respond to user input. This course, How to CODE in Unity, may be useful for those looking to become interactive developers. The course provides instruction in C# scripting within the Unity engine. This allows the interactive developer to explore options outside of Javascript. It also covers fundamental programming concepts and techniques, including working with variables, functions, loops, events and scriptable objects. This experience may help interactive developers that want to expand their repertoire.

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 How to CODE in Unity.
Explores common design patterns used in game development. Understanding these patterns will help you write more maintainable, scalable, and efficient code in Unity. It valuable resource for intermediate to advanced Unity developers. This book is more valuable as additional reading than it is as a current reference.
Provides a comprehensive guide to C# and .NET Core, which are essential for Unity development. It covers the fundamentals of the language, as well as advanced topics such as asynchronous programming and LINQ. This book is particularly useful for those who are new to C# or who want to deepen their understanding of the language. It can be used as a reference throughout the course.

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