Pliant can easily interface with C libraries. For this reason, the SDL library was chosen because its a library with the richest API for cross platform multimedia software. Pliant+SDL is simply a set of modules that wrap the SDL library functions for use in Pliant programs. These modules however provide a very thin wrapper and require some knowledge of the relationships between Pliant and C code. This project will produce some examples and documentation ( comming soon) to show this. The API resembles the C SDL API, so the SDL documentation a useful source of reference. The code written by this project is licenced under any version of the LGPL.
The project page can be found here: http://www.sourceforge.net/projects/pligame.
The ultimate goal is to produce another, more thicker wrapper written ontop of Pliant+SDL. This will be PliGame. It will use Pliant's native data types and conventions. Its API will resemble that of Pygame and likewise provide bindings to popular support libraries for SDL like SMPEG.
Due date. Well, it time to show where it is now. A lot of corners needed to be cut, asteroids are static, and they don't even move! All you can do is shoot at them and see them explode. The explosions are also static. Download the archive here or view the source. You simply have to unarchive it under /pliant/ and type
I've been working on this project after hours at my co-op workplace. But now its over, I'm going to have to wait until I get set-up again at home before I continue this summer. BTW, I posted my proposal for this project to. I'll make a download section later for all this stuff.
Well, it still under construction actually. The table of contents are available, and I'll be adding more info as I go along. I'm adapting the SDL project's documentation for Pliant+SDL.
I got a responce from sourceforge.net, the CVS is now cleaned and wiped. I haven't decided whether I'm going to use it yet. When, if I get active help on this project, I'll go back to using the public CVS repository. Until then, tarballs will be fine.
Minor change: I took out the examples subdirectory and put it in its own archive. This is because the bitmaps used in the examples were collectively large, much geater than the bindings themselves. I left the testsprite.pli demo in Pliant+SDL so that you can test your installation.
CVS is not back yet, I sent a support reqest sourceforge.net. But I'm beginning to think I should stay with using tarballs, until I fully understand how to manage CVS safely.
Please do not use CVS right now. I admit I don't know CVS, and I'm beginning to hate it. Until I figure this out, you're going to have to fetch the tarballs. Sorry.
I finally provided some, however meager documentation for Pliant+SDL. Its a section called "Getting Started". I've decided that I can't assume that any person who visits here will know much about SDL, let alone Pliant. The only thing I'll safely assume is that they know some programming, either in C or Java. I guess this means Pliant+SDL will really be for first year students.
Since Pliant+SDL uses a similar interface as the C API for SDL, I see no reason to re-write the documentation thats already available. What I plan to do is provide anotated versions of my demos and other examples in the same fashion as I did for the "Getting Started" section. Along the way, I introduce SDL and Pliant, API, language and concepts. I know that if I wanted a preview of a new langauge or library, I would first look for a good tutorial.
Mockups! I've been working on the asteroids demo game for Pliant and SDL. I've never wrote a game before, so the process is quite new to me. I decided to create the graphics that I would use in the game first. I first created animated asteroids, rolling in space. Three of them, different shapes and rotating on different axis. These asteroids will scale as they approach closer to you. Then I created these mockups. These are useful as it helps me figure out how I expect the game to look in the end:
Yep, these aren't from the real game but the graphics are mine and will be used in the game -- EXCEPT for the backdrop. The beatiful backdrop is wishful thinking and it doesn't belong to me. It was created in Blender (the same tool I used along with Gimp) by Enrico Valenza. He has a tutorial on how to do this but it doesn't appear complete. The game will use a panorama, with some degree range for panning up and down, left and right. In the end however, I may have to settle for a simple starfield simulation. I have only one month and a bit left, so I'm running out of time!
The game however will be boring. Its really just meant to demo what a game might look like in Pliant+SDL or Pligame. It will also be a testing platform for new features in SDL as I expose them to Pliant and add them to the modules.
I apologize with the sparce amount of information here. I have been working on this project for a while, but mainly for myself. But then I was ignoring the golden rule of Open Source: release early, release often. So I'm taking a break in my devlopments and making my first release available now. I've setup the cvs so expect regular updates, especially with the examples. If you want to know how to use Pliant+SDL, refer to the examples under the examples/ subdirectory (also poorly documented :-( ) and the official SDL library documents.
I'm making a small demo game (Asteroids) to demonstrate Pliant+SDL. It will feature most if not all of the important SDL functions, so I will be adding the existing modules as I write this game. For example, when I get to including sound effects I'll make those audio routines available in the Pliant+SDL wrapper. Also remember that Pliant's interface with DLLs is trivial, and one could easily add support themselves just by reading the module files. It's practically no work at all implement (but a whole lot of work to test).
Currently, Pliant+SDL only works in Linux. It should be able to work in Windows also, but for some reason I can't figure why Pliant doesn't open win32 DLLs properly. When thats figured out, then it should work just as well under Windows as Linux. Linux's still better and it will be the main target platform. Update: 03/10 Hubert Tonneau responds:
You need DLLs that use WINAPI calling convention as opposed to native compiler calling convention for all the functions exported by the DLL. This is what many DLLs comming from Unix word fail to do (good samples are Zlib and libjpeg that I had to recompile myself because none was properly packaged nor written).This is from a thread in the talk forum from pliant.cx.
First, you must have the latest version of Pliant and libsdl installed. If you compile SDL from sources, please make sure that your LD_LIBRARY_PATH includes where the libraries are installed.
Most recommended method, as it will get you the most recent in-development
version. Requires CVS tools. Set the CVSROOT environment variable to
":pserver:email@example.com:/cvsroot/pligame/". Then cd to
/pliant/pliant and do "cvs co SDL". Press enter when asked for password. Thats
it. Go and try to run the examples in /pliant/pliant/SDL/examples. It may be
possible that CVS is blocked by your firewall, if this method doesn't work. In
such case, you're better of just installing by the arball method.Update 04/ 22:
CVS troubles, use tarballs instead.
Download pliant+SDL.tar.bz2 and unpack it in $HOME/pliant/pliant/. To do this, cd to $HOME/pliant/pliant and:
To make sure you have Pliant+SDL installed, go into $HOME/pliant/pliant/SDL/testsprite then:
tar jxvf pliant+SDL.tar.bz2
Download examples.tar.bz2 for some more demos and examples.
testsprite.pli: 192 lines.
Bouncing sprites. 100's or more at once!
roto.pli: 92 lines.
Realtime image rotation and zooming, completely implemented in Pliant.
mode7_flight.pli: 123 lines.
Realtime 3D image zoom and rotation. Mode7 effect from Super Nintendo days. Use keys to fly around.
mode7_flight2.pli: 126 lines.
Another Mode7 effect, with two layers of clouds (neat hack). Use keys to fly around.