137
\$\begingroup\$

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?

\$\endgroup\$
1
  • \$\begingroup\$ 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. \$\endgroup\$
    – Vaillancourt
    Jan 4 at 20:44
130
\$\begingroup\$

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).

\$\endgroup\$
0

Not the answer you're looking for? Browse other questions tagged or ask your own question.