Create Your Own Game, a game programming class

Join the fun and learn how to make your own game that runs in the browser, or just help sponsor the class and see what students create.
Nathan Whitehead
Sunnyvale, California
United States
2 Team Members

The Class

Do you have a burning desire to create video games?

In this class you'll learn how to create working games in the web browser using JavaScript and HTML5.  This is a course for game programmers, but we'll cover more than just programming.  You'll learn how to gather together graphics and sounds and use your code to bring them to life.  You'll learn how to tell a story, and how to add all the little details that make the difference between a graphics demo and an actual game.  Best of all, you can share your finished games immediately with the whole world on the class website or on your own website.


If funded, the class will run from June 3 through July 8.  Each day I'll post new content online including:

  • Working demonstration code illustrating new concepts
  • Sample game code
  • Video explanations of key topics
  • Interactive online coding challenges
  • New tasks and dares for students
  • Feedback on student submitted tasks

All content will be posted on the class website.  You'll be given accounts on the server to post your own demos and games, and a version control repository to keep track of your source code (you are not required to use it if you don't want to).  The class website will also have a forum section for discussions related to the class.  You will be able to post your task results in the forum or email them directly to me for feedback.

All the pledge levels from Student on up give you access forever to all the educational content of the class whenever you want it, whenever you have time for it.  I'll never take down the class content.


Students should have some existing programming knowledge, but don't need to be JavaScript experts.  To be successful in the class, you should have the following skills.

  • Some experience programming (for example in Python, Java, C#, or JavaScript)
  • Able to edit text files
  • Familiarity with basic HTML markup
  • Ability to use a graphics program such as Photoshop or the GIMP to cut, crop, and do other basic operations on images
  • Willingness to learn new technologies and programming techniques

The focus of the class is on creating games, not crazy programming techniques.  We'll be using programming as a tool to help us create games.

If you're not sure that your programming skills are good enough, try this practice problem.  In your favorite programming language, write a function that returns the sum of all the positive numbers in an array.  If the input is the array [1, 3, -5, 10] then the result from your function should be 14.  If you can write a solution in a few minutes without any problems then your programming skills are good enough for the class.


The class will cover making browser-based games using JavaScript and the HTML5 canvas. We'll be using a bunch of JavaScript libraries to make our lives easier, including the Crafty game engine.  The finished games should work in any modern web browser.

Funding Breakdown

  • $300 commissioned professional graphics for top game design proposals (will be CC-BY-3.0 licensed)
  • $178 royalty-free music licensing service (two months)
  • $60 server hosting for webpages and source code repositories (two months)
  • $50 miscellaneous royalty-free music
  • $40 email service for discussion group emails (two months)
  • $51 Indiegogo and Paypal fees
  • $30 video hosting for instructional videos (two months)
  • $20 royalty-free game sound effects sets

Total: $729

One expense is commissioning professional graphics for the top game design proposal(s). I want this to be a part of the class to show students how it works and what the costs are like. Of course most of the graphics we will use will be Creative Commons graphics gathered from many sources throughout the web. For music, I plan to use Magnatune's ILicenseMusic service and iStockphoto (they also have music) in addition to my existing collection of appropriately licensed Creative Commons works.

If the funding goal isn't met I will not be able to conduct the class.

About Me

I've always been interested in creating my own video games ever since I could understand anything. Working to create my own games as a kid led me down the programming path that I'm still on today.

In college I studied math and physics because I love figuring out how things work and discovering hidden beauty. At the time I saw programming as a means to an end, a way of getting things working, not really interesting in its own right. Then I discovered functional programming. I fell in love with programming all over again and realized that computer science is full of hidden wonders just as much as mathematics. I ended up getting a PhD in computer science at the University of California--Santa Cruz. After I finished my degree I joined the world of professional software development.

As a graduate student I've helped teach many classes in mathematics and computer science. Far and away the most fun class I've ever taught has been the UCSC COSMOS Game Programming summer school. High school students came for a few months in the summer to learn about game design and game programming. I was amazed at the creativity and drive of the students and at what they were able to accomplish.

I want to recreate the excitement of that class but in an internet class. I'm a believer in the power of online classes. Online classes can be cheaper and reach many more people simultaneously. I've done a few experimental classes before. It's actually pretty amazing. Hundreds of thousands of visitors have seen my "Nathan's Lessons" short interactive tutorial on JavaScript closures. That's more students than I ever saw in a classroom through years of being a graduate student. I got thousands of students for my class "Create Your Own Programming Language". Students learned esoteric programming language theory to be able to create their own programming languages.

I want this class to succeed because I want to bring the excitement of game programming to more students and get more games created. With just a little bit of guidance and direction, I know that beginning game programmers are capable of amazing things.

How to Help

Even if you don't have time to take the class yourself you are encouraged to pledge at any level you can afford. Every contribution helps make the class possible. Because this is an all online class, you can never take away a spot from another student. There is always room for more students in a digital class!

Other Ways You Can Help

If you can't contribute to the campaign you can still be involved:

  • Help get the word out to your friends that are interested in game programming
  • After the class is over, play the finished games and promote your favorite game

NEW: Free Student Waiting List

I've gotten inquiries from students throughout the world in a variety of situations who would like to participate in the class but are unable to financially contribute. To help bring the class to as many deserving students as possible I've started up a waiting list for students to take the class for free.

If you pledge at the new "StudentPlus" level you get to be a student in the class with all the benefits that entails, plus you allow one student on the waiting list to take the class as well.

Find This Campaign On
raised by 59 people in 1 month
300% funded
0 time left
$729 USD goal
Fixed Funding This campaign has ended and will receive all funds raised.
Campaign Closed
This campaign ended on May 2, 2013
Select a Perk
  • $1USD

    You get my eternal gratitude for helping make the class a success. Every bit helps!

    0 claimed

  • $10USD

    Follow along with the excitement! You get access to the class website which lets you see the progress of all the demos and projects and play the games that students develop.

    0 claimed

    Estimated delivery: June 2013
  • $30USD

    At this level, you or the person you designate has the option to become a full-fledged student in the class. You get a dedicated webpage to publish your game, a git repository to keep track of your code, access to all the instructional videos and webpages for the course, access to all game code examples, and access to the class archive of graphics and sounds. Students also get help as needed from the instructor.

    46 claimed

    Estimated delivery: June 2013
  • $60USD

    You get all the perks of the Student level and get to be a student in the class. Your contribution also sponsors one student on the free student waiting list.

    7 claimed

    Estimated delivery: June 2013
  • $100USD

    You or the person you designate has the option of being a student in the class. In addition, you get a custom printed coffee mug. Sip your coffee while feeling smugly superior to your co-workers who didn't support budding game programmers. Your name will also be mentioned as a sponsor in the class credits.

    2 claimed

    Estimated delivery: June 2013
  • $250USD

    You get all the perks from lesser levels. As a patron, you or your company will be thanked by name in the instructional videos and on the main class webpage.

    0 claimed

    Estimated delivery: June 2013
  • $500USD

    You are the class champion! In addition to all the other perks and being thanked by name in the instructional videos as the class champion, a custom avatar just for you will be a champion character in the RPG example game. You can be any race and class, and can have any special powers you desire (that I can figure out how to program).

    0 claimed

    Estimated delivery: June 2013
Do you think this campaign contains prohibited content? Let us know.