We may earn an affiliate commission when you visit our partners.
Rick Davidson, GameDev.tv Team, and Nathan Farrer (aka Dapper Dino)

Build 3 simple mobile games using the free Unity game engine. Learn all the ways mobile games differ from pc games (including touch inputs, push notifications, ads for revenue, screen resolutions and layouts and more). Develop your own awesome mobile games and publish them on the Apple App Store or Google Play Store.

This course is not for absolute beginners. You'll need a basic grasp of Unity and C# (understanding variables, methods, if statements, loops and other similar concepts) before you get started, so you're ready for the more advanced concepts taught.

By the end of this course you will be able to...

Read more

Build 3 simple mobile games using the free Unity game engine. Learn all the ways mobile games differ from pc games (including touch inputs, push notifications, ads for revenue, screen resolutions and layouts and more). Develop your own awesome mobile games and publish them on the Apple App Store or Google Play Store.

This course is not for absolute beginners. You'll need a basic grasp of Unity and C# (understanding variables, methods, if statements, loops and other similar concepts) before you get started, so you're ready for the more advanced concepts taught.

By the end of this course you will be able to...

  • Create games specifically designed for mobile devices using touch input controls.

  • Ensure that your game will work well no matter what device size or resolution is being used.

  • Create push notifications to inform players about changes in status for the game (eg. their energy has recharged).

  • Implement Unity's advertising system so that you can make money from displaying relevant ads in your game.

  • Use Unity's profiler to identify what, if any, performance issues users will have in your game.

  • Prepare your game and understand how to submit it to be published on the Apple App Store or Google Play Store.

This course is created with both Windows and Mac users in mind, meaning you can get full benefit whether you are a windows or mac user. We'll also walk you through deploying to both Android (Google) and iOS (Apple) by showing you how to set up your developer account and submit your game.   

All students have access to the Q&A forums where our Instructors, Teaching Assistants and Community are ready to help answer your questions and cheer on your success.

Enroll now

What's inside

Syllabus

Introduction & Setup

In this video (objectives)…

  1. Rick and Nathan welcome you to the course.

In this video (objectives)…

  1. Download Unity Hub, Unity 2020.2 and Visual Studio Code, including the extensions for C# and Unity Code Snippets.

Read more

In this video (objectives)…

  1. This video is for folks who have not yet used Unity, or used it a long time ago. We look at the main windows and add game objects to our scene.

In this video (objectives)…

  1. This course is intended for folks who already have the fundamentals of C# understood. This particular lecture is a quick reminder for the core concepts that we'll assume you know already in this course.

In this video (objectives)…

  1. Lucy invites you to join us in our various community support forums in order to ask questions, connect with other students and share your progress.

In this video (objectives)…

  1. Any time we change our project during a lecture we will commit that change to a public source control repository for students to access. In this video we show you how to access that content.

Ball Launcher
Section Intro - Ball Launcher

In this video (objectives)…

  1. We download and install the packages that we will need by using Unity's Package Manager to add mobile functionality to our game. Then we finish off by having a quick look at the Device Simulator package in action.

In this video (objectives)…

  1. We create a ball and give it the ability to interact with Unity's physics system. The ball will fall due to gravity and will bounce when it collides with the ground.

In this video (objectives)…

  1. We use the Spring Joint component to attach the ball to a pivot point. This allows it to move around and then sling back due to the tension in the rope.

In this video (objectives)…

  1. We will create a script that will allow us to read touch input and log the data out to the console.

In this video (objectives)…

  1. We will learn how to convert screen-space coordinates to world-space coordinates.

In this video (objectives)…

  1. We will use the world-space coordinates of our touch input to move the ball to where our finger is touching the screen.

In this video (objectives)…

  1. We create a script that lets us drag the ball with our cursor/finger and then release to launch the ball using the Spring Joint.

In this video (objectives)…

  1. We make the ball respawn a few seconds after being launched so that the game can continue to be played.

In this video (objectives)…

  1. We make make the camera zoom in and out based on the size of the device that is being used to make sure that everything fits on screen.

In this video (objectives)…

  1. Now that we have a working game, we're ready to get it onto our (Android) mobile device!

In this video (objectives)…

  1. Now that we have a working game, we're ready to get it onto our (iOS) mobile device!

