Lab 14 - Wrap Up

Pre-Lab: Due Before Lab on Friday, December 1

Work on your games!!!

In Lab: Friday, December 1

We will review for the exam today.

Post-Lab

Work on your games!!!

more ...

Lab 13 - Playtesting

Pre-Lab: Due Before Lab on Friday, November 17

Work on your games!!!

In Lab: Friday, November 17

This week, we will walk around play other teams' games. Playtesting sheets will be provided to you to fill out for the games you play.

Post-Lab

Keep working on your games!!!

more ...

Lab 12 - Beta Demos

Pre-Lab: Due Before Lab on Friday, November 10

Work on your games!!!

Then, submit a PDF outlining your current progress and your main challenges in completing your game before the Game Expo to the appropriate quest in Gamer Card. Only the team leader needs to submit this.

In Lab: Friday, November 10

In lab today, the course staff will come around for demos of your games.

Post-Lab

Keep working on your games!!!

more ...

Lab 11 - Team Work Day

Pre-Lab: Due Before Lab on Friday, November 3

Work on your games!!!

In Lab: Friday, November 3

In lab today, course staff will be available to answer your questions. Otherwise, you may work in the lab or elsewhere on your own.

Post-Lab

Keep working on your games!!!

more ...

Lab 10 - Alpha Demos

Pre-Lab: Due Before Lab on Friday, October 27

Work on your games!!!

Then, submit a PDF outlining your current progress and what you plan to accomplish between now and the Beta demo to the appropriate quest in Gamer Card. Only the team leader needs to submit this.

In Lab: Friday, October 27

In lab today, the course staff will come around for demos of your games.

Post-Lab

Keep working on your games!!!

more ...

Lab 9 - Unity Tutorial 3: Levels and Animation

Pre-Lab: Due Before Lab on Friday, October 20

In this quest, your goals are:

  • Learn about sprites and animation
  • Learn about level design and generation
  • Learn about prefabs

Before coming to lab, you need to complete the following:

  1. Go to https://classroom.github.com/a/5FNiF9I_ to accept the assignment.
  2. Check out your repository locally and make sure you can open the project. There may be a warning when you do so, but it shouldn't matter.

In Lab: Friday, October 20

Follow the tutorial found at https://unity3d.com/learn/tutorials/projects/2d-roguelike-tutorial.

You do not need to do the final lesson step on doing mobile controls.

You are welcome to begin the tutorial before coming to lab. The tutorial will take over an hour to complete, so you may run out of time in lab. You can finish it after lab as a part of the post-lab submission.

I HIGHLY suggest that the way you do this tutorial is to follow along with the coding, get it working, then REWIND THE VIDEO and watch it again, this time taking more time to process what is saying. Fight the instinct to just "get it done" and try to learn what it is you are actually typing!!!

NOTE: Some things are different in our current version of Unity versus the one used in the tutorial. The Unity team has provided some guidance, but you can't just blindly do everything and expect it to work. Think about what you are doing!

Changes to Video 12: Adding UI & Level Transitions: There is a change to the Unity API that a annotation pop-up and the included PDF in the root of the Assets folder discusses here. However, the solution they provide, doesn't quite work. If you have the problem that your level number goes up by 2, use the following additions.

First, add a new private variable to the GameManager:

private bool firstRun = true;

Then, include the following in OnLevelFinishedLoading:

void OnLevelFinishedLoading(Scene scene, LoadSceneMode mode)
{
    //Don't run on first game load
    if (firstRun) 
    {
        firstRun = false;
        return;
    }
    //Add one to our level number.
    level++;
    //Call InitGame to initialize our level.
    InitGame(); 
}

Post-Lab: Due Wednesday, October 25 @ 11:55 PM

