Lesson 1 - Who This Course is For

Tutorial Series: Introduction to Unity with C# Series

Next Article


Hi, I am Stephen and this is an Introduction to Unity with C# video series. So, you are interested in learning how to create video games, that is awesome, but chances are you probably have no prior experience with anything like game development, or perhaps even programming in general. That is totally fine too. This series is designed to be accessible by pretty much anyone, regardless of their prior experience or skill level in these topics. Nonetheless, you might still be wondering if you are really ready for this,  even if you are a beginner, do you have the necessary prerequisites?

I am here to tell you that now is the absolute best time to be getting into anything like game development or programming in general. Never before have we had these many tool sets that are free and open, and openly available. Reference material that is easily found at your fingertips on the internet, and a huge community of support available to you. It hasn’t always been this beginner friendly, not even close. Maybe to help illustrate this point, I will give you a little bit of introduction into how I came across Unity. To tell you little bit of a story about my bumpy roadmap, should I say, towards programming in general, but specifically with game development. My interest in programming started many years ago, back in high school actually. I wasn’t a very motivated, or a student that was interested very much in what was being offered. I didn’t find a lot of things to be challenging or relevant, and just, again, generally disinterested. One day I saw a course being offered in my high school called, something like ‘Intro to computer programming.” Now, right away this caught my interest, because I was interested in computers and even though I didn’t have my own at the time, and more I was interested in video games. I love video games and I knew that, if you want to create a video game you have to learn how to program at some point.

I remember going up the stairs to that class on that first day and hearing some sort of noise coming from the computer lab. It was strange because I was expecting it to be very quiet. I thought I was going to be one of the first people there in a class full of people kind of bewildered and not knowing what they were doing. I thought it would be quite quiet. I didn’t think too much of it, I couldn’t quite place what the sound was, so I continued up to the class and opened the door, and to my shock and amazement there was a class full of kids, guys. All guys unfortunately, that is often the case, and instead of being completely bewildered like I was expecting them to be like me they were all hunched over their keyboards and busily working away on their computers. Seemingly already programming, or at least really knowing what they were doing, and this was a shock to me. How did this happen? How can I be so far behind already? It is the first day of class, and I am 20 minutes early, but so it was. Yet again I felt like I arrived late to the party in life.

That was sort of a strike one in my enthusiasm and feeling like I was coming up to something I wanted to do with the best start possible. Not to throw myself a pity party, I continued forward and I tried hard in that class. I learned my arrays and loops, and made my cute little programs that I was proud of it in my own little way. I still didn’t really feel like I was being treated as an absolute beginner because I was in this class full of people that I had the sense already kind of knew what they were doing. Nonetheless, I was moving along until one day, I noticed there was a commotion to my right, a few stations down, a few computer stations down, and there was a group of 16 year-old, 17 year-old boys huddled around this computer making a commotion. Naturally I was interested, I walked over there and I looked over the shoulder of the guy who was at his computer station  and to my amazement this person somehow was able to create an animation on their screen.

Now, to put it into perspective at that time all I knew to put on my screen was basically limited to what was the keys that I could find on my keyboard. I mean pretty much that was it, I had no concept of how to create an animation. The animation was incredibly crude, I probably shouldn’t tell you exactly what it was on the screen. Remember, these guys, these 17 year-old boys,  you can probably fill in the blanks yourselves. All I will tell you is that there was probably a color palette of two shades of pink and a black background, but I was blown away. I was not … Not at their artistic skills or the merit of what they are producing. In reality five-year-olds with pencil crowns can produce something with more artistic merit, but just the fact that they could create that, and more so the fact that in contrast with what I was creating seemed so far ahead.

It felt like I was a million miles away from my goal of getting to game development, and everybody else was ahead of me. That was a bad start and strike two. I continued with the course, I finished it, I handled in my file project and I went to my teacher, and he graded it and he asked me if I had any questions and I said, “Yeah, I would like to know how to get into game development now that I have learned this computer programming language” It is called Turbo Pascal, so if any of you know of it, if you do you probably have similar feelings of shivers up and down, not in a good way, from Turbo Pascal.

The teacher looked at me and snickered a little bit, and kind of said, “Oh no, no, no. You don’t really create games with Turbo Pascal, as a matter of fact you probably won’t create anything,” because it is not really a programming language that’s used, even at the time, in any sort of commercial setting, or creative setting, or anything like that. To me that was strike three, I felt kind of ripped off, that I learned all this stuff that really wasn’t applicable, and I would have to learn an entirely new language all over again, almost from the beginning. Although the programming concepts throughout languages are quite similar. But, at the time I felt like I was just about done.

I kept in the back of my mind that I would like to come back to game development if the opportunity afforded itself to me. Somewhere down the line, maybe something will come along that allowed me to rekindle my interest in it. One day I heard about this platform called Unity that was a simplified game engine that was relatively easy to get into, handled a lot of the dirty work that you would otherwise have to do back in those old days that I was detailing. It was cross-platform, so you could write on platform and then publish to a bunch of others, and had lots of documentation and support and also used languages that were mature, but they were accessible, they weren’t as hard as something like C or C++ where you have to worry about memory management, all that kind of stuff.

