Computational Features of Video Games

spaceInvaderIf 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:

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)

Main Program Loop (Frame Based Game)

Controlling a Sprite using the arrow keys

Controlling a Sprite using the arrow keys

Edge Detection & Bouncing Algorithm

Edge Detection & Bouncing Algorithm

Scrolling/Falling Object Algorithms

Scrolling/Falling Object Algorithms

Projectile-Motion

Projectile Motion Formula

Pacman Ghost Algorithm

Pacman Ghost Algorithm

Polar vs. Cartesian Coordinates

Polar vs. Cartesian Coordinates

Translations and Rotations in a 2D frame by frame animation

Translations and Rotations in a 2D frame based animation

2D Rotation Matrix

2D Rotation Matrix

Elastic Collision Formulas

Elastic Collision Formulas

Stage Generation:


Random Background Generation Algorithm

Random Background Generation Algorithm

Parallax Scrolling Effect

Parallax Scrolling Effect

Battleship Grid Initialisation Algorithm

Battleship Grid Initialisation Algorithm

Level Generation using a 2D Array

Level Generation using a 2D Array

Pacman Maze using a 2D Array

Collision Detection Algorithms:


Collision Detection Algorithm in a game of Curling

Collision Detection Algorithm in a game of Curling

Collision Detection between Sprites (PyGame)

Collision Detection between Sprites (PyGame)

Target Detection Algorithm

Target Detection Algorithm

Bouncing Algorithm in a platform game

Bouncing Algorithm (platform game)

Data Structures:


Connect4 Data Structure using a 2D-array

Connect4 Data Structure using a 2D-array

Othello Data Structure using a 2D-array

Othello Data Structure using a 2D-array

File Handling (CSV files) in a Monopoly Quiz

File Handling (CSV files) in a Monopoly Quiz

Using a 2D-array to implement a game of Tetris

Using a 2D-array to implement a game of Tetris

Using Lists/Arrays and Graphs to store/represent data

Using Lists/Arrays and Graphs to store/represent data

Using a Dictionary: Chemical Element Quiz

Using a Dictionary: Chemical Element Quiz

2D array - Minesweeper (Javascript)

2D array – Minesweeper (Javascript)

Football Results Tracker using a CSV file

Football Results Tracker using a CSV file

Frog Puzzle - Backtracking Algorithm using a Graph Data Structure

Frog Puzzle – Backtracking Algorithm using a Graph Data Structure

Noah's Ark - A backtracking algorithm based on a 2D array data structure.

Noah’s Ark – A backtracking algorithm based on a 2D array data structure.

 Laser Game - 2D array data structure.

Laser Game – 2D array data structure.

Scoring Systems:


Scoring System in a Quiz

Scoring System in a Quiz

Archery Scoring System

Archery Scoring System

Darts Scoring System

Darts Scoring System

Grading System

Grading System

Data Visualisation


Data Visualisation Algorithms

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 solve a Sudoku Puzzle

Using a backtracking algorithm to explore a maze.

Using a backtracking algorithm to explore a maze.

Heuristic approaches to problem solving

Heuristic approaches to problem solving

Machine learning top trumps game

Machine learning top trumps game

Rush Hour

Rush Hour: Backtracking Algorithm & Heuristics

Connect Flow - Backtracking Algorithm & Heuristics

Connect Flow – Backtracking Algorithm & Heuristics

3D User Interface:


Oblique Projection Formula

Oblique Projection Formula

3D Rotation Matrix

3D Rotation Matrix

Vanishing Point Perspective

Vanishing Point Perspective

Additional Features of video games:


Login Algorithm

Login Algorithm

Leaderboard (using a CSV file)

Leaderboard (using a CSV file)

Off-side Detection Algorithm

Off-side Detection Algorithm

Closest Player Detection Algorithm

Closest Player Detection Algorithm

Manhattan (taxicab) distance calculator

Manhattan (taxicab) distance calculator

Shuffling Algorithm (Shuffling a deck of cards)

Shuffling Algorithm (Shuffling a deck of cards)

Object-Oriented Programming:


OOP Concepts

OOP Concepts

Pong (Pygame Tutorial)

Pong (Pygame Tutorial)

Car Racing Game (Pygame Tutorial)

Car Racing Game (Pygame Tutorial)

Breakout Game (Pygame Tutorial)

Breakout Game (Pygame Tutorial)

UML Diagrams

UML Diagrams


Did you like this challenge?

Click on a star to rate it!

Average rating 3.8 / 5. Vote count: 27

No votes so far! Be the first to rate this post.

As you found this challenge interesting...

Follow us on social media!

Tagged with: