We may earn an affiliate commission when you visit our partners.
Course image
Dr. Tim "Dr. T" Chamillard

This course is the fourth course in the specialization about learning how to develop video games using the C# programming language and the Unity game engine on Windows or Mac. Why use C# and Unity instead of some other language and game engine? Well, C# is a really good language for learning how to program and then programming professionally. Also, the Unity game engine is very popular with indie game developers; Unity games were downloaded 16,000,000,000 times in 2016! Finally, C# is one of the programming languages you can use in the Unity environment.

Read more

This course is the fourth course in the specialization about learning how to develop video games using the C# programming language and the Unity game engine on Windows or Mac. Why use C# and Unity instead of some other language and game engine? Well, C# is a really good language for learning how to program and then programming professionally. Also, the Unity game engine is very popular with indie game developers; Unity games were downloaded 16,000,000,000 times in 2016! Finally, C# is one of the programming languages you can use in the Unity environment.

This course assumes you have the prerequisite knowledge from the previous three courses in the specialization. You should make sure you have that knowledge, either by taking those previous courses or from personal experience, before tackling this course. Throughout this course you'll build on your foundational C# and Unity knowledge by developing more robust games with better object-oriented designs using file input and output, inheritance and polymorphism, and event handling.

This course gives you even more tools to help you build great games with C# and Unity!

Module 1: Start using files to implement your Unity games

Module 2: Learn how inheritance and polymorphism help us write less code for our games

Module 3: Implement event handling to make better object-oriented designs and add menus to your Unity games

Module 4: Explore the complete implementation of a small Unity game

“Unity” is a trademark or registered trademark of Unity Technologies or its affiliates in the U.S. and elsewhere.

This course is an independent work and is not sponsored by, authorized by, or affiliated with Unity Technologies or its affiliates

Enroll now

What's inside

Syllabus

Exceptions and File IO
Inheritance and Polymorphism
Event Handling and Menus
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Examines object-oriented design principles, such as inheritance and polymorphism, which are foundational to most modern programming languages
Develops proficiency with file handling in C#, which is essential for storing and retrieving data in game development
Introduces event handling, a fundamental concept for creating interactive and responsive user interfaces in games
Provides hands-on experience in building a complete Unity game, offering practical application of the concepts learned
Requires prior knowledge of C# and Unity, making it suitable for intermediate learners with some programming experience
Assumes familiarity with the previous courses in the specialization, limiting accessibility for those who may not have taken them

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Intermediate oop concepts in unity

According to students, this course offers a solid introduction to applying Object-Oriented Programming principles within the Unity game development environment. Learners say the coverage of topics like File Input/Output and Inheritance and Polymorphism is particularly helpful for building more robust games. The section on Event Handling is also covered, although a few students found this specific module somewhat challenging compared to others. The practical examples and final project applying these concepts in a game context are frequently highlighted as strengths. Overall, students with foundational C# and Unity knowledge found it a valuable step up, though some felt it could go deeper for truly advanced learners.
Best suited for intermediate learners needing Unity OOP.
"If you know basic C# and Unity, this course is a perfect next step."
"As someone already familiar with OOP, I found the Unity specific application valuable."
"This course assumes you have completed the previous ones or have equivalent knowledge."
"Might be too basic for very experienced OOP developers, but great for applying it to games."
Overall pacing and explanations are good.
"The lectures were clear and easy to understand, moving at a good pace."
"I felt the course structure built logically on previous concepts."
"Explanations were generally concise and to the point."
"The course flowed well from one topic to the next."
Hands-on coding examples are highly useful.
"The coding examples provided in lectures were easy to follow and implement myself."
"Working through the practical demos solidified the theoretical concepts for me."
"The project at the end was a great way to apply everything learned."
"I appreciated the hands-on nature of the exercises and coding demos."
Learn how to use core OOP in a game context.
"I finally understand how to use inheritance effectively in my Unity projects."
"The course did a great job of showing how standard OOP applies directly to game code."
"Applying polymorphism concepts to game objects was made much clearer for me here."
"This really helped bridge the gap between general OOP and Unity specifics."
Some learners found event handling difficult.
"The section on event handling was the most confusing part for me."
"I had to seek outside resources to fully grasp the event handling concepts."
"The module on events felt a bit rushed compared to others."
"Understanding how events work in this context took extra effort."

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 Intermediate Object-Oriented Programming for Unity Games with these activities:
Volunteer as a Game Tester
Volunteering as a game tester will provide you with valuable hands-on experience in evaluating and providing feedback on game design and development.
Browse courses on Game Testing
Show steps
  • Find game testing opportunities at local game development studios or online platforms.
  • Apply for the position and provide samples of your work.
  • Test games and provide detailed feedback reports.
Develop a Simple 2D Unity Game
Creating a 2D game will allow you to apply the concepts learned in the course and build a portfolio piece that showcases your skills.
Browse courses on 2D Game Development
Show steps
  • Brainstorm and design your game concept.
  • Create the game's assets and environment in Unity.
  • Implement the game's core mechanics and gameplay.
  • Test and polish your game for a smooth user experience.
Record a Video Tutorial on a Specific Unity Game Development Technique
Creating a video tutorial will help you master the technique while also potentially helping other learners in the community.
Show steps
  • Choose a specific Unity game development technique to focus on.
  • Plan and script your tutorial.
  • Record and edit your video.
  • Share your tutorial on YouTube or other platforms.
One other activity
Expand to see all activities and additional details
Show all four activities
Develop a Unity Game Prototype
Creating a game prototype will allow you to test your game concept and get feedback before investing significant time and resources into full development.
Browse courses on Game Prototyping
Show steps
  • Define the scope and objectives of your game prototype.
  • Create a basic game design document.
  • Implement the core gameplay mechanics and features.
  • Test and iterate on your prototype to improve its design and functionality.

