Updated Articles
[sdlgit/SDL-Site.git] / pages / blog-0001.html-inc
index 4c366da..bb61f7c 100644 (file)
@@ -1,26 +1,8 @@
 <div class="blog">
 <h1 id="NAME">
-The Build Process of SDL Perl
+SDL Perl Game Contest - week 1 roundup
 </h1>
 <div class="CONTENT">
-<p>A while ago I had a long chat with mst on why SDL uses Module::Build rather then Make. I told him it is a simple matter of code inertia.  The existing Module::Build system has worked well for us so far. Never the less, he convinced me that switching to Make will improve debugging the Build system. But to be able to switch we will need to completely replace the Build system. I am not prepared to do that so I will just present the requirements so mst or someone else can at least attempt to switch.</p><br />
-<br />
-<h3>The Build Process </h3><br />
-<b> Alien::SDL </b><br />
-<br />
-<p>SDL Perl depends on a few C libraries for a complete install. This is handled by Alien::SDL. First we look for existing SDL libraries and dependencies by doing a <a href="http://github.com/kthakore/Alien_SDL/blob/master/inc/My/Utility.pm#L581">File::Find</a> for headers. If these headers are found we  present and option for the user to use those. We then store these locations in Alien::SDL->config options 'cflags', 'prefix' and 'libs'. If we do not have libraries available even for a minimum SDL installed ( SDL.h is not found). We provide several platform specific options. </p><br />
-<p>For windows we have a simpler process. We download<a href="http://github.com/kthakore/Alien_SDL/blob/master/inc/My/Utility.pm#L7"> prebuilt </a>binaries ( and checksum ) based on the user's selection and just copy them in to the right location. Again the 'prefix', 'cflags', and 'libs' is saved in Alien::SDL->config. </p><br />
-<p>For *nix/MacOSX we download sources and attempt to compile them. To be able to do this we download several other dependencies like libpng, jpeg and pango. You can see how we do this using hashes <a href="http://github.com/kthakore/Alien_SDL/blob/master/inc/My/Utility.pm#L404">here</a>. During the compile process we also apply patches as needed for the <a href="http://github.com/kthakore/Alien_SDL/blob/master/inc/My/Utility.pm#L430">sources</a>. Once this is done we can head to SDL Build.PL </p><br />
-<b> SDL Perl dependency resolution </b><br />
-<br />
-SDL's Build is responsible for linking the right libraries to the correct XS. If libraries are missing it will disable the component (not put it in SDL->config). <br />
-<br />
-<p>For example to build <a href="http://github.com/kthakore/SDL_perl/blob/master/Build.PL#L342">Image.xs</a> we require libsdl, libsdl_image and lib[jpg|png|tiff]. So we would check for these headers in the prefix provided by Alien::SDL->config. If they are not provided we will disable the SDL::Image module. </p><br />
-<p>More over the availability of each library is specified as a -DMACRO to the gcc compiler. This way we can prevent XS failures due to missing libraries using #DEFINES. Here the SDL_image macro is <a href="http://github.com/kthakore/SDL_perl/blob/master/Build.PL#L422">defined</a> and <a href="http://github.com/kthakore/SDL_perl/blob/master/src/Image.xs#L13">used</a>. The availability of the module is then available from <a href="http://github.com/kthakore/SDL_perl/blob/master/t/image.t#L20">SDL::Config->has()</a> <br />
-<br />
-<br />
-<b> Conclusion </b> <br />
-<p>This is a high level overview of our Build process, because frankly I hate traumatizing my brain with this again. Credits have to go to FROGGS and kmx for helping with this Build scheme. Hopefully my post have helped people at the very least appreciate the problem scope of this Build system. That said I believe a fresh written build system, with these requirements in mind, will be more then welcome.<br />
-</p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3102167581424744259-4514794130108689562?l=yapgh.blogspot.com' alt='' /></div>
-<p><a href="http://feedads.g.doubleclick.net/~a/SHI8waMCUMOT4LmhUSkV3-Y1cK8/0/da"><img src="http://feedads.g.doubleclick.net/~a/SHI8waMCUMOT4LmhUSkV3-Y1cK8/0/di" border="0" ismap="true"></img></a><br/>
-<a href="http://feedads.g.doubleclick.net/~a/SHI8waMCUMOT4LmhUSkV3-Y1cK8/1/da"><img src="http://feedads.g.doubleclick.net/~a/SHI8waMCUMOT4LmhUSkV3-Y1cK8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/YetAnotherPerlGameHackeryapgh/~4/fTwVmM222rA" height="1" width="1"/></div></div>
\ No newline at end of file
+As you probably know, last week we started the <a href="http://yapgh.blogspot.com/2011/02/sdl-perl-game-contest.html">SDL Perl Game Contest</a> (more like a Game Challenge, as people pointed out), where you have to write one game per week throughout the entire month of March!<br /><br />So far we had some awesome entries - people really stood up to the challenge! Check them out:<br /><br /><br /><a href="https://github.com/jtpalmer/sdl-contest/tree/master/week1">Solar Conflict</a>, by JT Palmer (jtpalmer)<br /><br /><a href="http://2.bp.blogspot.com/-O4eOSpw9_WI/TXXH2myog0I/AAAAAAAAAKg/jkybUvlZ2zM/s1600/solarflare.png"><img style="cursor: pointer; width: 400px; height: 309px;" src="http://2.bp.blogspot.com/-O4eOSpw9_WI/TXXH2myog0I/AAAAAAAAAKg/jkybUvlZ2zM/s400/solarflare.png" alt="" id="BLOGGER_PHOTO_ID_5581587054135378754" border="0" /></a><br /><br />When JT came to #sdl in the middle of the week with some bugfixes for SDLx::Controller::Interface, we knew he was up to something. <span style="font-style: italic;">Solar Conflict</span> is a brilliant clone of <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Spacewar%21">Spacewar!</a>, one of the earliest known computer games, where two spaceships battle against each other while steering clear of a star's gravity well. This version of the game lets you play against the computer or another player, and all graphics were taken from <a href="http://opengameart.org/">Open Game Art</a>. Funny fact: the initial version of the original <span style="font-style: italic;">Spacewar!</span> game took approximately 200 hours to be created. Way to go, JT!<br /><br /><br /><a href="https://github.com/PerlGameDev/Asteroids">Asteroids</a>, by Tobias Leich (FROGGS)<br /><br /><a href="http://1.bp.blogspot.com/-zM36VHBoyCQ/TXXVfPt9VkI/AAAAAAAAAKw/Pgj0skkg0I4/s1600/asteroids.png"><img style="cursor: pointer; width: 400px; height: 235px;" src="http://1.bp.blogspot.com/-zM36VHBoyCQ/TXXVfPt9VkI/AAAAAAAAAKw/Pgj0skkg0I4/s400/asteroids.png" alt="" id="BLOGGER_PHOTO_ID_5581602045967554114" border="0" /></a><br /><br />Speaking of spaceships and classic remakes, who doesn't remember <a href="http://en.wikipedia.org/wiki/Asteroids_%28video_game%29">Asteroids</a>? This Atari masterpiece served as inspiration to FROGGS this week, and he provided a beautifully crafted clone, taking you back to the golden age of arcade games.<br /><br /><br /><a href="https://github.com/kthakore/SDL_Contest/tree/master/first">Polyzle</a>, by Kartik Thakore (kthakore)<br /><br /><a href="http://2.bp.blogspot.com/-IkFIkFWAlmk/TXXVsaxVnnI/AAAAAAAAAK4/Q2oCPUkWjTQ/s1600/polyzle.png"><img style="cursor: pointer; width: 400px; height: 312px;" src="http://2.bp.blogspot.com/-IkFIkFWAlmk/TXXVsaxVnnI/AAAAAAAAAK4/Q2oCPUkWjTQ/s400/polyzle.png" alt="" id="BLOGGER_PHOTO_ID_5581602272272817778" border="0" /></a><br /><br />But enough of rethinking the past - Kartik pushed the limits of <span style="font-style: italic;">avant-garde</span> this week and brought us Polyzle (or "Polygon Trouble"). The player is faced with several colored polygons swarming around the screen, and needs to click on them to score points - but only has 30 seconds to do it, and believe me, it's not as easy as it looks! While the game certainly doesn't fit the usual rationalities of a standard gameplay, Kartik replies that maybe his game is just too ahead of its time. What do you think? Could he be the Van Gogh of game design? Only time will tell ;-)<br /><br /><br /><a href="https://github.com/PerlGameDev/Games-FingerTwister">FingerTwister</a>, by... me =P (garu)<br /><br /><a href="http://2.bp.blogspot.com/-_cPXtcpOFYQ/TXXKgiGIWHI/AAAAAAAAAKo/ggRdCVEEGPw/s1600/fingertwister.png"><img style="cursor: pointer; width: 400px; height: 312px;" src="http://2.bp.blogspot.com/-_cPXtcpOFYQ/TXXKgiGIWHI/AAAAAAAAAKo/ggRdCVEEGPw/s400/fingertwister.png" alt="" id="BLOGGER_PHOTO_ID_5581589973452740722" border="0" /></a><br /><br />Last but not least, my precioussssssss.... FingerTwister! In this game, the player needs to press the keys on the keyboard as they show up on screen, and <span style="font-weight: bold;">keep them pressed</span> as new keys appear. You can only let go the keys<span style="font-style: italic;"> after</span> they disappear from the screen, and the sooner you press a key (the green bar on the bottom) the more points you get. The game also features music and sound effects from talented artists at <a href="http://ccmixter.org/">ccMixter</a> and <a href="http://freesound.org/">FreeSound</a>, and a highscore table. Unfortunately, as any game that requires multiple keys pressed at the same time, it suffers from key-jamming issues on regular (plain) keyboards. I tried to provide a workaround for that, but the only real solution is getting a n-key rollover keyboard like razerzone's and logitech's G15/G19.<br /><br />Overall, I'm really happy about this week's roundup of games, and we're still receiving submissions! Perl coder or not, if you always wanted to write a computer game, join us on the SDL Perl Game Contest, and we'll help you take it out of your TODO list and into the glory it deserves!<br /><br />See you next week =)<div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3102167581424744259-1440981436339915214?l=yapgh.blogspot.com' alt='' /></div>
+<p><a href="http://feedads.g.doubleclick.net/~a/za3DiUJ_kfs6bMxQ3rf_FRgAjV8/0/da"><img src="http://feedads.g.doubleclick.net/~a/za3DiUJ_kfs6bMxQ3rf_FRgAjV8/0/di" border="0" ismap="true"></img></a><br/>
+<a href="http://feedads.g.doubleclick.net/~a/za3DiUJ_kfs6bMxQ3rf_FRgAjV8/1/da"><img src="http://feedads.g.doubleclick.net/~a/za3DiUJ_kfs6bMxQ3rf_FRgAjV8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/YetAnotherPerlGameHackeryapgh/~4/bsFtQf11NhI" height="1" width="1"/></div></div>
\ No newline at end of file