Add to your game the following things:

  1. Read up about coroutines in Unity / C# here: https://docs.unity3d.com/Manual/Coroutines.html. Using a coroutine, add a timer that keeps track of how long you play the game. The timer UI should constantly update as the game progresses. The timer should be displayed at the top/middle of the game screen. It should not be displayed on the Day screen. The timer should not increase while the Day screen is visible - only when the user is actually playing the game. Display the final play time that has passed on the game over screen. Note that you MUST do this with a coroutine - using another method will earn no points.
  2. Add a new enemy type with animations (note: it does not have to exactly fit the visual design - sprite sheets can be hard to come by or create on short notice). This enemy will knock the player back one or two squares when it hits the player.
  3. Add the ability for the player to kill enemies by hitting them in the same way the player hits interior walls. How you handle the logic here is up to you, but it has to make sense and be reasonable in the context of the game (i.e. player still takes damage, maybe more damage?).

To help us grade, we ask that you create Windows and Mac builds for all of your Unity submissions to go along with your projects. However, you do not want your uncompressed builds to be included in your GitHub repos as that will result in a large number of changes to be continuously monitored. To create and submit your builds, please do the following:

  1. Create a folder called Builds in the root of your project folder.
  2. Use File > Build Settings to create your builds. See https://docs.unity3d.com/Manual/PublishingBuilds.html for more information on how this works.
  3. In your Builds folder, find your Windows and Mac builds. Archive the contents of this directory (select everything and right click choosing the appropriate option) and name the file unity3-yourcomputingid.zip
  4. Put the zip file in the root of your project folder and check it in as normal to GitHub.

Commit all changes to your GitHub repo before 11:55 PM Wednesday, October 25. Please include in the root of your repository a README.md file either by creating the file or using the Add a README button on the homepage of your repo. This file should include citations for any sources you used. Finally, upload the same contents of your README.md file in a PDF called README-compid.pdf (adding a link directly to your repo please to make it easier for grading) and upload that to the Quest in Gamer Card.

more ...

Lab 8 - Midterm Miniboss

Pre-Lab: Due Before Lab on Friday, October 13

  1. Play Thomas Was Alone up through level 5.1 and submit a pic to the appropriate quest.
  2. Study for the test!
  3. Bring a laptop + charging cable to the lab to take the test. Some students can use the desktops, but over 50% will need to use a laptop.

Miniboss Information

Format:

  • Multiple choice
  • Short answer
  • Questions regarding Thomas Was Alone
  • Play a game during the test and answer questions about it

Material:

  • History of gaming - crash of 1983, importance of Nintendo
  • What is a game? - McGonigal's definition, general idea of Reality is Broken early chapters
  • Formal Elements - Ch. 3 of Fullerton, player patterns, rules, procedures, action/interaction, resources, boundaries, etc.
  • MDA - be able to define all parts, know all 9 aesthetics and can identify them
  • Second-Order Design problem
  • World Building - what is world building, how is it different than plot, why do we do it, who does it appeal to
  • Psychographic profiles - Johnny (clever mechanic), Timmy (big dynamics), Spike (game optimizer), Vorthos (theme / setting / flavor)
  • Probability / Risk - how randomness is used in games, comparison to board games, importance / power of information hiding with video games
  • Level Design - importance of tutorial / first level, designing for risk / reward decisions, giving players agency (meaningful choices) in a level, examples of things done in Super Mario Bros and Doom for first levels
  • Prototyping - why is this important, benefits of physical prototypes, potential advantages of digital prototypes (perhaps in game engine itself)
  • Game Architecture / ECS - how are games structures (i.e. not event-driven), what is ECS, what advantages does it give, how does it work
  • Game Loop - update + draw, how many times this runs per second, what things happen during each step of the loop
  • Physics - what is the "right" physics for your game, what things do we calculate when working with physics, why can / should we not do perfect physics in every game

Not on the test:

  • Coding in Unity
  • How to come up with a game idea
  • Game pitches
  • Entitas

In Lab: Friday, October 6

