/fun-learning

Apache License 2.0Apache-2.0

Learn Programming and Python by writing games

There are many tutorials that teach programming using games. It's an appealing idea because:

  • Most people like games and are familiar with at least a few.
  • Games are easy to visualize -- pieces are moving around or characters are walking across the screen, items are picked up or dropped, and so on.
  • Games try to model real world and try to have some relation to how things work in the real world - a character may have health that is reduced when something hits him or her & character dies if he runs out of it.

It seems like an ideal way to learn programming, but there are a few stumbling blocks (even with games that do not involve blocks):

  • UI, input validation is tricky and not easy to explain or to get right.
  • Commercial games set an expectation of visual and UI polish that would take too much effort to meet in a learning project
  • Different features you can add to the game will vary in difficulty level
    • wildly and unexpectedly to the student.
  • Very basic games like TicTactoe or Asteroids (arguably) aren't fun and the fun games are too complex.

My approach will try to solve some of these issues: I will take a large number of popular, fun games and make simplified versions of them, making Blog posts on each iteration and keeping each of them short and simple, but also discussing more advanced game features that may be tackled & to hot approach them.

The focus will be more on getting through initial hurdles and mapping out possible future routes to enhancement rather than to strive for completeness.

The tentative list of games I plan to include, not necessarily in this order:

  • Side scroller - think Mario

  • Mine Sweeper - find mines on a board by using revealed numbers that hint at mine locations.

  • Word guess - display a word that has to be guessed, one letter at a time

  • Uno - a card game popular with kids

  • Threes! - a mobile puzzle game

  • Lords of Might and Magic - a turn based strategy game where you control castles and heroes.

  • Civilization - an empire (or a democracy) building game.

  • Crossword puzzle

  • Ticket to ride - a board game with cities and trains.

  • Settlers of Catan - a board game with roads and settlements.

  • Roguelike - an overhead game with dungeons, monsters and exploration.

  • Monopoly

  • Memory game - display a board for a few seconds, hide it, and let player guess items in tiles.

  • Fortress defense - buy and place cannons that will defend your base from a stream of attackers.

  • Crime mystery - examine evidence and interview witnesses to solve a crime.

  • Set - a really cool board game where you need to find a set of 3 cards that match.

  • Code names - the best board game (arguably), where the goal is to find connections between words based on hints from your team.

  • Checkers

  • Tetris

  • Blackjack