About the course
Over a period of 10 weeks you study the various techniques used by the industry professionals step by step. We focus on improving your C# proficiency and introducing you to the inner structures of Unity and .NET. This course will teach you the unique methodical way of creating a solid game structure, guiding you through the writing process of a high quality and well structured code, instead of a so-called ‘spaghetti’.
What you'll learn
Abstractions. We will learn in very details C# abstract classes and interfaces
.NET Internals. How .NET memory management works, mechanism of object reference counting, instance and static objects
Scriptable Objects. We will learn advanced techniques of using Scriptable Objects for creating versatile architectures.
Architecture. We will study and practice the principles of creating maintainable and flexible game architecures
S.O.L.I.D. The practical uses of SOLID principles
Async/Await. Writing and asynchronous code using async/await, getting familiar with UniTask framework
Networking. We will learn to build games that asynchronously communicate with the server
LEVEL UP YOUR SKILLS
Improve your skills up to a professional level in a period of 10 weeks!
STAND OUT OF A CROWD
Become stronger than hundreds of other Unit developers and juniors!
ACCELERATE YOUR CAREER
Gaming studios are searching for the top professionals in the field. Become one of them!
This course is for you
This course is for people that have strong passion for game development and those who are serious about career in gaming industry.
Important. Prior experience in Unity engine is required. Unity junior is minimal level.
Developers who have successfully completed a basic Unity course, who are able to write C# scripts; know the basics of OOP; fluent in Unity Editor; know how to build complex prefabs and scenes and how to create materials and animations
EXPERIENCED UNITY DEVELOPERS
Unity developers with 1.5-2 year of working experience who seek to upgrade their skills to an advanced level, enlighten themselves about the modern approaches for game development and learn to plan and implement an architecture.
Immersive learning experience
We know that learn advanced techniques is a challenging task, so we designed learning experience that will let you study the material in a most effective way.
10 LIVE SESSIONS
Weekly interactive sessions. Watch, ask, learn, improve.
LEARN FROM EXPERTS
Learn from industry professionals with many years of experience of work in top gaming studios
4 LEARNING PROJECTS
Work on a gaming projects designed specifically for the course
Exercises for practicing the studied knowledge and techniques
We will check your exercises, give your a feedback and help to perfect your code and improve your skills
Learning materials for every subject + links to related online resources
Join our community, network, share your ideas with gamedev enthusiasts like you!
You'll be awarded a signed certificate on a completion of the course
2-3 exercises weekly
Introduction to architecture and analysis. View-Data separation
We will begin the course with a unique analyzing and code structuring method. This method was developed within Vector School. Its main goals are are learn to see the games as a puzzle which can be assembled in any desired combination, properly structure the code and avoid writing the ‘spaghetti code.
We will study one of the basic concepts in code organization - View-Date separation. This concept is essential for understanding many other approaches and design patterns; it is very widely used in the game development industry.
Memory Management, GC, Internals of delegates, callbacks and events
Naturally, a lot of attention is paid to the efficiency of games. Therefore, knowing well the inner mechanisms of .NET and it's Garbage Collector is essential for creating a world class games. Along with those mechanisms, we will study the specifics of working with events and callbacks, which always must to be taken into account while writing a game code. In addition, we will examine the differences between static and instance objects.
Timers. Using Unity functionality outside MonoBehaviours
In the process of the project creation you’ll be introduced to a technique that allow you to use Unity functionality like Coroutine launching, Update and FixedUpdate outside MonoBehaviours. You’ll learn to use this technique to create useful services and reusable timers.
C# Abstractions. Abstract classes
You’ll be introduced to the concepts of Abstractions and Polymorphism, study the principles of building extendable and maintainable games using abstract classes. You’ll also learn how to avoid writing a tightly coupled code and how to use S.O.L.I.D principles in practice. Abstract classes is one of the most powerful tools for building flexible architectures. Perfect mastery of Abstract Classes and Interfaces is expected of every professional Unity programmer.
C# Abstractions. Interfaces
We will build a Tanks game, see main use cases of C# interfaces, continue to learn S.O.L.I.D principles, and understand the differences between interfaces and Abstract classes. Similarly to Abstract classes,
interfaces are also used to build flexible, extendable and maintainable game architectures, therefore they are crucial to understand.
Building UI advanced indicators system
We will continue to work on Tanks game and develop a flexible and extendable system of displaying UI Indicators and work on improving the technique of using C# interfaces, building abstractions, and writing a loosely coupled code.
Async programming, UniTask library
We will examine the differences between a synchronous and an asynchronous execution models, and learn how to write an asynchronous code using the popular library UniTask. Writing coroutines won’t be necessary anymore - with async/await you’ll be able to write a clearer and more intelligible code than coroutines.
Networking and Task cancellation
Starting from this week and till the end of the course we will be working on Slots (slot machine) project. Here we will go through the principles of building Client-Server games. We will develop an asynchronous system of sending requests to the server, parsing the answers and handling the errors.
Building advanced Popups System
We will create a flexible and extendable system for display in-game popups, discuss the potential problems working with memory and learn to solve them using the Adressables system. Additionally we will continue to sharpen the skills of using Abstract classes and interfaces.
Game data storage system
In 99.9% of games it is required to save the player’s data. We will learn how to build a flexible and expendable data saving system.
Over the course period we will work on 4 different game projects. Those projects were created especially for practicing techniques and approaches included in the course. Many of the learned techniques are universal, and you will see that they are possible to apply in every game type.
The learning process is simple and effective. It aims for the best material implementation. Every week of the course is built in the following way:
Watch and Learn
Attend a weekly online lesson, learn by watching, pay attention to the presented code examples and ask questions.
Do the exercises, implementing the learned materials while coding.
We will check your work and give you suggestions for improving your code.
Take the recommendations in account, upgrade your code and sharpen your skills.
MEET YOUR INSTRUCTOR
Learn from industry professional
GAMEDEV CONSULTANT, GAME ARCHITECT
I’ve been working as a professional programmer for over 15 years, 9 years of which are in the gaming industry. I worked at companies such as Playtika, Jelly Button, diwip (Tangelo) and more, in the positions of Senior Unity developer, Unity Team Leader and R&D manager. My experience has taught me exactly which skills are required for every game developer in order for him to create a successful career in the industry. I created this course in order to share the knowledge I’ve accumulated throughout the years and assist talented and passionate game developers in becoming real Unity professionals.
What our graduates say about the course
"...After joining Vector School, I can say with certainty my game dev skills improved. Now I can more easily implement design patterns and complex game architectures..."
"... My technical skills have improved a lot. Now I can solve way more complex problems using professional approaches. Received a lot of practical advice from Pavel. I definitely recommend this amazing course..."
"... This course covers very important gamedev concepts and allows constant code writing, which for me was very important. Learning architecturing skills helped me to plan better my own projects implementation..."
"...I'm so grateful to Pavel and Vector School. Thanks to him I upgraded my career and gained invaluable confidence in my Unity expertise. He is super professional, and his teaching skillful and sensitive. ... "
Joining the course can be done very easily in 3 simple steps:
Reserve your place online by filling your contact details
Get all the details
You will receive an invitation to an open session by email. It’s a Zoom meeting where you will be able to ask questions and get all the information you require about the course and the school.
Once you’ve decided to take the course, we will send you the payment instructions. Access to the course’s materials and invitation to the online lessons will be granted to you immediately upon the completion of the payment.
Simple and transparent
We prioritize transparency of our pricing model and are proud of the accessibility and affordability of the course for the game developers’ community.
Temporary the course is available to ISRAEL market only.
PROFESSIONAL UNITY PROGRAMMING
10 online live lessons
4 game projects
Code review and mentoring
Recordings of live lessons
Access to Vector community
Access learning materials
May, 02 - Jul, 04