Since this quarter is being conducted remotely, Stanford students can access Matlab in one of two ways: (1) You can purchase a one-year license, or (2) you can login remotely to the CCRMA machines. If you use the remote login option, you will need to save sounds as files and transfer them to your computer using SCP (or, for Windows users, an SCP client such as WinSCP or Filezilla), since audio playback is not enabled for remote access.
If you would like to work on your own computer and don’t want to purchase a license, feel free to set up and use Octave or Julia (free Matlab analogues), although be aware we will not providing direct support for either of these platforms.
If you are more comfortable working in Python, or if none of the Matlab use options appeal to you, you may use Python for the lab assignments. If you do, keep in mind that there are a variety of libraries that may be used to analyze and generate sounds in Python. The sample code provided will be written in Python 3 and will use LibROSA for analysis when appropriate and sounddevice for playback.
You’ll have to create an account before you can download. Keep in mind that the trial membership is only 5 days, so don't activate your trial until you are ready to begin the lab.
Click on the Try Personal button to download Unity for free. Unity is ‘pay-us-if-you-make-money’ software.
Unity Asset Store
Also accessible from inside Unity, the Asset Store is a great place to find all kinds of things to use in your games / projects. Quality general scales with price - we don’t expect you to spend any money; there are plenty of great free assets on there.
If you’re new to Matlab, this video is a few years old but will get you started with everything you need for this course.
Here’s another more general Matlab tutorial.
In lab 3, we’ll learn to use Unity to build a breakout-style game from a step-by-step tutorial, but if you want to get started early or want additional practice, a good place to start is the Roll-a-ball Tutorial.
You can find these and many more Unity tutorials on the Official Unity Tutorial Page
These are tools we won’t be discussing or using directly as part of the course but may be fun or interesting to use in later labs if you wish. Keep in mind that many of these will involve a significant time investment to learn and are NOT required for any portion of this course; they are simply here for you to explore if you're interested!
Graphics / 3D Modelling
Maya: Maya by Autodesk is one of if not the leading platform for 3D modeling and animation. It has a bit of a learning curve but is extremely powerful. It is also free for students, so get it while you can (it is quite expensive otherwise)!
3DS Max: Also by Autodesk, 3DS Max is another industry standard in 3D modelling. It is significantly more complex than Maya, with a steeper learning curve. It provides a higher level of control than Maya, and as such has a slightly slower but more comprehensive development pace.
ZBrush: Just for the sake of completeness, ZBrush is the other popular commercial modelling tool out there. Even with the academic discount, it will set you back a pretty penny, but could be worth trying out and / or playing around with (you can demo for free).
Blender: Blender is very popular free 3D modelling and content creation software. It also has a learning curve but is extremely powerful for free software. Many indie developers use Blender to avoid having to shell out for Maya / 3DS Max / ZBrush.
Sculptris: Another 3D modeling program, Sculptris is focused more on artistic digital sculpting. Made by the same company as ZBrush, Sculptris is offered as an entry point into 3D modeling. It is also free.
MagicaVoxel: A free 8-bit voxel art editor that is fairly easy to use and creates great ‘low-res’ art.
Audio / Audio Control
Wwise is one of if not the most popular audio middleware option on the market. It works with a game design engine (such as Unity or Unreal Engine 4) to provide audio tools and options that far exceed what’s included with the game design engine natively. Wwise is also pay-if-you-make-money software, meaning it is free to download, learn, and develop with. Wwise is extremely powerful, has a great community supporting it, and is generally pretty awesome.
OSCsharp is a library that allows you to send OSC (Open Sound Control) messages to and from C# scripts (which Unity uses). It is a great way to send information to and from other audio creation software, such as Max/MSP, pure data, SuperCollider, or Wekinator (see below) and is fairly easy to use.
Chunity is ChucK scripting for Unity. It’s a great way to do more with audio than is natively provided in Unity, including generating custom or procedural audio at run-time as opposed to using pre-recorded samples. There’s a great tutorial (linked from the main page) for getting started. If you’re interested in doing more with Chunity I highly recommend Music 256A / CS 476A, also taught at CCRMA.
Wekinator is an easy-to-use Machine Learning tool that uses OSC to incorporate the power of machine learning into countless applications. You can set it up to receive any number of inputs from a gesture controller, camera, or anything capable of sending OSC messages, and it will output values to any OSC address based on how you train a machine learning model. Recording inputs to map to outputs, training, and saving your model is super easy. From the main Wekinator webpage you can access a large number of example projects for different platforms including Unity, or you could use the OSCsharp library above to send and receive OSC messages to and from Unity (or from a controller like Leap or Kinect in to Wekinator and out to Unity - the possibilities are practically endless). Extremely powerful, especially for many-to-many variable mappings.
Game Design Engines
Unreal Engine 4: The other main game design engine out there, UE4 is more popular with larger game development studios. It is generally more powerful than Unity but has a steeper and longer learning curve, and makes use of a unique visual development environment called blueprints in addition to supporting C++. It doesn’t play quite as nicely with peripherals as Unity does, which is another reason why we’re opting to use Unity for this course, but UE4 is also free to download, learn, and play around with. It also has a recently revamped audio engine, featuring in-game sound synthesis and procedural audio (very cool stuff!).
These are other resources that are either relevant to material covered in the course or just plain fun. Besides being great sources of information and inspiration, these are great for down time - why not get more acquainted with the gaming industry while taking a break from that lab or problem set? If you know of other resources that belong on this list, let Mark know.
Gamasutra: An all-in-one website that provides game-industry news and opportunities.
Offworld: A great website full of video game media and criticism.
Killscreen: Another great gaming media website.
Giant Bomb: A website that features extended, in-depth video playthroughs and explanations of literally thousands of games, as well as an incredibly robust wiki (where you can look for games that feature specific mechanics, like third-person platforming or motion controls).
Extra Credits: A series of animated youtube videos about game design and the games industry.
Pixel Prospector: An indie-game developer-focused website full of resources and information.
GDC Vault: The annual Game Developers Conference, held in downtown San Francisco, is where the entire game development community comes together to learn, share, promote, and connect. In addition to two huge expo floors full of games, game development products, and peripherals, the conference features talks and workshops over the week-long conference, focused on different areas of game development. Many of these talks are recorded and uploaded to the GDC Vault. While access to all of these recorded sessions is restriced to attendees, some are free to watch.
Penny Arcade: What started as a comic strip over twenty years ago has grown into a hub that contains reviews, videos, podcasts, and even spawned it’s own conference/expo, PAX. And the comics are pretty funny, totally geek humor.