NAME
   SDL::Tutorial::3DWorld - Create a 3D world from scratch with SDL and
   OpenGL

DESCRIPTION
   This tutorial is intended to demonstrate the creation of a trivial but
   relatively usable "3D Game Engine".

   The demonstration code provided implements the four main elements of a
   basic three-dimensional game world.

   *   A static landscape in which events will occur.

   *   A light source to illuminate the world.

   *   A collection of N objects which move around independantly inside the
       world.

   *   A user-controlled mobile camera through which the world is viewed

   Each element of the game world is encapsulated inside a standalone
   class.

   This lets you see which parts of the Open GL operations are used to work
   with each element of the game world, and provides a starting point from
   which you can start to make your own simple game-specific engines.

METHODS
 new
   The "new" constructor sets up the model for the 3D World, but does not
   initiate or start the game itself.

   It does not current take any parameters.

 camera
   The "camera" method returns the currently active camera for the world.

   Provided as a convenience for world objects that need to know where the
   camera is (such as the skybox).

 sdl
   The "sdl" method returns the master SDLx::App object for the world.

 run
   The "run" method is used to run the game. It takes care of all stages of
   the game including initialisation and shutdown operations at the start
   and end of the game.

 current
   The "current" method can be used by any arbitrary world element to get
   access to the world while it is running.

SUPPORT
   Bugs should be reported via the CPAN bug tracker at

   <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=SDL-Tutorial-3DWorld>

AUTHOR
   Adam Kennedy <[email protected]>

SEE ALSO
   SDL, OpenGL

COPYRIGHT
   Copyright 2010 Adam Kennedy.

   This program is free software; you can redistribute it and/or modify it
   under the same terms as Perl itself.

   The full text of the license can be found in the LICENSE file included
   with this module.