Subject: "Bloated" Computer Music

From: Shlomi Fish <[email-masked]>
Date: Wed, 3 Apr 2002 22:34:41 +0300 (IDT)

Traditionally it has been well-known that the various MOD files occupy
much less space than average mp3 files. However, lately as they started to
have 16-bit samples, as well as a lot of them, they started growing in
size considerably.

I remember going to modplug.com and seeing a lot of MOD files whose zip
archives were several megabytes long. And now, as I went to the Music
section of the "Frozen Bubble" game site, I noticed the following: its MOD
files and their Ogg Vorbis equivalent are the following sizes:

Intro Music: As XM MOD Format : 3.8 MB . As Ogg: 2.5 MB.
1P-Game Music: XM: 3.2 MB. Ogg: 3.2 MB
2P-Game Music: XM: 2.5 MB. Ogg: 2.6 MB.

In the game distribution they ship a version with MODs of lesser quality,
so the game's package would not be bloated.

Another interesting thing about Frozen Bubble is that it is partly written
in Perl. To quote its Readme:

<<<
This game began when I, as a packager for Mandrakesoft[1] and
amateur of the Perl language (which I discovered reading the
source code of Mandrake's graphical installer, DrakX[2]),
discovered that a crazy guy[3] had had the mysterious idea to
bind the functions of the C low-level graphical library SDL[4]
for the Perl language, `sdlpl'[5].

What an amazing idea, try to make Perl, an interpreted
'scripting' language, (e.g. something considered by most as
inherently slow), talk to SDL, a C library considered as the
leader gateway to fast multimedia under Linux (among others
O.S.), and hope to keep good performance?

Another time, Perl is here to surprise us by its (reasonably)
good performance (compared to what it actually computes), and
make us realize that what is time-consuming in most multimedia
programs is, bingo, multimedia operations such as blitting images
and so on.

Of course, if you notice, you will see graphical effects in the
game when a new level is displayed. That is CPU-intensive, and is
performed through some C code, compiled to be called by Perl. Yet
all the rest is done by Perl, and I can use higher-level lists
operations, efficient functional-style programming[6], and other
enjoyable things; I could program the whole thing in roughly 15
to 30 days of work; and the whole program is only 1500 lines! And
it never segfaults :-)...

I'd like to thank a lot the great guys who made the artistic part
of this game possible: Ayo the famous french pinguin designer[7],
Amaury the bubbles designer, and Matthias our fine guitarist, who
all managed to accept (and enjoy ;p) working under more strict
conditions that what they're used to (because this was part of a
bigger project, it logically restricted freedom in their art).
All http://linuxfr.org/ readers knew that Ayo had a real talent,
yet he showed he could do much more than banners and wallpapers.
Regarding Matthias, as I'm a fan since 1997 I was confident he
could write marvellous songs (I was not disappointed), and I
discovered he could give me high quality sound effects as well!
It's real great to see that together we could produce a game I'm
very proud of.

					gc,
					Sun Jan 27 22:17:10 2002

Footnotes:

[1] http://mandrakesoft.com/

[2] http://mandrakelinux.com/DrakX/

[3] David J. Goehrig

[4] http://libsdl.org/

[5] http://sdlpl.sf.net/

[6] Check how neighbours computation is performed, line 448

[7] http://73lab.com/

In any case - have fun!

Regards,

	Shlomi Fish

----------------------------------------------------------------------
Shlomi Fish        [email-masked]
Home Page:         http://t2.technion.ac.il/~shlomif/
Home E-mail:       [email-masked]

"Let's suppose you have a table with 2^n cups..."
"Wait a second - is n a natural number?"