Career center

Learners who complete Intermediate Object-Oriented Programming for Unity Games will develop knowledge and skills that may be useful to these careers:
Video Game Designer
Video Game Designers are responsible for designing the overall concept and mechanics of video games. They work closely with programmers, artists, and other team members to bring their ideas to life. This course is a great way to learn the basics of programming and game design, which are essential skills for any Video Game Designer.
Game Programmer
Game Programmers are responsible for writing the code that makes video games run. They work closely with designers and artists to translate their ideas into a playable experience. This course is a great way to learn the basics of programming, which is an essential skill for any Game Programmer.
Technical Artist
Technical Artists are responsible for creating the technical assets used in video games, such as 3D models, textures, and animations. They work closely with programmers and designers to ensure that the game's visuals are both appealing and functional. This course is a great way to learn the basics of 3D modeling and animation, which are essential skills for any Technical Artist.
Level Designer
Level Designers are responsible for creating the levels and environments that players explore in video games. They work closely with designers and programmers to ensure that the levels are both challenging and fun. This course is a great way to learn the basics of level design, which is an essential skill for any Level Designer.
Game Producer
Game Producers are responsible for managing the development of video games. They work with all members of the development team to ensure that the game is completed on time and within budget. This course is a great way to learn the basics of game production, which is an essential skill for any Game Producer.
Game Tester
Game Testers are responsible for playing video games to find bugs and ensure that they are working properly. They work closely with programmers and designers to help identify and fix problems. This course is a great way to learn the basics of game testing, which is an essential skill for any Game Tester.
Game Writer
Game Writers are responsible for writing the story and dialogue for video games. They work closely with designers and programmers to ensure that the game's narrative is both engaging and entertaining. This course may be useful for aspiring Game Writers, as it can help them learn the basics of programming and game design.
Game Animator
Game Animators are responsible for creating the animations used in video games. They work closely with designers and programmers to ensure that the game's characters and objects move realistically and smoothly. This course may be useful for aspiring Game Animators, as it can help them learn the basics of programming and game design.
Game Artist
Game Artists are responsible for creating the visual assets used in video games, such as characters, environments, and textures. They work closely with designers and programmers to ensure that the game's visuals are both appealing and functional. This course may be useful for aspiring Game Artists, as it can help them learn the basics of programming and game design.
Game Designer
Game Designers are responsible for designing the overall concept and mechanics of video games. They work closely with programmers, artists, and other team members to bring their ideas to life. This course may be useful for aspiring Game Designers, as it can help them learn the basics of programming and game design.
Game Developer
Game Developers are responsible for all aspects of video game development, from design to programming to testing. They work closely with all members of the development team to ensure that the game is completed on time and within budget. This course may be useful for aspiring Game Developers, as it can help them learn the basics of programming and game design.
Software Developer
Software Developers are responsible for designing, developing, and maintaining computer software. They work with clients and users to understand their needs and develop software solutions that meet those needs. This course may be useful for aspiring Software Developers, as it can help them learn the basics of programming and software development.
Computer Programmer
Computer Programmers are responsible for writing the code that makes computers work. They work closely with software developers and other team members to develop and maintain computer systems. This course may be useful for aspiring Computer Programmers, as it can help them learn the basics of programming and computer science.
Computer Scientist
Computer Scientists are responsible for studying and developing new computer technologies. They work on a wide range of topics, from artificial intelligence to computer graphics. This course may be useful for aspiring Computer Scientists, as it can help them learn the basics of programming and computer science.
Information Technology Specialist
Information Technology Specialists are responsible for managing and maintaining computer systems and networks. They work with users and clients to provide technical support and troubleshooting. This course may be useful for aspiring Information Technology Specialists, as it can help them learn the basics of programming and computer science.

Reading list

We've selected ten 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 Intermediate Object-Oriented Programming for Unity Games.
Focuses on design patterns specifically for game programming, providing practical examples and explanations of how to apply them in game development. It complements the course's emphasis on object-oriented design and can serve as a valuable reference for implementing design patterns in Unity games.
Introduces software design patterns using a conversational style and engaging examples, making it a great supplementary resource for understanding object-oriented design concepts. While not specific to Unity or game development, the patterns it covers are widely applicable in software development, including game development.
Practical guide to developing games with Unity. It covers the basics of Unity development, including creating and manipulating game objects, writing scripts, and using the Unity editor. It also covers more advanced topics, such as physics, animation, AI, and multiplayer networking.
This seminal work on design patterns provides a comprehensive catalog of reusable design solutions. While not specific to game development, it valuable reference for understanding and applying design patterns in various software domains, including game programming.
Delves into the details of the C# programming language, covering advanced topics such as generics, LINQ, and threading. It valuable resource for learners who want to deepen their understanding of the language used in the course.
This classic textbook provides a comprehensive introduction to object-oriented analysis and design. It covers fundamental concepts, design principles, and best practices, providing a solid foundation for understanding and applying object-oriented design in game development.
This textbook provides a comprehensive introduction to algorithms and data structures. While not specific to game development, it offers a solid foundation for understanding algorithms and their applications in various software domains, including game programming.
Explores the principles and practices of game design from a holistic perspective. While not directly related to programming or technical aspects, it provides valuable insights into the creative and conceptual aspects of game development, complementing the course's focus on implementation.
Provides an in-depth exploration of game engine architecture. While not directly related to the course's focus on game development in Unity, it offers valuable insights into the underlying principles and design considerations of game engines, complementing the course's practical approach.

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