0. Hello world - download
1. Breakin' breakout - download
2. Interactive narrative - download source - download powerpoint
3. The boring shooter - download source - virtual cam class
4. Alternative interfaces - motion tracking - color tracking - microphone
The material I'm providing is based on the Flash platform.
Contrary to a common belief, Flash is something more than the application you find in the Adobe Suite. You can make flash games using other development environments. I'm going to introduce you to the following ones:
Adobe Flash CS5
I also refer to as Flash IDE (Integrated Development Environment). It's a graphical environment where you can write code, produce graphical assets, make animations, design levels and interfaces. This total integration might be convenient if you have a design or animation background but it might be horrifying if you are an experienced programmer. Also, the IDE sort of encourages you to make messy project files that are hard to share and unpractical in collaborative projects.
The computers in the school have it installed but getting a legitimate personal copy is quite expensive.
Adobe Flash Builder (formerly known as Flex)
It's a development environment more similar to what actual programmers use (it's based on Eclipse). It's code centered and it doesn't allow the production of assets within it. However, it's possible to use graphics and animations produced in CS5 with code written in Flash builder.
The best thing is that it's free for students, you just have to apply
It's the open source (and thus free) alternative to Flash Builder. They work in a very similar way, although the way they organize projects is slightly different.
The only downside: It's Windows only. Link.
Actionscript 3 (AS3) is the Flash programming language we are going to use in this class by default. The official adobe documentation is very bare-bone and technical and it might be useful only if you exactly know what you are looking for.
On the other hand, there is an ocean of manuals, tutorials and examples online. Pretty much whatever you need to implement has already been implemented before so it's just a matter of breaking down your problem and finding the right keywords for your google search.
Important: whenever you google for code-related issues put the word AS3 in the query. There are still a lot of documents referring to the previous version of actionscript (AS2) which is completely different and incompatible.
Here are some good resources:
Getting Started with ActionScript 3.0
Reading this introductory manual is strongly recommended. It's online, it's free.
Introduction to Flex
Game development with Flash CS3
I personally can't stand video tutorials, but if you prefer to hear a nice voice and watch the process step by step you should check the material provided by Lynda.com. The school might have a premium subscription if you want to access paid content.
A nice collection of script, mostly game-related:
No, I don't know this guy but his website is full of good and accessible tutorials
It's one of the biggest flash online communities, it has a lot of tutorials and very active forums.
If you like vector aesthetics you should simply use the Flash IDE since the integration is straightforward. If you want to use bitmaps images you'll have to prepare your assets with an external program.
It might even be too advanced for what we do but it's installed on every computer in the CFA.
Is the open source alternative to Photoshop, check it out if you don't want to buy an expensive license.
The best pixel-art-specific in my opinion. Unfortunately it's Windows only.
It's supposed to be best pixel-art application for mac but I found it impossibly unstable on Snow Leopard.
PSD 2 Spritesheet
This is an useful tool to convert a photoshop animation into a spritesheet
MC 2 Spritesheet
This is a small application that converts a flash animation into a bitmap spritesheet
For sound assets you'll probably require an audio editing program. Our MAC labs should be equipped with Logic.
An open source option, available both for MAC and PC and installed on every CFA computers. I found it rather unstable but it should just be fine for small projects.
Cfxr (MAC) / Sfxr (PC)
A really fun tool that generates retro sound effects.
An application that converts midi files into chiptune music (8-bit nintendo sounding music). Windows only and still a little glitchy.
Magical 8 bit (PC / MAC)
If you compose music and you like the aforementioned chiptune style, you can use this VST/AU plugin to obtain 8-bit-like sounds.
Glitch Sequencer (PC / MAC)
Music is overrated, with this tool you can produce crazy harsh noise soundtracks.
Here are some alternatives if you don't feel comfortable with the material I provide you or if you have different plans for your final project.
Flixel and FlashPunk
A framework is basically a collection of classes working together to perform the some common operations. Adopting a framework can save you a lot of time but consider that we are not talking about code you can easily copy and paste, you have to understand its structure and learn its APIs (framework specific commands and structures).
Flixel and Flashpunk are very popular actionscript 3 frameworks. You might want to consider them if:
. You don't want to use the Flash CS4 development environment but more coded centered environment such as FlashDevelop or Flash builder/Flex.
. You prefer to work with bitmap graphics instead of the typical flashy vectors
. You want develop a tile-based game e.g. a super mario-like platform or a zelda-like top-down game.
Resources and tutorials for both the frameworks
Tile based games need level editors. This one is free and designed to work with Flixel / Flashpunk.
World Construction Kit
It's a terrific and user friendly physics engine based on the box2D library. It basically allows you to create levels governed by solid body physics using the Flash CS4 graphic environment. The set-up can be a little tricky but it's totally worth it if you are making a 2d physics game.
I discourage 3D environments because creating assets (models, textures) is generally more time consuming and the 3rd dimension adds a lot of complexity. But if you have a good idea that can only work in 3D, Unity is the best choice since it's free and relatively friendly.
If you really hate Flash and you are having problems with coding you might want to try gamemaker. With GM you can create pretty much every 2D bitmap based game you want. The downsides is: it's a kind of world in itself, meaning that the knowledge you acquire is probably hard to transfer to another, more flexible programming environment. Also available for MAC
Adventure game studio
AGS is a solid engine that allows you to develop a very specific kind of game: point-and-click graphic adventures similar to Lucasarts titles from the '90 (Monkey Island, Day of the Tentacle and so on). Unfortunately, it's windows only.
As I write stencyl is still in development but it might become available during the semester. It's a flash-based IDE that allows you to make games without writing code. It's similar to MIT's scratch.
There are many indie games blogs and communities where you can look for inspirations and collaborations. Here are my favourite ones:
Indie games blog
Connected to the more industry-oriented website Gamasutra
Play this thing
Also covers tabletop games.
Home of a very active community
The experimental gameplay project
Monthly experimental challenges. Started by Carnegie Mellon ETC students.
K. Salen, E. Zimmerman - Rules of Play: Game Design Fundamentals (Game design)
J.C. Herz - Joystick Nation (a witty history of video games from the '60 to the mid '90s)
A. Galloway - Gaming: Essays on Algorithmic Culture (critical theory and art)
E. Halter - From Sun Tzu to Xbox (war and videogames)
M. Wark - Gamer Theory (games and philosophy)
I. Bogost - Persuasive Games: The Expressive Power of Videogames (games for activism and advertising)
N. Dyer-Witheford - Games of Empire: Global Capitalism and Video Games (a neo-marxist essay on games)