BDX beta is out, and ready to use.

As some of you already know, BDX is a new cross-platform game engine for Blender, built on top of libGDX. I’ve been working on it (on and off) for some time now, along with a few other people, and at this point, I think the engine is ready to be used by the wider community, so I’m releasing the beta.

Spread the word!

https://github.com/GoranM/bdx/wiki/images/bdx-logo.png

Relevant documentation can be found on the wiki. There’s quite a bit there to get you started, including a complete video tutorial series:

Technically, BDX is an engine of humble capabilities, but it can already be used to develop very interesting games, like this one:

If your focus is on small indie games, BDX has a number of strong points:

  • The overall programming model is very simple, along with the API.
  • Cross-platform deployment: As libGDX, it supports Windows, Linux, Mac OS X, HTML5, Android and iOS.
  • Completely free: No upfront cost, no royalties - Your success is yours, completely.
  • Very low system requirements: If your machine can run Blender, it can be used to develop BDX games.
  • Permissive open source license (Apache 2), so you don’t have to worry about potential GPL issues.

I hope some of you will find that compelling enough to give it a try.

For those who run into problems: You can find support by posting in the bdx subreddit - As long as there are users asking questions, I’ll be there to provide the answers (if I can).

PS:

I would like to thank all the early alpha testers, and other contributors who helped me push this to beta - Special thanks to SolarLune, who helped the most (extended Windows testing, contributions to code, documentation, etc).

Seems like a great add-on!
So if I understand correctly I must be using java for coding? And what about Blender features - using IK bones, soft body,particles and alike…are they available in BDX? Can I access a bone transform and rotate it with java? What about materials,GLSL(shadows…etc) and 2d filters…can I use them?
This project is a big step in the right direction! If you continue to support and develop it, it might become the missing link between BlenderGE and mobile devices. Wish you good luck!

P.S.I watched the tutorials…great work!

Sharing this on G+ and Indie game chat / facebook

Yes, Java! None of those features are present yet; animation apart from simple object animation hasn’t been implemented just yet, and neither has shaders or filters. But since BDX runs LibGDX, it shouldn’t be too difficult, in my estimation, to make advancements in some of those areas quickly (like shaders or lighting). Simple object animation is present, so I’d think that adding in armature based animation wouldn’t be too difficult (armature animation is just a collection of object animations, it seems). Goran would know more about it, though.

And thanks for the mention!

Oh, and using another language like Jython might be possible, but it seems that you’d lose the ability to target HTML5. I might look into it sometime, though.

Cool! I remember being excited when I saw you put out a mobile game on the android market. Looking forward to trying it out now that you buffed out some scratches.

A question: Assuming I have the correct SDK for Android Development, would it be possible to have access to phone utilities (like the cameras)?

Super!

As SolarLune said, we don’t have support for those at the moment - We’re likely to have some of them in the future, but to be honest, my focus is more on the logic programming side of things, and less on fancy graphics/animation features.

The core motivation for BDX was the poor programming model in the BGE, and the fact that BGE couldn’t export to mobile and HTML5; I wanted to create an engine that wouldn’t have those problems, or where those problems could actually be solved in a relatively straightforward way - I didn’t (and still don’t) really care that much about the other stuff.

Actually, it’s quite a bit more involved than just a “collection of object animations”. Luckily, libgdx has systems that already implement skeletal animation, and even hardware skinning (there’s code in their main shader that deals with bones).

The problem is: I don’t really know how those systems work, and I don’t know how to feed the relevant data in a manual way - All examples I was able to find just use their FBX loader, so I don’t know … It’s something I would have to research further, but it should be possible.

Yeah, like Raco noted, libgdx already has some support for this, but even if it didn’t, you have access to all android features from BDX - It’s all just Java, so you should be able to call SDK methods directly.

is there a way to have P start a exporting script, that exports any skeletal stuff to Fbx, then LibGdx loader loads them, then it engages BDX?

That would be possible, but also a bit convoluted; you would additionally need their fbx-conv utility to convert to libgdx native G3D format.

It would be cleaner to fit animation data into the existing BDX export pipeline - It should be possible to do that.

Hey,

I don’t know if I told you this yet or not,

Thank you, this is nice work.

I actually did a pretty indepth look/getting started tutorial of BDX over on GameFromScratch. Its a very cool project, hope you keep working on it. By the way, armature support desperately needed, plus it crashes if you export while in edit mode.

Again, great work.

Thanks for promoting our work!

I commented on youtube.

I’m sorry. I am linux user. I installed DX, all appeared to work, byt when I press P it shows this text:
BDX BUILD FAILED

And in the console?

EDIT: To have console output from Blender on Linux, start Blender from a console.

In console version I can run it, but without console I can’t… Strange!

I’m gonna make a really wild guess that it requires that you sudo to be able to run scripts correctly, and you have some sort of auto-sudo-ing terminal application or something. Maybe. Just a guess.

Anyway, I’ve got convex hull collision types working (I think? Just a test or two seems to have it working; nothing intensive). Submitted as a PR on GitHub.

Yo, we got convex hull collision and compound physics committed! I’d attach a GIF of it in action, but you guys already know what that looks like!

2D filters are also working and committed, including with multiple passes.

Great! Can I get a general idea about how flexible the rendering pipeline is? Like accessing VBOs and material ids buffer for instance?

@SolarLune

Maybe we shouldn’t advertise features until they’re in an actual release.

There is no real “rendering pipeline” - It’s just 2D filters, applied to libgdx render output.

I don’t know myself about those specifics (I’m sure I’m misunderstanding you when you mention VBOs or a material id buffer); I’m sure Goran can expound on it. The filter system is just for a framebuffer applied to the screen internally. No material shader system has been committed as of yet. I’d imagine the Filter and Shader systems might be able to be pooled once that happens, since they share some resources.

EDIT: Ah, he did explain.

@Goran - Yeah, I kinda agree, but at the same time, I want to tell people as it gets improvements, and BDX is rather easy to build, so I don’t think it’d be a big issue. I dunno; I feel like if X engine got a major new feature committed to Trunk, posts about that new feature wouldn’t be out of line. What makes you decide to create a new release?