Welcome to the course Game Development 12!
Course outline and Introduction
In Game Development 12, we will be creating a collection 3D platform games in Unity, learning about the importance of storytelling in game development, creating supplementary game assets in Blender 2.9 and learning how to write game scripts in C # . Although this isn't a programming course per se, being able to write or modify code in an operational sense is essential to become a successful game developer. Coding skills play a key part of character controllers, character behaviours and scene interactions. In most cases, you will be given a basic version of the relevant C # scripts but you will most likely have to modify many of them to deal with issues in your custom environments or other specific applications. An example of this might be, having your character leap and jump instead of running. Unless there is supporting code your games will not have all the features that you'd like. Good luck and happy game making!
The general flow of the course will be as follows:
C # game programming / history of computer graphics and game development / story development / Unity Game # 1 - Roller ramp game (introducing ball mass physics, colliders / concept of escalating challenge, simple C # gaming scripts / Introduction to Blender 2.9 - expressly used in this course for 3D game assets construction and personal augmentations / Unity Game # 2 - 'Treasure Island or...' - our first terrain based 'island' adventure game - exploring terrain making - search and discover within a defined space- story construction - introduction to Unity store assets and embedding Blender models / Unity Game # 3 - game development choice project with clear construction steps / Unity Game # 4 - Final course project - an entirely new game developed by yourself or in collaboration with another classmate.
Hand in Folder - Game Development 12
(*) Note: ALL completed Unity games should be submitted as complete web GL build - submit game link only!
Contact Mr. Linburg directly: telinburg@sd43.bc.ca
Featured Game Developers
Markus "Notch" Persson - Creator of Minecraft / Nolan Bushnell (Inventor of Pong and started game company Atari) - Shigeru Miyamoto (Donkey Kong) / Alexey Pajitnov (Tetris - with 4 squares)
Important Resource Links for the course
Codeacademy for C # tutorials (sign up required - use a "spare" email address / Blender 2.93 (for game asset modeling) / Unity Hub - Unity game download - Unity Game Asset Store (free ones only please) / Unity Education learn site / Unity Help - Instruction guide
Simmer.io / Itch.io (a place to host your Unity Web GL builds)
History of video games / History of video games (20 min) / play retro games - wow weren't those cool! What can learn from the past?
Other Utility links
How to play a version of your Unity game without using a Unity Editor / How to animate a rigged puppet character (thanks William) - say from the unity store - this saves you time in preparing the movement sequencing - (NON SD 43 email account required - not sure why - eg GMAIL)
Module # 5 - Choose a new Game Genre or Design your own from Scratch
Please place your game link here! - Game Development project 3!
For our next gaming project, you will be developing a game based on your own design parameters. To aid in this endevour, you have been provided withh a partial list of quality games from the Unity gaming catalogue. These games represent different styles of game making; everything from 2 D RPG platform game to racing games and 3 D adventure games. You are free to either follow one of the tutorials listed below / use parts of the game or scripts / or use none of them. As well, you might want to use these resources more as a 'system' of how to build that style of game and then swap out the sprites, game characters or change the 'mission entirely'. This will be up to you. Have fun and happy gaming!
In this platform game you will learn about the following:
Learn about the Bolt Visual Scripting interface
Become familiar with Visual Scripting concepts
Navigate the Bolt Graph, Graph Inspector and Variables windows
Develop mechanics and system using Bolt’s node based graph system
Create a full Platformer experience consisting of 4 levels and a main menu.
This game covers all the principles of typical 3 D game construction including making acid ponds, using environment prefabs, boundaries, moving platforms, respawning points, traps and restoring health. The specifics in terms of characters, plot and other sprites are up to you to create. A great option for you to advance your gaming skills.
Ruby's Adventure - 2D Beginner ( you can use the format and make the game your own with your own game sprites)
A town is in peril after their friendly robots become broken! It's Ruby's quest to fix them!
Learn to create this small 2D RPG from scratch and save the town!
John Lemon's haunted Jaunt 3 D beginner
Welcome to the John Lemon’s Haunted Jaunt: 3D Beginner Project! In this project, you won’t just discover how to create a stealth game — each of the 10 tutorials also explains the principles behind every step.
The Karting Microgame Template is a 3D kart racing game that you can mod and customize. Complete the Creative Mods to build on the project and make it more your own, while learning the basics of Unity.
Unity Gaming Catalogue
There are some other tutorials located on the Unity Learning Catalogue
Other Student Contributed Game Making Ideas
Roller Ball Ramp Game Peer Review activity Due: Monday April 11th
Steps for this Activity
When rating activity begins, you will download a LOCAL COPY OF THIS SPREADSHEET (AS excel). Rename this document with your name: eg. MrlinburgRB
You will play, rate and review each of these games - you will offer your rating out of 100 plus an antidotal comment for EACH submitted game please be as honest as possible as it is an important part of the game development process to be able to effectively reflect on what is "good" and effective game play and what is not. As well, we generally build games for a target audience and it is important that we understand what resonates with the gaming community and what does not.
I will collect these review sheets in a few days - ALL AT ONCE. I will lock the folder once they are submitted. Thank you for participating in this valuable activity!
Module # 4 - Create a Multifaceted Terrain Based Adventure Game
Monday June 6th - Please have a web GL build of your game ready for peer assessment
In our second game, you will be tasked with creating a varied and interesting landscape for your characters to explore. Your game can take the form of an adventure with mysteries to solve or precious objects to run around and collect or your game could take on more of a survival dimension. You could include enemies to fight or avoid and other barriers and obstacles for your game character to overcome. You could include things such as trap doors, secret cave systems, houses to explore, ledges to walk along, broken bridges to jump. Your game needs to have a DEFINED and specific territory to explore which is why making your terrain an "Island" is ideal. You should also keep in mind the level of technology and style of dress to give your game a place in history. However, your game can, of course, take place in the present and future as well. We want your game to have some focused goals or objectives that the players can overcome. How you achieve this is entirely up to you. In addition, you are expected to include at least TWO self made game objects constructed and modelled in Blender 3 D. The other game characters and game objects will need to be located and downloaded from the Unity Store. You can add in models and characters from other download sites but be sure they are going to be compatible with Unity.
Project Criteria
Terrain - landscape that is varied in both elevation and style. For example, one might have a canyon system or a high volcanic peak to explore
Use of the Terrain tools to add texture and vegetation that is appropriate to its elevation. For example, one would most likely find snow on the peaks of mountains, grasslands in the shadow of a mountain and sand on the beach
Include game characters (including any enemies) / game objects etc. downloaded from the Unity Store (see links for access)
Your game characters should have scripts written in so that they can 'interact' with their environment (for example, be able to pick up and use objects / be able to draw a sword and fight an enemy / be able to open doors / jump / run / and other reasonable abilities)
Ideally, your camera should be set up so that it is from a first person perspective. It adds excitement and drama when the game unfolds through the eyes of the character (another good discussion of first person versus third person)
Weather - if possible create some weather or angle the light for different times of days. Some other examples include adding fog or rain or snow. All of this adds to the drama and excitement of the environment.
Be sure the game objectives are fairly clear (unless that is part of the game's design)
Finally, if possible revise our game design document to be sure that the story you created fits the 'actual design'
Resources
A (non Island adventure game example) / An Adventure Game sample (non-island) you can use parts of this - game scripts etc.)
Unity Video - picking up objects / Character picking up objects (script example) / Git hub example of picking up objects / adding in trees in Unity / adding trees (video)
Game related Code snippets
How to pick up objects in Unity (includes player controller / make objects 'grabbable' ) / Change "skybox"
Module # 3 - Prepping our Adventure Game Due: April 19th
Creating your Own Game Assets in Blender / Creating interesting Terrain for Unity Game # 2
Former student's Terrain based adventure game!
Watch out for the cave!
In the next segment of the course, we will be preparing ourselves to create a brand new game with a focus on adventure and exploration. In order to accomplish this, we will be learning how to create and model our very own game assets in Blender 2.92, exploring various types of interesting terrain and also downloading various 'prefab's and free rigged models from the Unity store. Depending on your game's design, you should tailor make your Unity store "shopping trip" to dovetail with your GDD document. For example, you might download a main game character that fits your game narrative. You might also download game objects that fit with your 'mission' or story line... (magic ones, torches, gold coins, treasure, robots, rocket ships, haunted houses, ship wrecks, keys for secret entrances etc...) You are also encouraged (but not required) to include enemies or other characters that you have to 'interact with' or fight.
In our next game, we will be learning more about the game scripts that help you track enemies, pick up objects and help you interact with your environment.
Part I - Making ONE or more Unity Game Assets in Blender 2. 92
Making Blender game assets (videos / help guides)
Use the sculpt tools to add elevation and detail to 3 D objects (video) / How to make any image a brush Alpha (more advanced) / Texture Paint Tools
Part II - Making exciting Terrain for your characters to Explore
Terrain based adventure / survival game (Introduction)
We will start making our survival game by firstly focusing on the terrain that the game will take place on. In later steps we will look at creating the characters, the enemies, the objects in the environment etc.
Use one of the links provided or create your own terrain more 'organically' using the the tool suite in your own way. The goal here, is to create an island with interesting terrain, both high points and low points, a surrounding ocean or body of water, unexpected landscapes to explore, all the while keeping in mind file size constraints. Once the landscape terrain has been shaped, you should next incorporate texture (rocks, trees, plants sand on the beaches etc.) Reference 'real' natural ecosystems to create as realistic scenes as possible. For example, the vegetation at elevation would likely be different than the vegetation at the water's edge.
Deriving Inspiration from 'real life'
Take a look at the incredible diversity of landscapes that exist on planet Earth. You might want to draw some inspiration for your terrain based adventure game from some of these incredible places that ACTUALLY exist in our world!
Inspiration I / Terrain inspiration II / or find your own...
Other helpful Resources for Terrain making
Unity Manual on Terrain making (website) / Raising and lowering terrain (website) /
Terrain Making Basics in Unit (video) / Terrain basics continued (video)
Ideally, your game will take place on an island. This will allow for you to build in some natural constraints into the game. After all, a great game has an clear objective and endless terrain doesn't lend itself to that.
Adding in water around your island "plane' / create a 'lake on your island (note this tutorial is older from 2017) / make a sandy low slung tropical reef
Module # 2 - Creating our First Unity Game - Roller Ball Ramp Game
Part I - Unity - Introduction Game - Game Day - Friday April 1st, 2022 - We'll be playing ALL of these games with an eye towards assessment. If you are still completing this game then please be sure to work towards this extended deadline. No games will be accepted after that.
Instructions
We will now be turning our attention to Unity itself and learning how to create our first platform game. Specifically we will focus in developing our skills with: Game play, creating an engaging environment without the complication of downloading extraneous game assets. You will be expected to include the following: three separate ramps with escalating levels of difficulty, 'costume changes' to signify a level change, use of moving ramps, collection of objects gets more difficult,
Optional but great to add :)
Space bar used for ball jumping etc....
Please follow along with this link for a very comprehensive introductory game in Unity
Part A Make the Roller Ball Game - Instruction set completes ONE ramp and associated objects
Game Tutorial - instruction set
Concepts covered: Unity interface, creating a plane, game play, game controllers, ball mass and physics, colliders escalating level of challenge
Part B Making Project extensions
How to make a ramp in Unity / How to make a ball Jump off any surface / How to change object colour in Unity (tutorial also covers object CHANGING colour when it comes in contact with the ball itself)
Game samples to try
Unity Ball game example (download the entire folder / unzip file and then select Unity)
Game sample # 3 (thanks Sarina!)
Game Sample # 4 (Thanks Ethan Lee - former game development student)
Part II - Creating a Web GL account and uploading your first game for others to play.
Once you have completed your roller ball ramp game you are asked to do the following:
Sign up for an Web GL account for a hosting service. You will upload a "web friendly" rendition of your game and submit a working "link" to your hosted project. Do not hand in a Unity game folder - just a link to a working GL build! We will, in a future class, be playing these games as part of a 'peer assessment' activity.
Part III - Revise your Game Design Document - GDD (Revising your Terrain based adventure game)
In this next segment, you are asked to grab your GDD document from the hand in box, read the various comments about your game and then revise it. You are not required to incorporate the feedback on your game but it is definitely something to consider. As well, you might want to 'tweak' your project on the basis of technical considerations. Is your 'vision' doable? What parts are considered to be 'essential' and which parts could be considered worthy project 'add ons'.
Resources
Unity Hub - Unity game download - Unity Game Asset Store (free ones only please) / Unity Education learn site / C # reference guide (Microsoft) / An excellent C# reference resource 9 W 3 schools)
Module # 1 - Introduction to Game Development and Programming in C # Environment - Unit due: Wednesday, Feb. 23nd, 2022
By way of an introduction to game development, we will be spending our time working on three diverse yet interconnected themes:
Gaining an "operational knowledge" of C # programming - (the 'hearts and minds' of any 3D platform game)
Mastering the essential elements of engaging gaming story scripts
Explore the history of game development from both a graphics and story telling point of view with the aim of learning from and incorporating the best from the past. Ask yourself a seemingly simple question: What makes a great game and what makes a terrible game?
We'll work on the below activities - simultaneously - with some time for a spirited debate!
Part I - Code Academy - Learning how to Code in C # - The 'brains' of any platform game (*) Note: we may not complete all of this -we'll see how you all do...
Firstly, we will take a look at the backbone of game development, which is C # similar to Java. (Code Academy link - sign up if you don't already have an account). For those who have never done any coding, Code Academy is a nice gentle structured way to learn basic coding presets. Without these skills, any foray into game development will almost certainly come up short.
In addition to the practice sets in Code academy, we will also "reverse engineer" some actual game scripts to decipher how the code works.
Another handy link that has CORRECT information for C #
W 3 Schools / Unity game Scripting - introduction - super interesting read!
Now how does this all relate to Game Development specifically?
Take a look at this Unity Resource as it relates specifically to gaming applications - Unity Game Scripts continued...
Part II - Writing a game script - Easy or hard? Creating a Game Design Document - GDD's (Note: We do not expect this to be 'completed' but rather it might contain a collection of gaming /character or story ideas that can be later shaped into an actual island game) -
Ready to go on Feb. 22nd next Tuesday
Read this enlightening article that outlines some of the pitfalls of attempting to write a story script that can work with both a player and the underlying technology. Here is a sample of a professional GDD document.
So why don’t we see these ‘written prototypes’ for games? The answer is, actually, you do. They’re called game design documents (GDDs), and they’re a human-readable document which describes every aspect of a game in such a way that a reader can imagine the game without the expense of making it.
Instructions
In this activity, you will be tasked with creating your very own GDD. As you would guess, GDD's don't look anything like convention movie scripts or any other scripts quite frankly because the nature of the gaming medium creates the following problems: Game development is often a team endevour / the gamer has control over how the game unfolds / a story might make sense to a human but not necessarily to a computer that sees the world only as a series of logical commands with inputs and outputs.
Please include the following: A collection of characters with names and costume descriptions (you could make drawings in Animate CC if you wish) / an outline of the physical terrain where the game takes place / a summary of the story - why are were here in this place and why do we care about what happens - eg Are we rescuing someone / conquering a new land / saving planet Earth from aliens / or maybe the game is an unfolding - piecing together complex disconnected realities etc....
Video Game Script - how to write for the medium? / Game Script essentials / Another authors opinion
An interesting, opposing view, suggesting game scripts don't really help
A counter argument that suggests that game scripts 'get in the way of a good game' (Atlantic Monthly)
Part III - Blast from the Past! (sorry no pun intended) - Play as many as you have time for! Yes this is a school assignment :)
Retro 80's era video games / Retro games (all genres) / Tetris (classic) / another collection of good bad and ugly games /
In this look at the past, we will have a bit of fun 'investigating' (by playing) a wide collection of retro video games to seek out an answer to one vexing question:
What makes a great video game? What makes a poor one? (One page reflection exactly with illustrations - no longer - no shorter)
Some Guiding Questions
Game play / graphics / escalating difficulty / story script / believability / immersive / open ended/ expansive / creativity (what does this actually even mean) / user control / ...
Unit Resources
History of video game graphics (18 min) / In-depth look at graphics in game development