Welcome to Learn C# and make a videogame with Unity 2020 : beginner to pro.
If you are here, it is probably because you like video games and want to learn how to make your own video games. In addition, it is likely that you know how to draw pictures, design your own characters, your enemies, animations, scenarios, have thought out game mechanics, … but you lack one thing: KNOW HOW TO PROGRAM!
You don’t have to be ashamed. I myself did not create my first video game until I was 23 years old and since then, I had been studying mathematics. No one is born taught and that is why we are here: so that you can learn to make your own video game in Unity with the C# (c sharp) programming language, a simple language that is easy to learn, and that will give you many possibilities to expand your knowledge.
In this course, we will start with the basics and fundamentals: programming. Programming is like the language of computers. Right now you and I communicate in a common language: English, which we both understand perfectly and that is why we can be exchanging information: I write and you read. Probably if I were writing this to you in French or German, then you wouldn’t even understand what I am telling you, not because it is easier or more difficult, but because I would be using a different language. Computers and mobile devices themselves have their own language, their jargon, their slang. That is where we will begin our learning path together, young Padawan: by learning what a program is, how it manages to communicate with the graphic part, and how we, by pressing an arrow or a button, can make the computer understand what we want to say . We are going to learn together basic programming aspects such as:
• Variables and data types
• Methods or code snippets
• Object and object-oriented programming
• Decision operators
• Collections, arrays, and object lists
• The iteration operators
With all this, it will be like the cook who leaves the academy and has been taught to peel, cut, cook, boil, season, season … food. But even if we know how to fry an egg, we all know that fried eggs made by us, by our mothers, or by our grandmothers do not taste the same. Therefore, once we know the tools and basic principles of programming, we will put them into practice with a real project, our first 2D video game: a 2D platform where the objective will be to dodge enemies while collecting the maximum number of coins. It will be a simple video game but we will see its true potential in everything that can really be done from what we know:
• We will learn how to plan the Game Design and to split up the development stages of our video game
• We will learn what a prefab is and how they are used to create scenes for a video game
• We will create our own menus and the game information HUD
• We will learn typical mechanics and gameplay such as infinite scrolling or the physics of a video game
And really with all this, believe it or not, you will have made your first video game !!! I would also like you to introduce yourself when you start, say where you come from and what knowledge of video game development you have, and share in the course’s forum what type of video game you would like to make. Please refrain from impossibilities like “I want to make a Dark Souls, a Witcher, a Metal Gear” and so on. These games have studies of more than 400 expert developers and we are looking to get started. The goal is for you to make your first video game, and as such, it should be an achievable and easy goal to carry out so you don’t get discouraged.
Well, I’ve already warmed up and I’m looking forward to learning C # together and starting to create our videogame in Unity. So don’t think twice and sign up now to start your career as a video game developer with Unity 2020 and C #.
Introduction
Welcome and Introducing Hidran Arias instructor
Installing unity hub and unity
Installing unity hub
Testing Unity and Visual Studio Community Edition
Unity and c# documentation and developers community
My first script
Git repository with course's examples
Programming basics
What is a variable?
Variables: Adding attributes to a class
Variables: Summary
Methods and functions
What is a class?
Class inheritance
The script flow
Update method. Moving an object
Decision making
Decision making. Intro
Decision making. If and else statements
Decision making.Not statement and operator
Decision making.And and OR operator
Decision making. Truth tables and summary
Variables
Variable visibility
Variable visibility: public vs private
About variables' naming convention
Built-in types
Float and double types
Arithmetic operators. Binary operators
Arithmetic operators: Unary operators
Assigment operators
Variable visibility
What we have so far learned
Methods and functions
About methods' naming conventions
The input parameters of a function
The return value of a function
Object collections
Arrays
Lists
Data access
Arraylists
Dictionaries
Operators and iterations
Iteration operators
The foreach loop
Foreach. Looping Hashtables and dictionaries
The for loop
The while loop
Searching algorithm
Object oriented programming
Object oriented programming
Instantiating an object
Managing exceptions
Methods
Constructors
Let's create a game: Game design
The endless story
The idea, divide and conquer
Tasks list
Key questions for the game designer
Let's create a game: The game controller
Creating a new project
The concept of prefabs
Adding our bunny and ground prefabs to the scene
Interaction with the user and the Raycast concept
Raycast concept. Jump when grounded
Animations
Let's create a game: The game manager
Game states
Swtich: Managing Different game states
The singleton trick
Running the game
Triggers
Restart the game
Let's create a game: Designing the level
Procedural content vs. author content
The level piece: the lego pieces
The level generator
Generating new blocks
Camera follow and testing the level generator
Extending level
Let's create a game: Heads up display
Views
Buttons
Canvas
The game view
The game over view
Let's create a game: The coins
The coins prefab
Programming coins collection
High scores and data persistence
Final code cleanup and optimization
This is just the beginning of the path to Jedi master!