Game Development Language (Bennu) for Pandora games


squarepush

Still Fresh
Joined
Oct 3, 2008
Messages
8
Location
LONDON, UK
Website
bennugd.co.uk
Hi guys,

Just to let you know we have completed the first GP2X binaries for Bennu, a game-development language. We hope this will enable people to write games for the Pandora very easily.

http://wiki.bennugd.org/index.php?title=Bennu_Wiki

If anyone remembers, or has heard of (!) DIV Games Studio - an old procedural language which made 2d game programming very easy - this became Fenix, and now a fork of Fenix, Bennu.

"Bennu uses SDL for many of the basic functionality. Because of this, Bennu is highly portable to other operating systems than Windows: Linux, BeOS, MacOS, even consoles and handhelds like Dreamcast and GP2x. This makes it much fun to code in Bennu: the game can be played on your console!"

The problem is, no one has written a suitable IDE for Bennu, so most of the developers recommend setting it up with ConTEXT. Here is the part of the wiki that describes the steps you take to do this.

http://wiki.bennugd.org/index.php?title=Tutorial:Setting_up_Bennu_with_ConTEXT

Quite soon there will be an english forum, and a small showcase at http://bennugd.co.uk - but hold on a week or so before visiting.

You are welcome to ask any questions about Bennu here. Thanks!
 
I've had a quick look at the Wiki.

What exactly is it that makes this language so suitable for game programming? The 'Hello World' tutorial shows that you need to import a module before you can even use a command to output text to the screen. This is not exactly intuitive for anybody who is attempting to learn a language for the first time.

Unfortunately I can't really assess the language much further as the "Simple Shoot-em-up" tutorial is blank.
 
Sure there are other tutorials/examples on the Wiki. After all it is a programmer's Wiki, and not full of tutorials - not yet anyway. We are still building the Wiki.

Unfortunately I can't really assess the language much further as the "Simple Shoot-em-up" tutorial is blank.

In fact, you would be better off reading the simpler examples first, as someone like you, is new to programming in Bennu.

People have to learn to walk before you can run, of course. Facing a new language as writing a few test programs first, then maybe a game? Once you learn to plot stuff and move things around the 2d environment, a lot becomes clear.

The 'Hello World' tutorial shows that you need to import a module before you can even use a command to output text to the screen.

This is also true. But importing the various modules is the only labourous part. And reading about a given module helps you think about what you are programming, for example - in "Hello World" mod_say thinks about printing text. Some modules have many commands/functions.

It is a modular language. There will be modules for GP2X we hope soon.

However it's true that the Shoot'em up Tutorial should be there, and there aren't a huge number of examples on the Wiki - yet.
 
In fact, you would be better off reading the simpler examples first, as someone like you, is new to programming in Bennu.

Sorry I didn't mean to mislead you in any way: I am not considering learning Bennu as a programming language as I can't see any tangible benefits. I had a look at some of the simpler examples on the Wiki and the syntax looks pretty standard. I was mildly interested in seeing the shoot-em-up tutorial as it would give an idea as to how the language deals with sprite manipulation, screen rendering, input methods etc. These are what I would imagine potential users of a games-oriented language would be interested, rather than string manipulation and math examples.
 
Sure, and I was writing for the benefit of anyone who is mildly interested.

But the Bennu Wiki is very complete, and has programming examples for most functions, and steadily building.

We will take the advice that a couple of actual Game tutorials are needed. Maybe I'll post again when we have this, and once bennugd.co.uk is up and running.

For now, just a few screens of what certain people have coded in Bennu/Fenix recently:

1-3.png


mayor.jpg


herotherealm.PNG


In theory these can be compiled for the Pandora/GP2X nowadays. It's just getting more interest in Bennu - which is the only truly modular and cross-platform games programming language.

Pleng: thanks for your replies.
 
Pleng said:
Sorry I didn't mean to mislead you in any way: I am not considering learning Bennu as a programming language as I can't see any tangible benefits. I had a look at some of the simpler examples on the Wiki and the syntax looks pretty standard.
Bennu is a fork from Fenix? I seem to recall Fenix was designed to scale well across multiple cores. It split the rendering workload up somehow. If someone had the skill to tackle it, the rendering code could probably be changed to run on co-processors and GPUs(with lots of shaders), which could in theory accelerate it quite a bit.

In short, Fenix is slow, but also simple, and if you toss more cores at it it goes faster.
 
Fenix was not designed for multiple cores at any time. It is a single-threaded application, so it runs on only one core. The script language (and VM) makes use of a concept similar to coroutines. Just like any interpreted language, it's indeed slower than C, but if you make good use of its possibilities and modules, it's not all that bad. ;) A lot of professional/commercial games make use of scripts to handle the game logic.

