I list a lot of games to clone in this list. I do not mean make the exact same game down to the assets and name and everything. I mean make a game that uses the same mechanics. Don't get yourself sued for copyright violation. There are references at the bottom of this list to answer some common questions relevant only to this guide (and thus not present in the FAQ which contains a plathora of information pertinent to not only this guide, but the others as well.)
- Course: Intro to HTML/CSS: Making webpages
- Project: Build all assignments in the Intro to HTML/CSS: Making webpages course
- Course: Intro to JS: Drawing & Animation
- Project: Build all assignments in the Drawing and Animation course
- Course: Advanced JS: Games & Visualizations
- Project: Build all assignments in the Games & Visualizations course
- Project: Build a "pet project" game on Khan Academy using all the skills you've learned with processing.js. Make sure it has, at minimum, a "start game" screen, at least one level of a playable game that keeps score, and a "game over" screen.
- Course: Advanced JS: Natural Simulations
- Project: Build all assignments in the Natural Simulations course
- Project: Build a "pet project" game on Khan Academy using all the skills you've learned with processing.js. Make sure it has, at minimum, a "start game" screen, at least one level of a playable game that keeps score, and a "game over" screen.
- Course: HTML/JS: Making webpages interactive
- Project: Build all assignments in the HTML/JS: Making webpages interactive course
Get familiar with JavaScript (Feel free to skip this and come back and "unskip it" if at any point you feel daunted by what comes later)
- Book: Eloquent JavaScript
- Book: You Don't Know JS: Up & Going
- Book: You Don't Know JS: Scope & Closures
- Book: You Don't Know JS: this & Object Prototypes
- Book: You Don't Know JS: Types & Grammar
- Book: You Don't Know JS: Async & Performance
- Book: You Don't Know JS: ES6 & Beyond
- Course: Algebra I
- Course: Algebra II
- Course: Trigonometry
- Course: Precalculus
- Course: Algorithms
Get Familiar with Phaser and setup your bookmarks to Phaser Docs and helpful links for getting/creating assets
- Tutorial: Getting Started with Phaser
- Tutorial: Making Your First Phaser Game
- Bookmark: Phaser docs
- Bookmark: Phaser examples
- Bookmark: Tiled
- Bookmark: OpenGameArt
- Bookmark: Gimp
- Article: Pixel Art Tutorial
- Article: The Total Beginner’s Guide to Better 2D Game Art
- Game: Concentration (Reference Wikipedia)
- Game: Tic-Tac-Toe (unbeatable AI opponent) Wikipedia
- Game: Minesweeper Wikipedia
- Game: Sokoban Wikipedia
- Game: Snake Wikipedia
- Game: Pong (Reference Tutorial Pong - Tutorials 1 through 7)
- Game: Galaga
- Game: Breakout
- Course: Introduction to Computer Science - CS50
- Course: Effective Thinking Through Mathematics
- Game: Hangman
- Course: CS50's Introduction to Game Development
- Game: Your choice
- Game: Your choice
- Course: Video Game Design History
- Game: Your choice
- Book: Precalculus
- Book: Fundamentals of C++ Programming and labs
- Game: Adventure (see text adventure games)
- Exercises: Code Monk, then CodinGame - begin working through these lessons, make them a daily habit as you continue on
- Article: Read Algorithms and Flowcharts and then familiarize yourself with Pencil ... start flowcharting complex portions of your code logic as part of your documentation
- Book: An Introduction to Design Patterns in C++ with Qt 4
- Game: Zork (see text adventure games)
- Article: Building a Game on Your Own
- Article: How do I Make Games
- Game: Your choice
- Article: So You Want to Be a Game Programmer?
- Article: Finishing a Game
- Article: Pixel Art Tutorial
- Game: Your choice
- Article: The Total Beginner’s Guide to Better 2D Game Art
- Course: Single Variable Calculus
- Game: Duck Hunt
- Course: The Rise of Superheroes and Their Impact On Pop Culture
- Game: Sokoban, Snake, or Minesweeper - your choice
- Course: Product Design
- Book: Game Programming Patterns
- Game: Galaga
- Course: Mathematics for Computer Science
- Tutorial: Introduction to OpenGL Graphics Programming
- Tutorial: Beginning Game Programming v2.0
- Game: Frogger
- Course: Software Development Process
- Book: Applied Discrete Structures and assignments
- Game: Space Invaders
- Course: Algorithms, Part I
- Course: Algorithms, Part II
- Game: Tetris
- Course: Software Architecture & Design
- Article List: Amit’s Game Programming Information
- Article: General Concepts for Beginning Developers
- Article: OpenGL Math Primer
- Game: Breakout
- Course: Multivariable Calculus
- Course: Intro to Physics
- Game: Asteroids
- Course: Agile Software Development
- Game: Puzzle Bobble
- Article: AI
- Article: Tiling
- Article: Making a Level Editor
- Game: PacMan
- Course: Databases
- Course: Software Testing
- Course: Software Debugging
- Game: Super Mario Brothers
- Course: Linear Algebra - Foundations to Frontiers
- Book: Linear Algebra and answers to exercises
- Game: Sonic the Hedgehog
- Course: Cryptography I
- Course: Cryptography II
- Book: Artificial Intelligence
- Game: Zelda
- Book: Open Data Structures
- Course: Compilers
- Course: Artificial Intelligence
- Game: Gauntlet
- Book: Data Structures and Algorithm Analysis and assignments
- Course: Computer Graphics
- Game: Doom
- Course: Machine Learning
- Game: Final Fantasy
- Course: Computer Networks
- Course: Parallel Computer Architecture and Programming
- Game: Multiplayer card game (your pick) with both AI and networked (human) players
- Course: Computer Architecture
- Tutorial: Programmed Introduction to MIPS Assembly Language
- Course: Operating Systems and System Programming
- Course: Interactive 3D Graphics
- Getting Started Get Started with UE4
- Tutorials: Unreal Engine 4 official video tutorials
- Documentation: Unreal Engine 4 Documentation
- Book: The Blender Manual - study every section
- Game: Pick any prior game and re-do it in 3d using Unreal Engine
- Game: Diablo
- Game: Your choice - include AI
- Game: Your choice - Multiplayer
- Game: Your choice - with leaderboards
- Game: Your choice :D
- Game: Your choice :D
Tier 5 involves branching out to target the platforms you're most interested in and developing skills in the relevant technologies. At this point, you have a strong foundation in maths and algorithms, significant practice working with graphics, hands on experience building a variety of games, exposure to AI and Machine learning, exposure to networking and hardware concerns, and should have learned various software engineering practices (design, testing, debugging) so that you're writing quality code.
Now that you've got a really strong foundation, the sky's the limit. Pick the platform you want to develop for, Android, iOS, Windows, Linux, Mac, Web, XBox, Playstation, whatever - and start reading. Start with official docs, read them all. Find blogs dedicated to that platform. Rebuild some of the easiest projects you've done thus far, targeting that platform.
Use the Force :D
- surge.sh - deploy your frontend projects here (or use github pages)
- MDN - look HTML, CSS, and JavaScript stuff up here
- Heroku - deploy your fullstack projects here (or hyperdev)
- Firebase or mLab - database hosting
- Material Design - lean on this when you need a structure for creating a minimalistic but awesome looking site
- Material Palette - for selecting color schemes
- GitHub - store your code here
- Gimp - image editor
- Blender - 3d creation suite
- Inkscape - vector drawing
- Tiled - tilemap editor
- Leshy SpriteSheet Tool - HTML5 tool for creating, packing, and modifying sprite sheets and texture atlases.
- OpenGameArt - open source game art (check the copyright, some are more open than others)
- Wirify - for quickly turning a web page into a wireframe so you can see the big picture instead of all the graphics
- Mockup the game screens by hand, using Pencil, or in graphics software - before you start coding the game
- Write a document describing the game, win conditions, lose conditions, and features you intend to include - before you start coding
- Create a minimal demo before building out the whole things
- Store your mockups, design documentation, and game progress in a versionable repository (GitHub)
- Include tests :D
- Include documentation on how to build and run the game
If you need a productive break from a course or book to clear your head, BUILD A GAME, then get back to the list. Here's some ideas (some are already present in the lists above):
- Pong
- Zork
- Mastermind
- Memory Puzzle
- Galaga
- PacMan
- Breakout
- Solitaire
- Flappy Bird
- Space Invaders
- Super Mario Bros
- Fruit Ninja
- Last Stand
- Tetris
- Angry Birds
- Bejeweled
- Sokoban
- Katamari Damacy
- Blackjack (with AI opponents)
- Checkers (with AI opponent)
- Donkey Kong
- Tron (two player, with option for multiplayer or AI opponent)
- Pokemon
- Monopoly (1-4 player, with option for multiplayer or AI opponent)
- Bomberman
- Diablo
- Zelda
- Scythe
- Minecraft
- Risk
- Lunar Lander
- Streetfighter
- Castlevania