In this video (objectives)…

  1. We look into how to use multi-touch to read data regardless of how many fingers are on the screen at once.

Simple Driving
Section Intro - Simple Driving
Project Setup

In this video (objectives)…

  1. We create a script to make a car drive forward whilst speeding up over time.

In this video (objectives)…

  1. We make our input steer the car left and right based on which side of the screen we touch.

In this video (objectives)…

  1. We set up a Cinemachine camera to smoothly follow our car.

In this video (objectives)…

  1. We end the game once the player crashes into an obstacle.

In this video (objectives)…

  1. We build a track for the player to drive around in.

In this video (objectives)…

  1. We create a system to handle score based on how long the player has survived for without crashing.

In this video (objectives)…

  1. We create a main menu where you can see the current high score and start playing the game.

In this video (objectives)…

  1. We create an energy system for playing the game which recharges once you have ran out.

In this video (objectives)…

  1. We implement Android notifications to alert users when their energy has recharged.

In this video (objectives)…

  1. We implement iOS notifications to alert users when their energy has recharged.

In this video (objectives)…

  1. We improve upon the energy system so that you don't have to re-open the app to play once your energy has recharged.

Create a game to control a spaceship, avoid and destroy asteroids, and implement ads that reward players. (WIP)
Section Intro - Asteroid Avoider

In this video (objectives)…

  1. We download and install the packages that we will need to get started with the section.

In this video (objectives)…

  1. We read where the player touches the screen relative to the spaceship and calculate in which direction to add force.

In this video (objectives)…

  1. We can now add the calculated force to our spaceship and move around the screen.

In this video (objectives)…

  1. We make sure that our spaceship always stays in views of the camera by teleporting it when touching the edges of the screen.

In this video (objectives)…

  1. We make the spaceship rotate to face in the direction of its velocity.

In this video (objectives)…

  1. We create asteroids for the player to avoid, otherwise the game ends.

In this video (objectives)…

  1. We use Unity's particle system to create a starfield for the game's background.

In this video (objectives)…

  1. We create a system to spawn in asteroids and launch them across the screen.

In this video (objectives)…

  1. We end the game by stopping the asteroid spawning and popping up the game over UI to allow the player to player again or return to the main menu.

In this video (objectives)…

  1. We give the player score for surviving and display their final score when they crash on the game over UI.

In this video (objectives)…

  1. We let the player watch an ad after they crash which allows them to continue building up their score.

In this video (objectives)…

  1. We'll use Unity's profiler tool to view our game's performance costs and look into possible ways to optimize.

Become prepared to publish your games on Google Play Store and the Apple App Store. (WIP)

In this video (objectives)…

  1. We have a look into the process for publishing to the Google Play Store and make sure that we are prepared for getting our own games out to the public.

In this video (objectives)…

  1. We have a look into the process for publishing to the Apple App Store and make sure that we are prepared for getting our own games out to the public.

In this video (objectives)…

  1. We install and set up the Unity IAP package and implement a simple use case where players can purchase a new skin for their vehicle.

In this video (objectives)…

  1. We're finished with the course - good luck with your mobile games, and please share what you come up with!

Continuing Your GameDev Journey
Bonus Lecture

Save this course

Save Unity C# Mobile Game Development: Make 3 Games From Scratch 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 Unity C# Mobile Game Development: Make 3 Games From Scratch with these activities:
Review C# Fundamentals
Reinforce your understanding of C# fundamentals, including variables, methods, if statements, and loops, as the course assumes prior knowledge of these concepts.
Show steps
  • Review online C# tutorials and documentation.
  • Complete practice exercises on C# basics.
  • Write simple C# programs to test your understanding.
Practice with Unity Editor
Familiarize yourself with the Unity Editor interface and basic functionalities to navigate the environment efficiently during the course.
Browse courses on Unity Editor
Show steps
  • Explore the Unity Editor interface and its various windows.
  • Create a new Unity project and add basic game objects.
  • Experiment with moving, rotating, and scaling objects in the scene.
Review 'C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development'
Deepen your understanding of C# and .NET Core, which are essential for Unity game development, by reading this book.
Show steps
  • Read the chapters covering C# fundamentals and object-oriented programming.
  • Study the sections on .NET Core and cross-platform development.
  • Try the code examples and exercises provided in the book.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Create a Simple Mobile Game Prototype
