Game Design
Class 01: Introduction to Game DesignTopics
- Course Introduction
- Game Design
- Unity
- Platformer (basic mechanics) Lab Demonstration
- Assignment: 2D Game Design Document
Nice to meet you!
Course Introduction
Hi There!
I'm Jon Cone
I am one of the full-time faculty in Cecil’s Visual Communication Program. I am mostly responsible for the game design and web design programs. I am also a freelance animator typically working on visualizations.
- Office Hours
- Tues 10:00am - 1:50pm
- Wed 1:00pm - 6:20pm
- Honestly just e-mail me. I will make time when it works for you.
- Contact Information: jcone@cecil.edu (prefered)
- (240) 466-1996 (personal)
- 410-287-6060 X 1470
Actual photo of me.
- Name:
- What’s your name? What do you go by?
- Why you are here:
- Is this required for your major? Are you taking this course as an elective? Personal Enrichment?
- Experience:
- Do you have any history with graphic arts or arts in general? Any experience with Adobe or other graphics software?
Alright. Here is an actual picture of me.
Course Description:
Introduction to Game Design provides an introduction to computer game development, starting from concept development to implementation of a playable game prototype. Aesthetic and technical aspects of computer game development are covered, including game mechanics, story development, content creation, and game programming.
Labs:
Each week a new lab assignment will be given. These mimic the exercises we would do in a face to face course. You must simply follow the instructions given as closely as possible. You should feel free to explore and “make it your own” however. In fact that is encouraged. All labs will be submitted by the end of each week on Blackboard.
Projects
Two long form projects will be due by the end of the course. These are the completion of the labs as well as the addition of elments and polish of the results. These are how you separate the results of your labs from your peers and create a novel game.
Labs | 12 | 50% |
Projects | 2 | 50% |
Total | 100% |
Game Design
Defining Games:
No one can agree. It is similar to defining art. What we can do is suggest some common game elements. So what are the universal game elements?
Common Game Elements:
- Player:
- Agrees to follow the mechanics of the game and follow the “rules.”
- Games are player-centric. If the player is not engaged then the game must be adjusted.
- Rules/Mechanic:
- Dictate what is, and is not valid play.
- A game must be challenging in some way to be entertaining. Player pleasure comes from mastery of the game challenges. Therefore, the difficulty must escalate and provide variety to maintain player stimulation.
- Victory Condition:
- The successful completion of the game’s given tasks.
- This is the ultimate carrot to lead the player through the level.
Fun:
Fun games involve learning and mastery (are you having fun now?). When you watch animals (particularly young) you see their play organized around skills necessary to hunt or evade.
Our minds crave input and information. It has developed a reward system. When you acquire new skills your brain releases endorphins.
It is important to create variety in your game and to constantly challenge your player, usually scaling difficulty.
Game Genres:
- Action
- Physics, Fighter, Platformer, Shooter, Stealth/Survival
- Adventure
- Real-time, Turn-based/Text
- Role-playing
- Traditional, Sandbox, MMO
- Simulation
- Vehicle Simulation, Life Simulation, Construction
- Strategy
- RTS, Tower Defense, Physics, Turn-based, Puzzle
- Sports
- Racing, Sport
- Idle
These are almost always combined together. Most modern game contain elements from all major genres.
Accurate example of games today containing elments from all game types
Game Design:
Game Design is the development of rules that establish play for one or more individuals. Game designers are the most desired and fewest jobs available in the industry. In order to pursue this career you need to show a history of developing games. Therefore, you must be able to create the assets and code or inspire others to produce your games.
Unity
Unity:
Unity is a game development software that allows for the creation of 2D and 3D games. The name Unity is very fitting. It has the ability to import assets in a variety of formats including all the most popular industry standards. It also has the ability to export game builds into a variety of formats appropriate for mobile devices, game consoles, and computers. It is a very dynamic, logical, standardized, software that is very approachable. The overall graphical and programmable quality of Unity is not as impressive as other full-featured game development software. You may download Unity from their website and use it for free.
Visual Studio Code:
Unity is the game engine that we will build our game in. The assets of our game cannot be made inside Unity (well, not really). That means the graphics and code must be produced elsewhere. The code we create can be made in any text editor. You may use whatever you like but I will be using Visual Studio Code. If you do not have preference I suggest using this as well.
Platformer (basic mechanics) Lab Demonstration
Assets
- Environment
-
- Midground
- The imagery that the player character can actually contact, ground, platforms, walls, etc.
- Characters
-
- Player
- The protagonist controlled by the player
- Other(pickups, UI, etc.)
-
- None
- We will be adding this next class
Scripts
- PlayerControllerScript
- Moves the player based on user input
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float movSpd = 2.5f;
public float jmpStr = 50f;
public bool ground = false;
public bool doubleJump = false;
private Rigidbody2D pRB2D;
private Vector2 startPos;
void Awake()
{
pRB2D = GetComponent<Rigidbody2D>();
}
// Start is called before the first frame update
void Start()
{
startPos = transform.position;
}
// Update is called once per frame
void Update()
{
pRB2D.velocity = new Vector2(Input.GetAxis("Horizontal") * movSpd, pRB2D.velocity.y);
if(Input.GetButtonDown("Jump"))
{
if(ground)
{
pRB2D.AddForce(Vector2.up * jmpStr);
ground = false;
doubleJump = true;
}
else
{
if(doubleJump)
{
pRB2D.AddForce(Vector2.up * jmpStr);
doubleJump = false;
}
}
}
if(transform.position.y <= -10)
{
transform.position = startPos;
}
}
void OnCollisionEnter2D(Collision2D col)
{
if(col.gameObject.CompareTag("Ground"))
ground = true;
}
}
Assignment: 2D Game Design Document
2D Game Design Document:
Your first project will be to develop a 2D platformer game. We will work together to develop the bones of the game but it is up to you to customize it and set it apart from your peers. For this first assignment you will create a Game Design Document. You may create this document in an program you would like (Word, Google Doc, Photoshop, etc.). It should contain a written description of the game that describes the basic narrative, style, and mechanics. There should also be a rough illustration of what the game will look like.
You will be graded on the following:
- Lab Requirements
-
Techniques and processes covered in the instructional material is followed and implemented.
-
- Creativity & Craftsmanship
-
Excellent design choices, novel & appealing, and solid clean caliber work.
-
Resources:
- Assignment Video Tutorials
- You may watch the tutorial videos below to help you complete your assignment.
Assignment Video Tutorials
Wait! Before you go!
Did you remember to?
- Read through this webpage
- Submit 2D Game Design Document Assignment on Blackboard