Skip to content

๐Ÿงƒ Final: Outside the Box

Important Dates

Checkpoint Play Test Submission
CP 1: Monday, March 18th

In pairs, pull Perforce projects and pair program in Visual Studio Code.
PT 1: Monday, April 15th

You should have a working game by this day. We will be playtesting on your hardware. Fill out the provided Google Form to give and receive feedback.
Final Presentation: Monday, April 29th

In class presentation about your project. Students will have the opportunity to play your game while you present your work. Your presentation should consist of a research poster.
CP 2: Monday, April 1st

Read your classmate's papers and give them constructive feedback in their Google Docs.
PT 2: Monday, April 29th

You should have a working game by this day. We will be playtesting on your hardware. Fill out the provided Google Form to give and receive feedback.
Project Due: Monday, May 6th

Your final submission should include a link to your published game, Overleaf link to your research paper, and 2 PDF files for your paper and poster.
CP 3: Monday, April 15th

In pairs, host a code review with Perforce.

via GIPHY

๐Ÿ“™ Introduction

Fluency in the โ€œwhatโ€™sโ€ and โ€œhowโ€™sโ€ through game design is important. But also the โ€œwhyโ€™sโ€ that situate games as a cultural activity is essential as a contributor in the future of gaming but also to your career. The importance of innovation, research

Take this final project as an opportunity to grow your soft skills of why you love and chose to learn game development. Find something you want to dive into that will challenge the state of the art and enable you to advance through your career. Here is the opportunity to create an experience that excites you with any game engine of your choice in addition to the mentorship of your instructors. Carefully consider what your needs are and what you are trying to accomplish when deciding to develop with Unreal, Godot, or Unity.

By the end of this project you will:

  • Participate in code reviews with Perforce
  • Create UI to bring your project together with UI Toolkit
  • Master UXML, USS, C# and/or HTML, CSS, and Javascript
  • Collaborate and share builds with GitHub repositories
  • Pair programming in Visual Studio Code
  • Create an software experience that you are proud of - game, AR/VR experience, app, website, etc.
  • Gain experience in what goes into publishing your projects and experiences
  • Understand why you picked your selected platform and the ins and outs of it
  • Work with your platform's respective SDKs
  • Have expertise and background knowledge in the hardware you are publishing to
  • Have a published a game!

Policy on Collaboration and Cheating

For this project, you must work individually or in teams! Please carefully read the Policy on Collaboration and Cheating to see what this means exactly. In particular, do not look for solutions online, use game templates, and generate code with AI such as ChatGPT.

Legal Licensing and Copyrights

For this project, you will be publishing a game, app, or other kind of software experience! Please make sure to read the copyrights when using templates, packages, and assets. Read Unity's Terms of Service for reference.

๐Ÿง Questions

Game Experience

  • What is a digital and software experience that you find interesting? Is there anything you've always wanted to try making? Think of an idea that gets you excited and let's try to create it with Unity, Unreal, or Godot!

  • Art has a responsibility to contribute cultural and humanist dimensions to our definition of the future. How does the intersection of art and technology move us from ephemeral performance to sustainable innovation? Ideate on ideas for a project and then write about it in your research paper.

  • How does your experience critically explore its social, cultural, and affective impact?

  • What is your experience's potential use case in the releam of emerging digital technologies? How does it impact users and citizens? Does your experience confront any major challenges of our time?

Game Design

  • Can I make a cozy, relaxing roguelike?

  • What happens if the playerโ€™s ability regresses as the game progresses?

  • Can I make a game where the mechanic is trying to understand an alien language?

  • What happens if the player needs to solve violent problems nonviolently?

  • What happens if you combine environment destruction gameplay with a cooking game?

  • Can I make a game where the player is neither the protagonist nor the antagonist?

  • Can I create the game version of the phrase โ€œwrong answers onlyโ€?

  • What actions should the player take?

๐Ÿ‘พ The Game

The goal of your final project for this class is twofold:

  • Put into practice the prototyping skills you have learned over the past 12 weeks. You are capable of expressing your design ideas in software, so letโ€™s come up with some interesting design ideas and express them!
  • Start thinking about โ€œdesign problems,โ€ that is, the kinds of questions you can answer through prototyping. These are often questions of the form โ€œWhat happens if?โ€ or โ€œCan I?โ€

Pick the platform you want to build for and publish to intentionally. Tailor your experience to the platform you selected. In project 2, I would like you to try publishing your experience or game and experiment with how you can take it to market. Consider the most natural inputs for your experience. Please note that many of these platforms do require a fee; however, you are welcome to use the instructor's account at no additional cost.

๐Ÿ”ฅ I ENCOURAGE YOU TO TRY SOMETHING NEW ๐Ÿ”ฅ