So, I already knew about that, and I could … That pushed all the right buttons for me. I was excited, reinvigorated again. When I was getting into it I was a little bit trepidatious based on my previous experience about game development, but when I downloaded Unity and installed it, I mean it was a revelation. I fairly quickly found myself prototyping a game, or trying out different ideas that I had swimming in my head for 20 prior when I was naïve 16 year-old in that ill-fated programming class. I was blown away, and I was hooked pretty much immediately. It was such a thrill to be able to finally try out all these ideas I had, and know that I could use this technology going forward and not be abandoned because I am not learning everything I need to learn, or that it is a technology that is limited.

Alright, so hopefully this gives you a bit of an indication as to how much more beginner-friendly things are relative to how they used to be. How does this course exactly fit in with this?  Well, as I said there is a lot of material and reference material available on the internet, but not all of it assumes that you don’t know even the most fundamental basics. Some of the material out there almost takes you from the middle and then doesn’t explain the stuff underneath that you need to know in order to understand that material. I am not going to assume that, I am going to teach from the humble beginnings.  We will start of with something like “Hello World” and slowly work our way up and climb that mountain of knowledge until you end up in the end looking back and realizing that you were able to climb that steep hill by taking tiny manageable steps. I guess I probably spent a little bit too much time in this video detailing my personal history, and you’ll probably want to know a little bit more about how the course outline looks. I guess what I will do in the next video is I will describe all of this. Thanks for indulging me in this video. Alright, I will see you in the next video.

Related Articles in this Tutorial:

Lesson 1 - Who This Course is For

Lesson 2 - What to Expect from this Course

Lesson 3 - Installation and Getting Started

Lesson 4 - Starting the First Project

Lesson 5 - Prototype Workflow

Lesson 6 - Basic Code Review

Lesson 7 - Game Loop Primer

Lesson 8 - Prototyping Continued

Lesson 9 - C# Fundamentals and Hello World

Lesson 10 - Variables and Operations

Lesson 11 - Variables and Operations Continued

Lesson 12 - Floats, Bools and Casting

Lesson 13 - If Statement Conditionals

Lesson 14 - If Statements Continued

Lesson 15 - Complex Evaluations and States

Lesson 16 - Code Syntax vs. Style

Lesson 17 - Variable Scope

Lesson 18 - Object-Oriented Programming Intro

Lesson 19 - OOP, Access Modifiers, Instantiation

Lesson 20 - Object Containment and Method Returns

Lesson 21 - "Has-A" Object Containment

Lesson 22 - "Is-A" Inheritance Containment

Lesson 23 - Static Fields and Methods

Lesson 24 - Method Inputs and Returns

Lesson 25 - Reference vs. Value Types

Lesson 26 - Introduction to Polymorphism

Lesson 27 - Navigating the Unity API

Lesson 28 - Applying What You've Learned and Refactoring

Lesson 29 - Constructors, Local Variables in the Update Method

Lesson 30 - Collecting Collectibles, Items and Powerups

Lesson 31 - Spawning and Managing Prefab Powerups

Lesson 32 - Implementing Powerup State Logic

Lesson 33 - Displaying Text, OnGUI, Method Overloading

Lesson 34 - Referencing Instantiated GameObjects, Parenting

Lesson 35 - Understanding the Lerp Method

Lesson 36 - Creating Pseudo Animations in Code

Lesson 37 - Understanding Generic Classes and Methods

Lesson 38 - Animations Using SpriteSheets and Animator

Lesson 39 - Working with Arrays and Loops

Lesson 40 - Debugging Unity Projects with Visual Studio

Lesson 41 - Camera Movement and LateUpdate

Lesson 42 - Playing Audio Clips

Lesson 43 - Routing Audio, Mixers and Effects

Lesson 44 - Adding Scoring Mechanics and Enhancements

Lesson 45 - Scene Loading and Game Over Manager

Lesson 46 - Understanding Properties

Lesson 47 - Controller Mapping and Input Manager

Lesson 48 - Understanding Enums

Lesson 49 - Dealing with Null References

Lesson 50 - Handling Variable Framerates with time.DeltaTime

Lesson 51 - Preparing the Project for Final Build

Lesson 52 - Final Build and Project Settings

Lesson 53 - Introduction to the Unity Physics Engine

Lesson 54 - Understanding FixedUpdate vs. Update

Lesson 55 - Movement Using Physics

Lesson 56 - Attack Script and Collision Events with OnCollisionEnter2D

Lesson 57 - Projectiles and Stomping Attack

Lesson 58 - Parallax Background and Scrolling Camera

Lesson 59 - Infinitely Tiling Background Sprites

Lesson 60 - OOP Enemy Classes

Lesson 61 - OOP Enemy Classes Continued

Lesson 62 - Trigger Colliders and Causing Damage

Lesson 63 - Multi-Dimensional Arrays and Procedural Platforms

Lesson 64 - Finishing Touches

Lesson 65 - Series Wrap


Please login or register to add a comment