Interview to Frozen Bubble creator
Frozen Bubble is a reacreation of an ancient DOS game, played so many times by Guillaume Cottenceau that could use it in his favorite Linux box ... so inspired by it he took the challenge and the tools at hand. And guess what : one of these tools is Perl !!!
Before starting, just let me give a big thanks to Guillaume for the time spent to answer the questions in this interview.
Please describe yourself in a few lines
I'm 27 years old, french, and I live in Switzerland because I met a Swiss girl. I am computer science engineer working on java development for a living. I have worked for Mandrakesoft (wait, Mandriva ;p) during 4 years, and that's where I learnt Perl. I just love Linux and programming.
What was the motivation to build Frozen Bubble, and why Perl was chosen as the primary development language ?
My interest both for realtime graphics (I used to be part of a demogroup when I was younger) and for Perl made me discover Perl-SDL. I was amazed that someone ever consider writing a realtime game in Perl, and I tried to experiment with this mix. I then tried to duplicate a game I played under DOS, which was missing on Linux. Lucky for me, I knew both a very capable graphics artist and a very capable musician... the rest is history now :)
What strengths did you have found in Perl that helped you develop this game ?? And the weaknesses ??
Perl is
- very expressive (you can do in one line what you'd do in 10 lines of C)
- functional-style friendly (you can easily do ``map {} grep {} @a'')
- has implicit type converters and vivification which shorten code
But all these things lead to a very dense program which might be hard to read several months later.
If you would choose to start Frozen Bubble again from scratch, what things won't you repeat ? Some advice for the future designers !! :)
Actually, I originally didn't think I would support network gaming, and now that I'm trying to add it, I suffer from this, because current code is not modular enough.
Each language, technology or whatever has a place where it fits better : the Macs with arts and hacker people, Linux for the tech savyy and so on. So, what you think is the best place for Perl. I know that it is good as a language to join differents software pieces, that's why it's called the Internet Duct Tape
Basically, I think that the reputation of Perl is misleading. It's seen as a tool, something to write scripts, not programs. So it's often used for regexp-based string processing, or cgi stuff. It's a pity since it has very advanced features that many serious languages lack: objects with multiple inheritance and destructors, functions as first-class values, true closures (even Python doesn't have that), to name a few. So, in my opinion it's suited for most programs - the main problem I see with large programs is the lack of compile-time checks, but that's the case of all its competitors.
In which parts of Frozen Bobble code you will advice to the novice Perl coder to look at, in order to have a very pleasant learning experience ?
I'd have to say that it's not a good idea for a novice Perl coder to try to learn from the code. I've written it when I already had a good knowledge of the language, and the habit to produce some functional and dense code. It's very efficient (2000 lines only) but the drawback is that it's not easy to read for beginners.
What will you add to Frozen Bubble ??
People have been asking for network support for ages, and I have coded it in 2004. Unfortunately, there are still small synchronization bugs which are extremely hard to spot and fix. Usually, when I stop enjoying programming at home, I temporarily stop, because I think the fun is a crucial part. I'm currently working on other projects, and I wait for the motivation to come back and I will eventually finish this off. I also have the problem to force the graphics artist to write new necessary stuff, and he's had motivation problems too.
Do you plan to add compatibility with Perl-SDL 2.x ?
Yes, next release (but I can't say when it will be released) will use latest stable version of perl-sdl. It might even be imcompatible with perl-sdl 1.x.
Which are your favorites CPAN modules ?
I don't use CPAN much. I use Mandrake and there are usually all the modules I need packaged. And if they aren't, I package them.
Dou you plan to build another next big thing in Perl ??
Hum, not in the near future. I'm a programming guy and I like to explore different things. I am working on a medium thing in Ruby right now, and have been working on another medium thing in Java last year. Ideally, I'd like to work on another medium thing in OCaml.
And maybe one day I can try to work on my secret rule the world project. It's basically a mix of Starcraft, Civilization and SimCity. I have had some ideas but it stopped rather early. Maybe, one day...?
Any experience (funny or not so) that you had while making Frozen Bubble ??
I debugged the two-player mode with a colleague, and after a short while beating him over and over he thought the left player was favored. The real problem is that he has a lot more muscles than me, and he doesn't like losing too much...