Some examples:

PC: Windows, Mac, Linux
Requirements Resources
Create your own Steamworks Account. The instructor/class has their own account as well. How to publish your game on Steam
$100 USD per game. This is a mandatory fee is covered by USC Joining Steamworks Distribution Program
Make sure your game meets Steam's Terms of Service. Steamworks Documentation: Getting Started
Supports latest version of Windows. Make sure you have a Windows PC to test your game. Integrating Unity Games with Steamworks
Install Steamworks SDK for your selected game engine. How to Launch a Game on Steam - Before Release

Image title

Android Mobile
Requirements Resources
Create your own Google Play Developer account. The instructor/class has their own account as well. Android Developers: Publish your app
Cost is covered by the class. However, if you want to publish on your own it is a $25 one time fee. Apps are free to publish after the entrance fee. Publish your UNITY game on Google Play Store
Accept Google Play's Terms of Service. How to Publish to Android
Download Android Studio on your computer. Android Developers: Build your game in Unity
Within Unity, build your game to Android and enable the Build App Bundle for Android. Developer's Guide to Releasing a Unity Game on Google Play

Image title Publishing to the Google Play Store is a relatively straightforward process.



Image title An example of Android widget games.

iOS Mobile
Requirements Resources
You must have a Mac and have XCode installed. Unity Learn: Publishing for iOS
Cost is covered by the class. However, if you want to publish on your own it is a $100 a year to be part of the Apple Developer Program. Apps are free to publish after the yearly developer program fee. Apple Developer: Submit your iOS apps to the Apple Store
Apple is very particular about how your app looks. You must follow Apple's Guidelines such as their Human Interface Guidelines. Unity Documentation: Build for iOS
Within Unity, build your game to iOS and enable the Build App Bundle for iOS. There will be other packages to add depending on what kind of Apple platform you are designing for. How to Build & Run Unity to iOS for Testing
You are welcome to build for any Apple platform and experience. This includes widgets, iMessage games, App clips, Vision Pro, and standalone apps. Apple Game Center

Image title

A preview of XCode and it's simulator.



Image title

An example of an iMessage game, GamePigeon, for text messages.

Microcontrollers
Requirements Resources
You will be working with electronics and if you like, designing an encasing for your screen to turn it into a game console, mini arcade machine, or anything you want! Designing my own Game Console
Cost is covered by the class and the instructor will provide a Raspberry Pi or Arduino. However, if you want to purchase your own microcontrollers they are usually between $20-35 USD. Run Unity game on Raspberry Pi 4 with Picade arcade machine
Install the Arduinio IDE. This will help you build your project to your selected microcontroller. How to integrate Arduino with Unity - hardware work with software
Within Unity, build your game to WebGL. Unity supports microcontrollers like Raspberry Pi. Documentation here. How to Integrate Arduino with Unity 3D

Image title

Websites
Requirements Resources
GitHub account with GitHub Pages set up. With GitHub Education, you can create a private repo for your website. If you do not have GitHub Education, you will need to make your build public. React Unity WebGL
Cost is FREE unless you want a custom domain which can cost between $5 - $10 a month to buy a domain. Custom Domains: Google Domains
Install a web framework such as ReactJS Custom Domains: GoDaddy domains
Within Unity, build your game to WebGL Awwwwards: Best Unity Websites in 2021

Image title

Social Media Integrations

You are welcome to make a game for a specific social media platform such as Snapchat, Facebook Messenger, YouTube, Twitch, and Discord. Please see some of the resources listed below.

Resources
Twitch Chat Integration: Create a game for Twitch's chat or integrate your game with Twitch.
Facebook Web Games and Instant Games: Make games with WeBGL for Facebook websites and Facebook messenger.
YouTube Advertisement Games with AppMana: Integrate your game into advertisements so that users can actively engage in media.
With Snapchat's Lens Studio and Snap Kit Unity SDKs try creating an interactive, AR game.
Making Games in Discord: Create games with Discord's Bot API.

Image title

๐Ÿ“ The Paper

Your research paper can span areas including but not limited to animation, simulation, imaging, geometry, modeling, rendering, human-computer interaction, haptics, fabrication, robotics, visualization, audio, optics, programming languages, immersive experiences, and anything that aims to advance the state of the art that is related to your game or software experience.

Association for Computing Machinery (ACM)

You are welcome to make a game for a specific social media platform such as Snapchat, Facebook Messenger, YouTube, Twitch, and Discord. Please see some of the resources listed below.

Image title

LaTeX

You are welcome to make a game for a specific social media platform such as Snapchat, Facebook Messenger, YouTube, Twitch, and Discord. Please see some of the resources listed below.

Image title

Overleaf

