kena

How can I learn how to make video games?

In address on February 11, 2013 at 12:00

Video games are awesome, but not enough people know how to make them.

I believe society should invest in teaching how to make video games. The experience of playing video games and watching others play them is an intensive source of diversified cognitive and social experience. This experience advantageously replaces  endless hours idling in a traditional classroom. Instead of wasting 15 years at school, future generations could walk an accelerated path through the begin of life via virtual activities tailored automatically to their interests and abilities. I believe that instead of investing in the traditional education infrastructures, and instead of churning out teachers whose work is both physically exhausting and mentally numbing, society should produce video game creators and facilitate access of every child to a diversified supply of video games.

There will be some thinking involved, of course. The right combination of gamers, teachers and hackers need to accrue before anything like this happens.

Most likely, we need a transition. Existing teaching organizations, for example universities, do not use video games to teach; but we can assume they will bootstrap the process by producing the first generation of advanced video game creators.

Assuming a university was interested to teach how to make video games, what would its teaching program look like? What education would best catalyse video game creation at this day and age?

I was toying with this idea yesterday. Check out what I’ve got.

Theoretical background

  • CS theory: graph algorithms, data structures (incl. hash maps and quad trees).
  • Mathematics: numerical analysis, linear algebra, probability and statistics
  • Applications of maths and CS theory: neural networks, genetic algorithms, finite state automata, Markov chains, Petri networks
  • Biology and psychology of human perception (incl. neurology of focus and reflexes, color theory, reaction time)
  • Economy and politics in virtual environments
  • Basics of music theory and music cognition/psychology
  • History of video games

Interfacing

  • Hardware architecture of audio and video output
  • Graphical rendering: sprites/blits, z-buffers, raycasting/raytracing, tesselation
  • Signal processing: domain transforms, convolutions, filters, pattern recognition
  • Digital music and sound effects: sample merging vs. synthesis, encoding, reproduction and fidelity

Art and design

  • Practice of drawing and photography
  • Practice of playing music (incl. individually and in groups)
  • Animation styles and techniques
  • Techniques of storytelling: outlines, scripts, storyboards
  • Digitization: acquisition, modelling, visual/acoustic pre- and post-processing

Virtual environments

  • Physics simulation (incl. trade-offs in accuracy/performance)
  • Automated world generation (incl. value noise, hill algorithm, etc.)
  • Process networks and agent systems

System design and programming

  • Aspect-oriented and functional programming
  • Distributed systems and networks (incl. locality & consistency issues in distributed storage)
  • Concurrent and parallel programming
  • Dynamic and interpreted languages (incl. integration thereof in existing frameworks)
  • Study of existing state-of-the-art engines: Unity, id Tech, etc.
  • Software development methodologies: waterfall, agile, scrum, xp, etc.
  • Software validation and testing

Business basics

  • Legal frameworks: copyright and licensing, intellectual property, business partnerships
  • Basics of marketing
  • Setting up a business: writing a business plan, pitching to investors, bootstrapping, basics of accounting

This is probably about five years of learning, interleaved with hands-on practice.

(Can you see any topic that’s missing from this program?)

❦❦❦

Maybe someone will gather the right combination of contents and propose them in some form of on-line course. Maybe a university will invest in such a teaching program of sorts. Or we could build an organization that helps students achieve the same on their own. Who wants to join?

Advertisements
  1. Nice idea, but the material sounds too broad. This sounds like a “jack of all trades, master of none” kind of deal. If you want to train some kind of “renaissance man”, a one-man video game developer then yes, by all means learn all these topics. But realistically, noone is going to.

    Producing video games is still mostly a multi-disciplinary team effort. In the cases where one or two people can do it, it’s usually a programmer and an artist, working on an already-existing engine that removes quite a lot of necessary know-how from this list.

    Business stuff? That’s what MBAs are for. Art, design and interfaces? Leave that to artist. Legal? Lawyers. Story? Writers.

    And Programming? Even that is usually split up into disciplines. Audio, Video, Core, Network, AI, Scripting. Companies hire people for these fields based on very different requirements.

    To be competent enough in ANY of these fields to be hired by a video game developer, would take at least 5 years on its own.

    Yes, there are universities that offer video game degrees, but honestly, ask anyone in the field: don’t get one. It is WAY to specific to base your future on. Get a CS degree and you can be a video game programmer AND a load of other things. But with a Video Game Degree you’re putting all your eggs in one basket, while practically only using a fraction of what you’ve learned since you’ll be pidgeon-holed into a certain discipline anyway, and pretty much stuck there since from then on you’ll have “experience” in that discipline.

    However with that said, a single web site with online resources for all these topics IS a good things. Specialize (and get a degree) in one and learn the basics of the others. And those do exist.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: