π§ Final: Outside the Box
Important Dates
Homework: HW09 - HW14 will require a submission via BrightSpace. Please record a short video of your project's progress showcasing the prototype.
Checkpoint: Check-ins with the instructors with Debbie and/or Jerry. Check-in will be on Tuesday, November 5th or Wednesday, November 6th.
Playtest: In-class playtest on Wednesday, November 13th. Your project should be working and playable.
Presentation: In-class final presentation and playtest on Wednesday, December 4th. Your project should be finished.
Final Submission: Submit your final projects on Perforce along with a presentation side deck.
π 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:
- Learn a new skill with the game engine of your choice
- 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 |
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 |
Publishing to the Google Play Store is a relatively straightforward process.
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 |
A preview of XCode and it's simulator.
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 |
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 |
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. |
ποΈ 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% |
Technical Implementation | Submit your projects via Perforce if possible. The instructors will evauate how you created your projects | 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!
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.