Apply the concepts learned in the course by building a basic mobile game prototype, such as a simple endless runner or a puzzle game.
Show steps
  • Design a simple game mechanic suitable for mobile devices.
  • Implement touch input controls for your game.
  • Create basic game assets and integrate them into your project.
  • Test your game on a mobile device or emulator.
Document Your Mobile Game Development Process
Reinforce your learning by documenting your mobile game development process, including challenges faced, solutions implemented, and lessons learned.
Show steps
  • Keep a development journal or blog to record your progress.
  • Document the design decisions and technical implementations.
  • Reflect on the challenges you encountered and how you overcame them.
  • Share your documentation with other students for feedback.
Optimize an Existing Mobile Game for Performance
Apply your knowledge of Unity's profiler and optimization techniques to improve the performance of an existing mobile game.
Show steps
  • Select an existing mobile game project to optimize.
  • Use Unity's profiler to identify performance bottlenecks.
  • Implement optimization techniques, such as reducing draw calls and optimizing scripts.
  • Measure the performance improvements after applying the optimizations.
Review 'Game Programming Patterns'
Learn common game programming patterns to improve the structure and maintainability of your Unity C# code.
Show steps
  • Read the chapters on creational, behavioral, and structural patterns.
  • Identify opportunities to apply these patterns in your own projects.
  • Implement the patterns in your code and observe the benefits.

Career center

