GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Module::Build::SDL(3) User Contributed Perl Documentation Module::Build::SDL(3)

Module::Build::SDL - Module::Build subclass for building SDL apps/games [not stable yet]

When creating a new SDL application/game you can create Build.PL like this:

 use Module::Build::SDL;
   
 my $builder = Module::Build::SDL->new(
     module_name   => 'Games::Demo',
     dist_version  => '1.00',
     dist_abstract => 'Demo game based on Module::Build::SDL',
     dist_author   => 'coder@cpan.org',
     license       => 'perl',
     requires      => {
         'SDL'     => 0,
     },
     #+ others Module::Build options
 )->create_build_script();

Once you have created a SDL application/game via Module::Build::SDL as described above you can use some extra build targets/actions:

  • you can create a PAR distribution like:

     $ perl ./Build.PL
     $ ./Build
     $ ./Build par
        

    There are some extra parameters related to 'par' action you can pass to Module::Build::SDL->new():

     parinput  => 'bin/scriptname.pl'
     paroutput => 'filename.par.exe',
     parlibs   => [ qw/SDL SDL_main SDL_gfx/ ],  #external libraries (.so/.dll) to be included into PAR
     parmods   => [ qw/Module::A Module::B/ ],   #extra modules to be included into PAR
        
  • to run the game from distribution directory you can use:

     $ perl ./Build.PL
     $ ./Build
     $ ./Build run
        
  • TODO: maybe some additional actions: parexe, parmsi, deb, rpm

Module::Build::SDL is a subclass of Module::Build created to make easy some tasks specific to SDL applications - e.g. packaging SDL application/game into PAR archive.

Module::Build::SDL expects the following layout in project directory:

 #example: game with the main *.pl script + data files + modules (*.pm)
 Build.PL
 lib/
     Games/
           Demo.pm
 bin/
     game-script.pl
 data/
     whatever_data_files_you_need.jpg

the most simple game should look like:

 #example: simple one-script apllication/game
 Build.PL
 bin/
    game-script.pl

In short - there are 3 expected subdirectories:

  • bin - one or more perl scripts (*.pl) to start the actual application/game
  • lib - application/game specific modules (*.pm) organized in dir structure in "usual perl manners"
  • data - directory for storing application data (pictures, sounds etc.). This subdirectory is handled as a "ShareDir" (see File::ShareDir for more details)
  • As the project is (or could be) composed as a standard perl distribution it also support standard subdirectory 't' (with tests).

When creating a SDL application/game based on Module::Build::SDL it is recommended to follow these rules:
  • Use the name for your game from Games::* namespace; it will make the later release to CPAN much easier.
  • Put all data files into data subdirectory and access the data subdir only via File::ShareDir (namely by calling distdir() function)
  • TODO: maybe add more
2022-06-07 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.