I thought it might be fun and interesting to conduct a series of interviews with relevant members of the Bennu community so they could share with the rest of us their thoughts about the project and its future. Some of the answers are known to those of us that have been around longer, but I considered them to be of interest to those new to the community.
On part I of the series, Splinter suggested Sandman would be a good candidate for a new interview and therefore I got in touch with him. He agreed and some time later, here you are: Part II – Interview with Sandman.
Hi, I’m Freark van der Berg, more commonly known as Sandman amongst the DIV/Fenix/Bennu crowd, and I’m studying Computer Science at the University of Twente in The Netherlands. I live on the campus, near the city of Enschede, but my home and roots are still my hometown Leeuwarden.
Around the age of 15 I got to know DIV Games Studio and gave it a go. Starting with some tutorials, it became apparent I liked programming, so I also got DIV 2. This was a disappointment though, because the sound was awful for some reason. Moreover, after a year or so fiddling with DIV, I moved to Windows XP and so DIV didn’t work anymore. This made me move to Fenix and I do not regret that move. What Fenix lacked in stability, it made up with features and expandability.
This expandability enabled to make my own libraries for Fenix and so adding functionality I missed. The first library I did was adding a log() function I think, but I’m unsure. The mostly used library – and the only one actually advertised – is network.dll. Nowadays I think of it as a slow bugger, but back then it was a nice project to do. The goal of the library was to be easy to use and in that it succeeded splendidly if I may say so. If one considers the alternatives, it’s still a proper choice. Another library was joy.dll, adding joystick functionality. The Fenix joystick code was – and still is – very lousy. It doesn’t work correctly with multiple joystick and only supports two axis and four buttons.
Doing these libraries, I got to know the base code of Fenix better and better and I realised it was not the best code I’d ever see. Then Juan picked up the development and started fixing bugs. It wasn’t long after when I added him on MSN, telling him about bugs here and there. Then at some point he forked Fenix into Bennu, so I followed him. This is where I came more involved in the project, where we started discussing development and goals. That’s where I am today.
Yes, (better) joystick support and gp2x were my initiative. Just like Fenix, Bennu’s original joystick code was awful, so I merged joy.dll into Bennu and passed it to Juan. The idea behind the GP2X port was just because I can, with little else in mind. The latest module mod_crypt was actually a joint venture. Juan wanted to add some form of encryption to Bennu and so we discussed various options. This one was the most viable at that moment and so he made it.
Molapse is a 3D viewer for multidimensional databases, making use of MOLAP. Bennu is used for the logic of the application, handling input, GUI, etc. It’s the controller part of the MVC paradigm. The model part is mod_sql and the view part is mod_renderer.
The library mod_sql is actually more than just a module for SQL. It would have been better to call it mod_molap or something, because we implemented MOLAP operations using an SQL database, the SQLite library to be precise, because of its portability.
The library mod_renderer is the part that renders everything to screen, using OpenGL. It makes use of some nice shaders, to make sure everything is rendered properly and beautifully.
There are more libraries used; mod_events for example is a library I was working on to add events to Bennu. If you want to know more, you can do a checkout from the project page on Google Code. Mind that we are actually using a modified version of Bennu; the modifications are listed in a file in the modified Bennu directory.
I’ve been away for some weeks at the time of writing, but in a broad sense of at the moment, you could say I am still working on some projects.
Firstly, there’s the OpenGL library I’ve been busy with for some time now. I need to add new object sorting to it and it can actually be released I think. The goal of this project is to use OpenGL for the 2D rendering. Not only is this faster in many cases, it also provides the ability to use other things like shaders and models. I’m only interested in basic 2D drawing and basic 3D drawing. Consider the original Grand Theft Auto game and its GP2X spin-off Payback. A preview of it doing some scrolls can be found here.
I’m also looking into making my own script language. I’ve been tinkering with libJIT and so far it seems like a viable option. The language I have in mind is a cross between Bennu and C++. I like OOP and I can’t miss it when making games, especially the inheritance is important to me. Bennu plainly lacks in that departement, not even having union or enum for that matter.
The original creator, Squarepush, wanted to make this forum, because he didn’t quite like the original one. I can imagine why and I agree with him on that. On the original board, Spanish is just too overwhelming I think. I’m not sure if people agree with me on that, but I like an English-only board. The original board is mainly in Spanish with good reason: the main developer is Spanish and the majority of the users are Spanish.
Yes, that’s quite funny actually. I’m an administrator on every Bennu related site that comes to my mind at the moment, except for Divsite: Booleansoup, Fenixdocs, Fenixwiki, Bennuwiki, BennuGD.org, BennuGD.co.uk.
I would describe the health of the Bennu community as on the rise I think. Its user base is expanding little by little and with a Wiz port on the horizon, I think it will be a popular product. When the Pandora comes out, it will play an important role there too.
Definitely a form of OOP. I really like this programming paradigm for making readable, reusable code, especially for games. For low level stuff I still use C, because it has next to no overhead. I would also add a form of messaging to processes or objects. I was looking into making that in a library, but I would have to modify the interpreter for it to work.
I’m not actively following any projects actually, Bennu related. Though, I’m hoping for a release of SDL 1.3 sometime, but that’s probably too far away. And of course I’m following the Pandora project, because I bought one!
I’m unsure, I’ve been away for some time… perhaps
Hope you found it a nice reading, now back to coding!