EECS 494 – Game Design and Implementation – Resources

Here are some important resources for the class. They may be updated and added to as the semester progresses.

Critical Resources

Austin Yarger has some additional tools suggestions: Austin's tools.

Project Submissions

  1. Unity

    All of your projects must be developed using Unity. No exceptions.

    Each time you create a new project, go to Edit -> Project Settings -> Editor and set Version Control to Visible Meta Files and Asset Serialization to Force Text. This is essential for version control to function correctly.

    Prototyping, which we're strongly encouraging you to do, often results in unused assets lying about once a project is complete. Before you submit, please eliminate these assets from your projects. Don't delete anything unless you're sure.

    Additionally, audio assets can be exceptionally large when uncompressed. Please use Audacity to reduce the duration of audio assets where appropriate and to compress them before importing them into your projects.

    More detailed information about reducing file sizes of builds generated by Unity can be found at Reducing the File Size of the Build if you're really interested.

  2. Git

    We require you to use the Git version control system for all your projects. It is required that each project be stored in the root of its own Git repository.

    Additionally, we provide a .gitignore file (based on one from GitHub) that will omit files automatically generated by Unity and by our own scripts as well. Please add it to your projects first thing to avoid committing large and unnecessary files.

    If you'd additionally like access to a GUI, I recommend trying SourceTree or TortoiseGit. GitLab provides free, private hosting if you'd like to take advantage of it.

    Public hosting available to your peers will be handled as an honor code violation!

    Keep in mind that merging binary files is pretty much impossible. Binary files include prefabs, scenes, and non-code assets. When working with your partner(s), make arrangements to ensure that binary assets are not being worked on in parallel, or you'll frequently need to redo work. One blunt approach is for team members to claim ownership of different scenes. Another possibility is to coordinate work on different scenes through email and/or Google Calendar.

  3. Unity Project Setup

    There are some steps you should take care of before getting deep into your project:

    1. Verify your ability to build Unity projects for both Mac and Windows.
    2. Make sure that git (Git) is accessible from the commandline.
    3. Install Keka on Mac or 7-Zip (64-bit x64) on Windows.

      Note: If you choose to use Brew to install Keka, make sure you use brew install Caskroom/cask/keka.

    4. After creating your Unity project, initialize a new Git repository in its directory. (i.e. A .git/ directory should exist in the root of your Unity project.)
    5. Add our .gitignore file and both eecs-494-unity-canvas-manual.sh and eecs-494-unity-canvas-manual.bat to the root of your new Git repo before your first commit.
    6. Create a Documents/ subdirectory within your Git repo and plan to store any written deliverables of the assignment there. (Keep anything we haven't explicitly requested out of there.)

    From time to time, you should additionally

    1. Make sure that you've added all necessary scenes to File -> Build Settings... and that the checkboxes for them are checked.
    2. Test an actual build for your platform.
  4. Submission to Canvas

    Be aware of the naming convention for the given assignment:

    • Tutorial 1: eecs-494-w17-t1_uniqname
    • Tutorial 2: eecs-494-w17-t2_uniqname
    • Project 1: eecs-494-w17-p1_uniqname_uniqnamf
    • Project 2: eecs-494-w17-p2_uniqname_uniqnamf
    • Project 3: eecs-494-w17-p3_uniqname
    • Project 4: eecs-494-w17-p4_uniqname_uniqnamf_uniqnamg_uniqnamh

    Please do as follows:

    1. Ensure that you've met all of the project requirements. Seriously. Reread them.
    2. Ensure that you've committed everything that you're supposed to have committed and nothing else.
    3. Build the .app bundle for Mac OS X and the .exe for Windows following the above naming convention.
    4. Run either eecs-494-unity-canvas-manual.sh or eecs-494-unity-canvas-manual.bat on the commandline (bash or cmd.exe respectively) from your Git repo / project directory.
      • For project 1, something resembling eecs-494-f16-p1_uniqname_uniqnamf-private.7z should be built in your repository. It should contain eecs-494-f16-p1_uniqname_uniqnamf.app/, eecs-494-f16-p1_uniqname_uniqnamf_Data/, eecs-494-f16-p1_uniqname_uniqnamf_Repo/, and eecs-494-f16-p1_uniqname_uniqnamf.exe.
    5. Upload the .7z file built by the script directly to Canvas or, if absolutely necessary, provide a link and the SHA256 sum generated at the end of the script as part of your submission.
    6. Finally, whether you submitted or one of your partners submitted, download and check the submission to make sure everything is in order.
      • Submissions must be prepared using our scripts. If we can tell that they were not prepared using our scripts, they will not be graded. You will get a 0.
      • Submissions provided as links without corresponding checksums will not be graded. You will get a 0.
      • Submissions that are missing required Documents/ or which include only links (such as .gdoc redirects) instead of required exports will not get credit for those deliverables. You will get a 0 for them.
      • Submissions with either broken builds or missing sources will entail grading delays at best and getting a 0 at worst.

Feedback and In-Class Presentations

This class requires you to share your projects with one another for feedback and during in-class presentations. The following resources will help you publicly host your files online.

Personal Websites

Free University of Michigan web hosting should be suitable for your needs. Looking beyond this class, web portfolios are excellent to have come time for interviews.

For non-static hosting and for additional experience that may be useful in the future, you could consider splurging for Amazon EC2,a DigitalOcean Droplet, or Linode. GitHub and other services often offer affordable or even free options for students.

Laptop Presentations

In cases of emergencies only, laptops with HDMI, Mini DisplayPort, or VGA connectors can be used for in-class presentations. Feedback quantity will suffer, as will your grade if it becomes a habit, but the show must go on.