- by Rob Madden
This course should be entitled 'Game Creation with Unity' and should be broken down into three phases. The course will simultaneously teach object oriented programming fundamentals as illustrated by integrating C# scripts into multiple Unity game examples. The goal of the course is to teach students the knowledge they will need to be proficient in creating an arbitrary game using the Unity game creation system and C# as their scripting tool, if we choose to teach JavaScript that is also an option. No prior programming experience is needed for this course as the programming fundamentals will be taught in tandem to the Unity game creation platform. We will not teach the students how to build assets in this course. This course is also not about hardcore algorithmic gaming and building complex 3D physics in my opinion. Unity does not provide the abilty to modify or change the physics engine. I don't think we need to teach algorithmic fundamentals like complexity analysis in this course as most of the scripting techniques I've research thus far do not contain any sophisticated algorithmic code. That being said, this will most likely will not be a very easy course for beginners, but I think it's doable. Lastly, we will have to work in checkpoint for teaching revision control as I don't see any way around it.
-
A Foundation phase where students will learn the fundamentals of both C# (C Sharp) as well as the Unity cross-platform game creation system while creating their first game: Pong.
-
An intermediate phase where students will build two slightly more complex games with greater breadth and depth as well as a higher number of breakpoints and challenges. Both games are considered to be intermediate within the Unity community and we can tweak them as we see fit.
-
Lastly an advanced phase where students build a game entirely from scratch. We let the students choose from a pool of sophisticated games that are predetermined to have enough scope and complexity that they are challenging yet not impossible. This can be something like minesweeper for the 2D course which has a decent amount of programmatic sophistication to some type of basic 3D RPG with multiple levels, a character, spawning enemies, health, etc.
We should provide small video clips of doing certain things within the Unity interface. The idea here is that when going through tutorials if we use certain nomenclature like, 'Add a RigidBody2D component to the Player object' they will have a reference to a small video of actually taking the steps within Unity to do this. For example: - Changing the layout of the actual software - Adding a generic GameObject - Adding a component said GameObject - Switching between 2D and 3D mode - Adding a script to a game object - Opening a script in MonoDevelop - Dragging a sprite into the scene
We should also provide a gist or some type of table with keyboard shortcuts: - Mac OS: - All navigation shortcuts - Holding option and using the mouse to move the scene (2D) - Holding option and using the mouse to rotate the scene (3D) - Holding control and option and using the mouse to zoom in and out of the scene (2D, 3D) - Press 'f' to focus on a game object - Holding 'z' when snapping game components
Students will not find this course to be trivial, but by the time they have finished the course they will have a solid understanding of the following: - Revision control with git (we will have to teach this I assume) - Programming in C# of JavaScript - Building both a 2D and 3D standalone game with Unity
Most of what I've seen so far is this: - Video tutorials on how to build games on both Unity's website as well as youtube - Small projects with no real direction on random sites around the web
Our course will trump everything I've seen online by teaching a wide range of methodologies within Unity and reinforcing programming techniques by challeninging the students to think on their own. Everything I have seen online thus far simply provides the scripts you need and walks you through linking the game up. Usually this is done by providing a video with voiceover that explains why the students are doing certain things. Our course will be interactive and actually challenge the student after building their knowledge from scratch.