Matlab is available to all Stanford students through remote login to the myth computers or the CCRMA machines (you will need a CCRMA account to access the CCRMA machines). We would prefer you use Matlab on a local machine (such as the CCRMA workstations) rather than remotely, as audio playback is not supported for remote use. If you would like to work on your own computer and don’t want to pay the $70 for the Stanford Matlab year-long 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.
You’ll have to create an account before you can download. You will get a 5-day trial membership, which should be long enough to complete lab 2. After that you can pay $17/month for basic membership or get a student discount off the annual pro membership (neither of which we expect you to do). If you don’t finish lab 2 before the trial membership expires, have someone else in your group start a new trial membership or talk to Mark or Poppy. We may look into purchasing licenses for the class if necessary.
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 feel free to check them out and / or use them for later labs or final projects if you want. Some of these software are extremely deep and could be independently taught as a subject for an entire course, so be fair-warned: learning them may involve a significant time investment. Especially if you’re interested in using Maya or Blender to create graphic content for your final project, if you haven’t used either before, they’re awesome and fun to learn, but budget extra time and start early! (Getting proficient with Maya took me 20-30 hours). There are loads of tutorials out there for these popular products - it’s worth searching to see which people recommend - some tutorials can be a waste of time.
Even if you choose not to explore any of these products, it’s good to know what’s being used in the industry.
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. If there is sufficient interest in learning / using Wwise for projects, we may have a supplemental session to go through it, although there are great online resources for learning Wwise. AudioKinetic, the company that makes Wwise, offers online certification courses, which you can take for free but have to pay to take the exam for the ‘official’ certification ($195, although certification includes a listing in their Creators Directory, which game studios use to find content creators).
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.