If you are confident enough with your Python skills, you might feel ready to move on to the next stage and start creating your own arcade video game.
To do so you will have to research and investigate existing video games to identify some of the key computational features of these games and see how these can be implemented.
For arcade games we advise you to investigate the classic games including:
- Pacman,
- Pong,
- Space Invaders,
- Breakout,
- Artillery Games (Tanks, Worms, Angry Bird),
- Tetris,
- Platform Games (e.g. Donkey Kong),
- Racing Games (e.g. Outrun, Traffic Racer, Mario Kart),
- Side Scrolling Games (Super Mario, Flappy Bird),
- Quiz Based Games, (Buzz, Who Wants to be a Millionaire…)
- Logic Games & Board Games (Chess, Connect4, Battleships…),
- Logic Puzzle (Rushhour, minesweeper, Sudoku, Maze based games…),
- Card Games (Solitaire, Poker, Blackjack…),
- Educational video Games,
- 3D video Games (minecraft, flight simulators…)
- etc.
When investigating these video games try to identify their main features:
- What are the main sprites of the game,
- How does the player interact with the game / control the main sprite,
- How does the scoring system work,
- Is the game making use of a timer,
- Can the player play against the computer,
- Is the game using real physics,
- Is the game in first-person view,
- How does the computer control the movement of other sprites,
- How does the computer decide what move to play next,
- What information is stored in the game,
- What extra features are included in the games (e.g. leaderboard?),
- What settings can be changed in the game,
- Are there multiple levels of difficulty,
- What makes a level more difficult to complete,
- How is the stage generated,
- What are the main characteristics of the Graphical User Interface,
- etc.
You will then be able to research these characteristics further and identify the computational features that you could use to build your own game.
To help you getting started we have listed here a few blog posts from this blog describing a range of computational features further:
Controlling Movement of Sprites:
Main Program Loop (Frame Based Game)
Controlling a Sprite using the arrow keys
Edge Detection & Bouncing Algorithm
Scrolling/Falling Object Algorithms
Projectile Motion Formula
Pacman Ghost Algorithm
Polar vs. Cartesian Coordinates
Translations and Rotations in a 2D frame based animation
2D Rotation Matrix
Elastic Collision Formulas
Snake Game in Python
Stage Generation:
Random Background Generation Algorithm
Parallax Scrolling Effect
Battleship Grid Initialisation Algorithm
Level Generation using a 2D Array
Pacman Maze using a 2D Array
Snakes & Ladders using a 2D array
Candy Crush – Level Generation
Collision Detection Algorithms:
Collision Detection Algorithm in a game of Curling
Collision Detection between Sprites (PyGame)
Target Detection Algorithm
Bouncing Algorithm (platform game)
Data Structures:
Connect4 Data Structure using a 2D-array
Othello Data Structure using a 2D-array
File Handling (CSV files) in a Monopoly Quiz
Using a 2D-array to implement a game of Tetris
Using Lists/Arrays and Graphs to store/represent data
Using a Dictionary: Chemical Element Quiz
2D array – Minesweeper (Javascript)
Football Results Tracker using a CSV file
Frog Puzzle – Backtracking Algorithm using a Graph Data Structure
Noah’s Ark – A backtracking algorithm based on a 2D array data structure.
Laser Game – 2D array data structure.
Scoring Systems:
Scoring System in a Quiz
Archery Scoring System
Darts Scoring System
Grading System
Data Visualisation
Data Visualisation Algorithms
Artificial Intelligence? When the player plays against the computer!
Tic-Tac-Toe Challenge
Using a Backtracking algorithm to solve a Sudoku Puzzle
Using a backtracking algorithm to explore a maze.
Heuristic approaches to problem solving
Machine learning top trumps game
Rush Hour: Backtracking Algorithm & Heuristics
Connect Flow – Backtracking Algorithm & Heuristics
3D User Interface:
Oblique Projection Formula
3D Rotation Matrix
Vanishing Point Perspective
Additional Features of video games:
Adding a timer in a video game
Sprite Animation using Pygame
Login Algorithm
Leaderboard (using a CSV file)
Off-side Detection Algorithm
Closest Player Detection Algorithm
Manhattan (taxicab) distance calculator
Shuffling Algorithm (Shuffling a deck of cards)
Object-Oriented Programming:
OOP Concepts
Pong (Pygame Tutorial)
Car Racing Game (Pygame Tutorial)
Breakout Game (Pygame Tutorial)
UML Diagrams