Learners who complete Unity C# Mobile Game Development: Make 3 Games From Scratch will develop knowledge and skills that may be useful to these careers:
Mobile Game Developer
As a Mobile Game Developer, you will create and design engaging games specifically for mobile platforms. This course helps build a foundation for this role, as you learn to develop three mobile games from scratch using Unity. You will learn how mobile games differ from PC games, covering aspects like touch inputs, push notifications, ad integration for revenue generation, screen resolutions, and layouts. The course focuses on creating games designed for touch controls, ensuring compatibility across different device sizes, implementing push notifications, and integrating Unity's advertising system. You'll also learn to use Unity's profiler to address performance issues and prepare your game for publishing on the Apple App Store or Google Play Store, essential steps for a Mobile Game Developer.
Indie Game Developer
As an Indie Game Developer, you are responsible for all aspects of game development, from design and programming to art and marketing. This course strongly aligns with the indie developer's need for versatile skills and a practical, hands-on approach. By creating three mobile games from scratch, you will acquire a comprehensive understanding of the game development pipeline. The course covers essential skills like using touch inputs, implementing push notifications, monetizing through ads, and optimizing for various devices. It ultimately prepares you to independently develop and publish your own mobile games as an Indie Game Developer.
Unity Developer
The role of a Unity Developer focuses on using the Unity game engine to bring creative visions to life. This course directly enables aspiring Unity developers to gain practical experience. The course centers around building three mobile games, offering hands-on experience with Unity. You're introduced to mobile-specific considerations like touch input, screen resolution adaptability, and mobile advertising. The course is tailored toward leveraging Unity to create and optimize games for mobile devices, making it valuable for anyone wanting to become a Unity Developer.
Game Programmer
Game Programmers write the code that brings a game to life, implementing game mechanics, artificial intelligence, and user interfaces. This course is directly applicable to the skills required for a Game Programmer, especially in the mobile gaming space. The course provides hands-on experience building three different mobile games using Unity and C#. You will learn how to handle touch input, optimize performance for mobile devices, and implement features like push notifications and ads. By completing this course, you will build a portfolio of mobile games, demonstrating your abilities as a Game Programmer.
Gameplay Programmer
Gameplay Programmers are responsible for implementing the mechanics and features that make a game engaging and fun. This course helps build a strong foundation for this role. The course centers on building three mobile games using Unity and C#. You will learn how to implement touch input, create game mechanics, and optimize performance for mobile devices. The course provides practical experience in gameplay programming, allowing you to develop the skills needed to create engaging and interactive game experiences. This is essential for a Gameplay Programmer.
Virtual Reality Developer
Virtual Reality Developers are responsible for creating immersive experiences for VR headsets. This course may be useful as it provides experience with Unity, which is commonly used in VR development. You will gain practical skills in handling user input, optimizing performance, and designing interactive environments. The course's focus on mobile development is valuable, as mobile VR is an emerging area. By taking this course, aspiring VR developers can build a foundational skillset with game development.
Augmented Reality Developer
Augmented Reality Developers create interactive experiences that overlay digital content onto the real world. This course provides foundational skills that are relevant to augmented reality development. The course focuses on using Unity, a popular engine for AR applications. You will learn how to handle user input through touch, manage screen resolutions for different devices, and optimize performance for mobile platforms. The course also has elements that give insight to the design of compelling user experiences. This is essential for an Augmented Reality Developer.
Mobile Application Developer
The role of a Mobile Application Developer involves developing applications for smartphones and tablets, and although this course focuses on games, it uses tools and techniques applicable to other mobile applications. You can learn how to adapt applications to different screen sizes, which is important for mobile apps. The course covers user interface considerations like touch input, and teaches you how to implement push notifications. The course also dives into the Android and iOS ecosystems. These skills may prove transferable to mobile application development.
Application Developer
Application Developers are responsible for creating, testing, and maintaining software applications. This course may be useful to those looking to enter this field. The course focuses on building mobile games using Unity and C#. You will get hands-on experience with mobile development, learning how to handle touch inputs, screen resolutions, and device compatibility. The course also covers how to implement features such as push notifications and advertisements. This may be particularly useful for those who intend to focus on mobile application development.
Game Designer
A Game Designer conceptualizes and designs the gameplay, rules, and overall experience of a video game. While this course focuses on the technical aspects of game development using Unity, it may still be useful because it provides practical insights into game creation. By building three mobile games, you will gain a better understanding of how design choices translate into the final player experience. You will learn how to implement features like touch controls, push notifications, and ads, which can inform your design decisions. For a Game Designer, this course may provide a helpful, hands-on perspective.
Software Engineer
Software Engineers design, develop, and test software applications. This course helps build a portfolio, even though it focuses on mobile game development, it provides practical experience in software engineering principles. The course emphasizes using C# within the Unity engine, which can be a useful skill for some software engineering roles. By working through the game development projects, you will gain hands-on programming experience, which helps build a foundation for a Software Engineer.
Software Developer
Software Developers are responsible for designing, coding, and testing software applications. This course may be helpful, as it provides experience in creating mobile games using C# and Unity. You will learn how to develop applications that respond to user input, manage different screen resolutions, and optimize performance for mobile devices. This course also touches on debugging skills. Those looking to become Software Developers may find this a useful introduction to software development concepts and practices.
Technical Artist
A Technical Artist bridges the gap between artists and programmers, optimizing art assets for use in games. This course may be useful because it provides a deep understanding of the Unity engine and its capabilities. You will learn how to optimize games for mobile devices, including managing screen resolutions and dealing with performance constraints. By working through this course, a Technical Artist may develop a greater appreciation for the technical challenges involved with game development, leading to more effective collaboration with programmers.
Quality Assurance Tester
Quality Assurance Testers play a crucial role in ensuring the quality and stability of software products, including mobile games. This course helps build a deep understanding of the mobile game development process, which is valuable for effective testing. By learning how mobile games are built from scratch using Unity, you will gain insights into potential issues related to touch input, screen resolutions, performance, and platform-specific requirements. The course also introduces you to the Unity profiler, a tool used for identifying performance bottlenecks. This knowledge can inform testing strategies and improve the effectiveness of Quality Assurance Testers.
Simulation Developer
The role of a Simulation Developer involves creating simulations for various purposes, such as training, research, or entertainment. While this course is focused on game development, it may be helpful to those interested in simulation. The course also focuses on the fundamentals of physics, which will allow the developer to simulate how objects move and interact. The principles from this course may transfer to creating simulations for other purposes.

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 Unity C# Mobile Game Development: Make 3 Games From Scratch.
Provides a comprehensive guide to C# and .NET Core, covering the fundamentals and advanced concepts. It's useful for solidifying your C# knowledge before diving into game development. It also provides a broader understanding of the .NET ecosystem, which can be helpful for more advanced Unity projects. This book is more valuable as additional reading to supplement the course.
Explores common design patterns used in game development. Understanding these patterns can help you write cleaner, more maintainable code for your Unity projects. While not specific to mobile, the principles apply universally. This book is best used as additional reading to improve your overall game development skills.

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