137

Generally, what are the core things that one should do in the game loop, and what are some things that one shouldn't do in the game loop?

Vaillancourt
  • 16,325
  • 17
  • 55
  • 61
hokiecsgrad
  • 2,496
  • 3
  • 21
  • 14
  • Note to future visitors: although this was an interesting and relevant question when it was asked ~10 years ago when the site was shiny and new, this is not a good representation of the questions we expect today; it is on-topic but does not really present an issue to be solved. – Vaillancourt Jan 04 '21 at 20:44

1 Answers1

136

The main game loop handles three major tasks:

  1. Get user input
  2. Update the game state
  3. Draw the game

A simple game loop just mushes these three tasks into one while loop. This has some undesired results:

  1. Game runs at different speeds on different computers.
  2. CPU (can be needlessly) pegged at 100% usage.
  3. "Game states"/menus are missing or mixed with game code.
  4. Main game loop is very long and hard to maintain.
  5. Code is difficult to extend/port to other platforms.

Advanced gamed loops address the issues listed above. Here are some useful articles:

For an excellent example game loop, take a look at the Allegro skater demo game:

Other related resources:

Game loops often do the same type of work for most games, so I have been thinking of a way to make a generalized game framework. It is better to write one implementation of a game loop and share it between games. It saves work when creating a new game, and improvements to the shared game loop can be shared by all games (for example, adding a FPS counter or screen capture feature).

Convert
  • 101
  • 3
Leftium
  • 4,423
  • 3
  • 23
  • 30