You are welcome to make a game for a specific social media platform such as Snapchat, Facebook Messenger, YouTube, Twitch, and Discord. Please see some of the resources listed below.

Image title

Short Art Papers

How do we come to terms with contemporary media art culture that consists of varied practices ranging from craft to design to installation, software, hardware, choreography, mixed-media, and more? What current trajectories exist now that algorithmic processes, decades in the making, have finally advanced so much that they can generate usable code, graphics, and sounds from spoken or written prompts? What new methods or questions are needed as we leave visual space and return to acoustic space where orality, ambience, and overlapping and touchless media reign? How do we define and navigate the intersectional suprastructure that allows certain media practices to flourish while others are starved or co-opted? How do we process the entirety of this networked sphere of media intercourse under real planetary constraints? The SIGGRAPH Art Papers track is the premier place to publish critical findings within these diverse fields of art practices where they converge on screen, through interactive methods, within digital, mechanical, or biological interfaces. - SIGGRAPH 2024, Art Papers

Short Art Papers are limited to 2,500-words and; 10 pages (including all references, tables, figures and figure captions. Papers should be proofed and completely anonymized. Submission example for SIGGRAPH 2024 here.

Necessary information to include:

  • Title of Short Paper:
  • Abstract: A 250-word (maximum) abstract summarizing the key points of the paper. Indicate paragraph breaks by a blank line in the text field; all other text formatting will be lost.
  • Why It Matters: A 100 word (maximum) abstract explaining why your artwork is important for the whole SIGGRAPH community, in a large sense, from raising critical issues to opening perspectives or generating solutions. Indicate paragraph breaks by a blank line in the text field; all other text formatting will be lost.

Image title

Short Technical Papers

You are welcome to make a game for a specific social media platform such as Snapchat, Facebook Messenger, YouTube, Twitch, and Discord. Please see some of the resources listed below.

Image title

๐ŸŽŸ๏ธ Requirements

In short, the main requirement is to create a game and write a paper.

  • Build and publish to a specific hardware and platform
  • Must include game user interface with UI Toolkit or ReactJS
  • Utilize Unityโ€™s new Input Management System
  • The experience must look and feel completed
  • Play and test game on your selected hardware
  • Research paper with OverLeaf
  • Research poster with Adobe InDesign
  • Must code with C# and not node-based

๐Ÿ’ฏ Grading

We will be play testing your game during class!! Please make sure your game is published on itch.io by play test day and is 100% playable.

Assignment Description Percentage
Peer Feedback Please meet with your classmates to give and receive feedback. It is important to give verbal and written feedback. Collaborate on your projects and support each other. Please fill out the google form for each student you gave feedback to. 10%
Checkpoints and Playtests Check in with any instructor. Show they what you've been working on and ask them any questions you have. Complete the check in assignments with your classmates to practice collaborating over code. Participation is mandatory on playtest days and your game should be working and running on your selected hardware. 10%
Research Paper Write your research paper in Google Docs and share it with the instructors. For your submission, your research paper should be properly formated with Overleaf and exported as a PDF. It should also come in the format as a poster, designed with Adobe InDesign. 20%
Game Design We will be evaluating your game's overall experience. Your game should look and feel complete with assets, sounds, and user interface. Your game should be completed by Monday, December 4th and you are free to use the rest of the time to prepare your project to be published. 30%
Published Game It is mandatory to publish your game. The process of publishing your game can be as long as 1 - 3 weeks. Please plan ahead and have your published game submitted by Monday, December 11th. 30%
Total 100%

๐Ÿฆ„ Support

Ask for help! Don't be afraid to reach out to us and ask for help. Work together with your classmates and schedule office hours with the instructors whenever you need help and support.

Do I need to learn all the different languages for each platform? What if I don't know Swift/Kotlin/Javascript/C++/Java ?

Don't worry! You don't need to know all the languages and don't need to know everything about each language. You will work a little bit in those languages to make minor tweaks. Plus, the instructors are here to help you!

A research paper usually takes a lot of work. Are we really going to write out a full research paper ?

It will be a research paper but it will be scaled down and shortened! We will be learning how to style write a professional paper that can be submitted for conferences in the future.

What if they don't approve the game I submitted ?

That is okay! Ideally, you will have a published app on the platform of your choice. But if it doesn't work out, we will at least publish to GitHub Pages and itch.io.

Why do we need to learn how to pair program and participate in code reviews ?

Game development is a collaborative effort so it is important to learn how to collaborate on designs and code. There are many great tools that will support collaboration within Visual Studio Code, Perforce, GitHub, and Unity.

What if I don't want to publish my game ?

It is required to publish your game for project 2. Going through the process of sharing and putting up your game is an important part of the development experience. You will learn A LOT. At minimum, you should be publish your game to GitHub Pages and itch.io.