741984228bd1ad78fda0b89e80344831d6ad65a7
[gentoo.git] / dev-games / clanlib / metadata.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
3 <pkgmetadata>
4 <herd>games</herd>
5 <longdescription>
6 Welcome to ClanLib, a multi-platform game development library.
7
8 ClanLib is a medium level development kit. At its lowest level, it provides a 
9 platform independent (as much as that is possible in C++) way of dealing with 
10 display, sound, input, networking, files, threadding and such.
11
12 On top of that, ClanLib builds a generic game development framework, giving you 
13 easy handling of resources, network object replication, graphical user 
14 interfaces (GUI) with theme support, game scripting and more.
15
16 The goal of ClanLib is to allow the game developer to focus on stuff that 
17 matters, avoiding all those nasty (and boring) lowlevel trivials like setting up 
18 a directdraw window, sound mixing, reading image files, etc. All those things 
19 are simplified into object oriented classes and function calls, making it a joy 
20 to write your game.
21
22 ClanLib uses a resource system to keep track of images, fonts, samples and 
23 music. It supports Targa, PCX, JPEG, PNG and BMP for images. Wave files for 
24 sample. Ogg Vorbis (open sound format that has same sound quality as mp3) and 
25 MikMod for music. By using a resource system, you cleanly seperate the physical 
26 data formats from your code, and makes it easy to make themes and other plugins 
27 for your game. The resource system is written in a manner that allows you to add 
28 your own custom resources.
29
30 All classes in clanlib focus on making simple interfaces that are customizeable 
31 and expandable. This keeps your game code clean and simple; but still allows you 
32 to do advanced stuff. As an example, look at some sound code:
33 CL_SoundBuffer my_sample("Weapon/Minigun/sound", resources);
34 my_sample.play();
35
36 In this example, we play a simple sound effect, and afterwards forget all about 
37 it. Nice and simple. But if we want to adjust the frequency during its playback 
38 (eg. for a dobbler effect), it could look like this:
39 CL_SoundBuffer_Session playback = my_sample.play();
40 playback.set_frequency(1.2f); // increase frequency by 20%
41
42 We only need to keep the session handle if we are going to use it. Keep things 
43 simple when they are simple, and make them complex when they are complex. :)
44
45 The object oriented nature of ClanLib allows you to operate both at high and low 
46 levels, minimizing redundant code and still allows you to do stuff that isnt 
47 supported by clanlib's high level APIs.
48
49 ClanLib currently support Windows 98, Windows 2000, Windows XP and Linux. The 
50 following display targets are supported under linux: X11 and OpenGL. Some parts 
51 of ClanLib still isnt entirely endian clean, so it will currently only work 
52 without problems on the x86 architecture. Work is underway for a MacOS port. 
53 Current compilers supported is VC++ 6.0, VC++ 7.0, GCC, Borland and MingW.
54 </longdescription>
55 </pkgmetadata>