Tips for taking tests in Collab:

  1. Open the test in Collab and copy the questions out of Collab and into the document editor of your choice (Word, text editor, Google doc, whatever).
  2. Answer all the questions first in your document editor, saving as you go.
  3. Copy the plain text of your answers into the question boxes in Collab one at a time when you are ready to submit.
  4. Submit the test and keep your back up just in case something happens.

Post-Lab

Work on your games!!

more ...

Lab 7 - Unity Tutorial 2: 2D Platformer

Pre-Lab: Due Before Lab on Friday, October 6

In this quest, your goals are:

  • Become more familiar with game objects and scripts in Unity
  • Work with gravity and collision detection
  • Work with player controlled behavior

Before coming to lab, you need to complete the following:

  1. Go to https://classroom.github.com/a/1lesLYDK to accept the assignment.
  2. Check out your repository locally and make sure you can open the project. There may be a warning when you do so, but it shouldn't matter.

In Lab: Friday, October 6

Follow the tutorial found at https://unity3d.com/learn/tutorials/topics/2d-game-creation/intro-and-session-goals?playlist=17093.

You are welcome to begin the tutorial before coming to lab. The tutorial will take over an hour to complete, so you may run out of time in lab. You can finish it after lab as a part of the post-lab submission.

Post-Lab: Due Wednesday, October 11 @ 11:55 PM

Add to your game the following things:

  1. At least one NPC that patrols back and forth in a given area. For full credit, the NPC should not fall off of any ledges (and you should place at least one NPC showing that this is the case). You can use any sprite you want that is not already included in the tutorial. Animation is not required.
  2. A counter that appears on screen that shows how many times the player character has touched/collided with the NPC from item 1. Note that you can have multiple instances of this NPC throughout the level. Nothing else needs to happen on collision (i.e. sound, "hit damage"), but if you would like to add something, you can.

To help us grade, we ask that you create Windows and Mac builds for all of your Unity submissions to go along with your projects. However, you do not want your uncompressed builds to be included in your GitHub repos as that will result in a large number of changes to be continuously monitored. To create and submit your builds, please do the following:

  1. Create a folder called Builds in the root of your project folder.
  2. Use File > Build Settings to create your builds. See https://docs.unity3d.com/Manual/PublishingBuilds.html for more information on how this works.
  3. In your Builds folder, find your Windows and Mac builds. Archive the contents of this directory (select everything and right click choosing the appropriate option) and name the file unity2-yourcomputingid.zip
  4. Put the zip file in the root of your project folder and check it in as normal to GitHub.

Commit all changes to your GitHub repo before 11:55 PM Wednesday, October 11. Please include in the root of your repository a README.md file either by creating the file or using the Add a README button on the homepage of your repo. This file should describe how you went about completing the NPC feature - the algorithm, design, and citations for any sources you used. Finally, upload the same contents of your README.md file in a PDF called README-compid.pdf (adding a link directly to your repo please to make it easier for grading) and upload that to the Quest in Gamer Card.

more ...

Lab 6 - Physical Prototypes

Pre-Lab: Due Before 10:00 AM on Friday, September 29

Keep working on your physical prototypes!

In Lab: Friday, September 22

You will get a little time to finish up your prototypes. Then we will walk around and do demos for everyone else in the class!

Post-Lab: Before you leave lab

Make sure to take pictures and put them in a directory called prototype in your GitHub repo.

more ...

Lab 5 - Physical Prototypes

Pre-Lab: Due Before 10:00 AM on Friday, September 22

Work with your team to pick one level that you want to do a physical prototype of over the next two labs. Some materials will be provided (poster board, markers, scissors, tape, etc.), but if you have anything specific you want to use, please bring it.

In Lab: Friday, September 22

Work on your physical prototypes! These are not due until the next lab. The TAs and Prof. Sherriff will also meet with each team individually to discuss plans and the scope of their project.

Slides - Prototyping

Post-Lab: Before the next lab on Friday, September 29

Continue working on your physical prototype, along with your design document for your team's game.

more ...