Bennu is a fork from Fenix 0.92a and has since been much improved. The VM is faster, the renderer is faster, the VM is split up from functionality modules (libraries), so Bennu is an actual language now (as opposed to Fenix, which is more of a game engine). This modularity allows other people to add modules (renderer, sound, pathfinding, whatever); for example I am making a module that implements the standard 2D sprite drawing not using software, but using OpenGL. Stuff like this makes Bennu quite a low-entry language for people just getting to know programming and would like to make games. But it's also suitable as a script language, next to an actual game engine, like Lua.

Its ancestor (DIV Games Studio) was very popular in its days, spawning a LOT of nice games, but sadly it died because it only ran on DOS and Win9X and the company owning it went off the radar (I think they focused more on their other products, like DarkBasic stuff).

Amongst other things, the plans for Bennu are the usual things like improving speed and fixing bugs, but also to improve the module system, making it easier to interchange low-level modules, which will aid its portability - Bennu runs on a lot of systems/OSes: Windows, Unix, BeOS, BSD, GP2X, Dreamcast and there was also a Wii port I believe. But like everything, it takes time, but be sure that Bennu will be ported to the Pandora. :)
 
Sandman said:
Fenix was not designed for multiple cores at any time. It is a single-threaded application, so it runs on only one core. The script language (and VM) makes use of a concept similar to coroutines. Just like any interpreted language, it's indeed slower than C, but if you make good use of its possibilities and modules, it's not all that bad. ;) A lot of professional/commercial games make use of scripts to handle the game logic.
Really? I swear I read an article/thread about it synchronizing rendering stuff, and getting the GP2X co-processor to do most of the work. Oh well. Must've misunderstood.
 
On the GP2X the second ARM processor is used for the handling of the graphics. This is in conjunction with the minimal library for the GP2X, some MMU hack and some other stuff. This has nothing to do with Fenix using multiple cores though, because this is only in the case of the GP2X and moreover, this is only for graphical subroutines. The Fenix VM is still being run on a single CPU. You are right in the fact that the second CPU is used as a GPU.

The speed increase gained from this great piece of optimization is phenomenal, making Fenix a very good choice for the GP2X and a lot of people still do this. Bennu on the other hand, though having a faster VM and generic software renderer, does not have this optimization yet. But somehow I've seen it keeping up with the optimized Fenix, so imagine the speed if those optimizations were done to the Bennu renderer. :)

But on a Pandora this will all be a thing of the past, of course. Bennu will run very sweetly on it.
 
Did Fenix continue devving after 0.92a when you forked? Or why didn't this just fold into the Fenix project or become the new Fenix?

(Only curious; I don't use Fenix. I made my own scripting language and core set of libs.)

jeff
 
SplinterGU took Fenix 0.84 and made vast improvements to it, resulting officially in Fenix 0.92a (unofficially in Fenix 0.93). However, due to some arguments with the community, things weren't going cool, so he decided to take matter into his own hands and fork Fenix, but I'm not sure of the details here (Bennu is the Egyptian Fenix). You may be wondering what my part is in all this then, well my part is that I've always made libraries/modules for Fenix/Bennu and now I'm also handling the GP2X port a bit. Furthermore I help SplinterGU here and there with the language, core and official modules.

Interesting you made a script language; where can I download it and see it in action? Is it JIT? Is it open source? Lots of questions, but I'm just interested. :)
 
Sure, a port to the Wiz is very feasible. The code compiles without complications for the GP2X, so I have no doubt it will run on the Wiz. :) However, optimizations specifically for the Wiz could be a different story. I don't have a Wiz so I can't perform this task, but if anyone else is interested, that would help the Wiz people using Fenix/Bennu a lot. Be advised: porting Bennu with optimizations to a new platform is considerably easier than porting Fenix, because of Bennu's modularity. So if one is planning to port Fenix to the Wiz, consider porting Bennu instead. Not just because of the modularity, but also because of the major improvements. Besides, Bennu is fully backwards compatible. :)

I realise it may appear that Bennu is something new to the world, but it's been around for quite some time now. A year? I dunno. Well anyway, there already is a community using Bennu, most of which were old Fenix people, but like anything with Fenix: they're mostly Spanish. :p Bennu itself on the other hand has all its Spanish messages replaced by English ones and a good effort is made to internationalize it. The wiki is an example of this.
 
Fenix has already been ported to the Wiz and I have tested compatibility with a lot of the GP2X Fenix games and they work very well indeed, they look much nicer on the Wiz's screen too.

I am very interested in Bennu and when I get the chance I will try something on the Wiz soon.
 
Aye, I know it's been ported, but is it optimized? I remember the thread on gp32x.de, but I don't remember if it was a recompile or a full-blown port with optimizations allover.

Wikipedia says:
# CPU: 533MHz ARM9 3D Accelerator
# 3D Acceleration and TV Out
So well, I don't know if there's a separate GPU on the Wiz then, but if there is, there's some room for Wiz-specific optimization. That could prove very interesting, indeed. And if there isn't, there's still room for optimizations of course.
 
Last edited by a moderator:
Agreed, optimization could be good but currently everything runs better on the Wiz than it did on the GP2X in Fenix. Still, Bennu sounds very interesting :)
 
Back
Top