BGE and Professional Quality Indie Games

Hey. I was just wondering if anyone had played Cave Story, La Mulana, or the Underside - they are all great, professional, Metroid-like platforming adventure games (though La Mulana’s quite a bit tougher than the other two). I personally liked all of the games, but I was thinking that if the makers of these and other indie games used the BGE, they would have been better games (or at least, would have been easier to make - wouldn’t have needed to compile the game, could have had real 3D, physics, etc).

I see a lot of games that seem fun, but I know that were complex and difficult to make, and they used an engine that’s harder to use or more complex than the BGE. An example of this would be Spelunky - that was a great game. If it was made using the BGE, it could have been 3D, or would have been able to have real-time physics easily. What are your thoughts on this?

EDIT: As you can see of the games I quoted above, advanced graphics aren’t what makes a game engine professional or not. I guess the real question is, “Do you think the BGE is a professional-quality engine? If not, what needs to change?”

Are you referring to adventures in particular or to games in general?

BGE is missing alot of basic features which is a standard in a professional 3d engines. Like dynamic loading of objects(the current state is very unstable and very early version),dynamic loading/unloading of textures,supporting multiple animated objects(like making 245650 moving blades of grass without decreasing the game speed to unplayable levels, or supporting 100-200 animated armatures for the units in a rts game), ragdoll physics, usable soundsystem…etc.

@C++ - I was referring to games in general.
@Haidme - Yes, while the BGE is missing a lot of features, I wouldn’t say that those features are really standard. The sound system is usable (Audaspace expands it more-so), and not every engine (2D or 3D) has ragdoll physics (XNA (just a game development framework), Pygame, Panda3D, etc.).

EDIT: Also, as for the ‘animating thousands of grass particles’ problem, could you possibly put all of the grass vertices into a single mesh and control each particle using a single set of bones (just a few)? That would work.

Is it really that the BGE is that unoptimized / feature-less, or is it that the game developers optimize their games to be able to perform those kinds of things efficiently and fake those features? We as players see only what the developers want us to - we don’t see how the game is ‘held together’, so to speak.

The point I was making is that very complex games have been made with far less than the BGE offers.

You raise an interesting point. And you’re right, more professional games have been made with less. But I think they’re made with more powerful languages (there aren’t many AAA games done with python). Don’t get me wrong, I love python, and perfer working in python over any other language. But as soon as a script starts getting long and complex python gets slow. Being able to use C/C++ in the BGE easily (ie, no messing around with ctypes - which has a high overhead) would make programming those fast, professional, complex games a lot more possible without having to constantly worry about logic usage. And python could still handle simpler scripting tasks. There are loads of things I want the game I’m working on to do but the logics already high and lately I spend less time working on cool new features and more time thinking of creative ways to optimise the python that’s already written. (Trying to get a good number of AI’s running at once is tricky in the BGE, many other game engines can handle large numbers of enemies/npc’s etc better. And before anyone says: ‘do you really need them all running at once?’ Yes, the games difficulty and concept is tied into having plenty of bad guys coming at you!)

(although one of things I love the most about scripting in the BGE is the constant challenge of squeezing the most out of python, I think it really forces you to think about your code and write performance focused code, plus you can really get creative with how you optimise).

I think most of what Haidme mentioned are ‘standard’. Perhaps not standard in the sense that every engine includes them, but standard in the sense that those that play the games expect them as part of a modern game. So while ragdoll is perhaps not a standard game engine feature, it’s expected in modern games and is hard to implement in the BGE. Or dynamic sound - such as reverb effects, or built-in fast parallax mapping, or soft-shadows (even the current dynamic shadows are slow and not at the level of other platforms). Blender also lacks support for consoles that some of the popular engines have.

I imagine many games fake things and I think amongst many AAA studios heavy modification/optimisation of a game engine source is becoming common place in order to remain cutting edge and do something different to other games using the same engine. The BGE also lacks threading like more powerful engines, so is not as optimised. I doubt there are many getting their hands dirty in the BGE source code to get the most out of the games they’re making.

Finally, Blender has always had more focus on the animation/rendering side of things than the game engine, so I’d suggest that people don’t consider it a serious game development platform compared to others. Especially when the largest body of users are hobbist rather than serious indie game development teams. Furthermore, I can’t think of a single fully featured, complete, sucessful, modern-looking game made with the BGE that would make developers see the BGE as a professional platform (there probably are some games on that level but I’m not aware of then).

Anyway, those are my thoughts. And despite all the things the BGE lacks I still love working with it. There’s something very satisfying about taking an engine like the BGE and getting something good from it compared to using, say, the Unreal engine where great graphics, physics and performance are more or less expected.

Sorry for the long ramble (night shift with little else to do). Good topic. :smiley:

Do all of them need to be animated at once, can’t you use python to ‘sector’ the grassy areas so you could only activate the animation of objects in that certain area and switch the grass blades in the previous sector to an inactive state (which would disable their logic completely)? I believe Funkywyrm also has created a ragdoll kit addon for the BGE (which you can find in the python forum)

I think the key word you used is ‘professional’, professional level AAA commercial game engines have entire teams of developers working on it full time, I can’t be surprised if our own small team of BGE developers (working on their spare time) would find it rather difficult to have the BGE achieve with those engines and thus would not be a primary goal for now.

On my own account, I’m just happy there is a usable Open Source GE that comes built in to the modeling and texturing program, you really can’t get a more rapid pipeline than having a GE inside the 3D modeling program (which I’d rather have than even the Unity pipeline for 2.49)

I thought of a better idea for that grass problem (or any problem handling thousands of objects that need to execute logic at all times, which I thought of weeks ago, but didn’t think of it), two perimeter objects around the main character set as sensor type objects, each with a collision sensor and makes use of a single python script revolving around the use of the hitObjectList property, if an object crosses the inner perimeter the script uses hitObjectList to get the object and then set it to an active state and if the object hits the outer one the script does the same thing to set it to an inactive state.

The BGE’s way of handling animation and logic may not be the fastest out there, but you can use smart programming techniques to allow the logic you need at playable speeds (the method I outlined could be used as a sort of logic culling system for instance)

That would work. There was a ‘grass in the BGE’ video around - here it is. It’s not thousands of blades, but it’s a lot better than most games, and is actually more than really necessary to convey the effect wanted.

That’s what I like about the BGE as well - the capability to optimize makes it a powerful engine, while the ease of use makes it a fun engine - most game engines are either one (powerful), or the other (fun), but not usually both.

EDIT: @battery - Oh, and what do you mean by ‘consoles’? Like XBOX 360 / PS3 video game consoles, or something else? While the BGE doesn’t support console release now, it’s a whole lot closer than other games that have been / are being ported with cross-platform compatibility (Spelunky’s being ported to the XBOX 360 Marketplace, and Alien Hominid was originally a Flash game).

@SolarLune: I read your blog post on that a a few weeks back (I occassionally check your blog for some new insights). When I first started programming the AI a couple of months back I constructed an over-arching ‘brain’ that cycles through all the enemies and decides what they should be doing and handling a few global AI tasks. Then using states on each individual enemy to deal with the nitty-gritty of each behaviour. I’ve been thinking about doing what you suggested lately, especially since the structure’s already there to do it, and place a bit more of the logic load on the brain.

Yeah, PS3/2, Xbox,PSP, DS, Iphone etc. Basically just being able to reach more platforms than just PC, mac and *nix systems. The platform a game is develiered on makes a huge difference to how a game is played and how professional it looks. For example, low-poly models still look great on a PSP screen but wouldn’t as good on a massive PC screen. I think people looking to make professional games and willing to put the time and effort to do so will want to reach as many gamers as possible.

But even with careful logic optimisation you’ve still got to contend with limitations on the amount of armatures in a scene and graphics. I think to make a professional quality game in the BGE a huge amount of work is required because you’ve got to have such tight control and optimisation over every aspect of it.

@AD: I already use something similar, the aforementioned ‘brain’ already grades the enemies available interactions according to distance from the player. So those closest will have a full set of logic and actions available to them, while the furthest away are turned off, and a reduced set of interactions to those in the mid-range. It also goes one step further to make sure that if the player is surrounded by lots of close by enemies that only a few are running all the logic, otherwise the logic culling fails when surrounded. So, yeah, culling logic really helps the frame rate.

You both have convinced me further that I need to work on getting the AI brain to pull more weight rather than each individual enemies logic. Cheers, I wasn’t expecting some new ways forward with my game from this thread!

The BGE is all about clever optimisation. And agreed, it does have a workflow that is better than the majority of game engines out there. Also, SolarLune’s right in that the BGE has a great balance between power and fun. All the high powered engines are just too serious to be enjoyable and a more casual basis. Not to mention the challenge optimisation brings that just adds to the fun!

This looks like it could be an interesting thread. I’ll keep an eye on it, but I would recommend that people focus more on “indie” developers than “professional.”

Also, on consoles:
I highly doubt you’ll ever see Blender on a closed console due to licensing restrictions.

I think cave story was a one man project and was pretty cool. It had one design flaw that I hate: Having to go through long cut-scenes after failing a boss fight

I, too, think that people should focus on indie games - I was just saying professional quality, as I would consider even indie games like Spelunky or Hydra Castle Laybrinth (pretty cool game, by the way) as professional-quality - that they could be sold, and that people would buy them, for the right price.

Also, I thought that Blender was originally used to make PS1 games? Maybe not, or perhaps this was before the licensing changed (it would have to be pre 2.4, I’d think). It’s too bad that BGE games can’t be ported, but perhaps that will change.

EDIT: @battery - Glad to see that people are reading my blog posts and are taking good stuff away.

EDIT 2: @alaseridan - Yeah, Cave Story was a one-man project, I think. It was a lot of fun, and is a good example of pure quality and creativity, not an example of ‘Get this game engine because it powers this absurdly advanced game’.

Is there also a difference in the ease in which a game executable can be created and distributed compared to, say, Unity? I’ve used Unity quite a bit so far (I’m new to Blender as a game engine - hi!) and creating the .exe file is just a couple of clicks away. Does this feature exist in BGE?

From my meagre experiments with BGE I would have said that it already fits snuggly in the beginner to 3D games niche, but it would be really nice if the barrier to distribution issue was solved so that a couple of really nice asset rich 3D indie games got out there.

You have to first enable the “Save as Runtme” addon, which can be done in the user preferences. After that, just go to Export -> Save as Runtime. However, you might have to copy some files yourself still. File like extra blends, audio, textures etc. The script handles creating an exe and copying the files. I would like to add extra publishing options to this script, but it’s rather low on my priority list.

The reason many indie developers overlook the bge may be because they don’t know it exists. If you check the google trends for the blender game engine, you’ll notice that people’s interest in it spiked during apricot and has been on a steady decline ever since and it appears that the news reference volume has flat lined a little. (the statistics are normalised).

There are some games that are a work in progress that may be able to re-ignite some interest in the bge when they are finished. Maxima et le treize (might have moved away from blender unfortunately), Krum, Elpis, Cassandra and Project Panthera to name a few.

I’ve also taken over the operation of blender-games.com, which was originally created as place to gather games made in blender so they don’t sink down in between the pages of forums to never be seen again. Hopefully the site can generate some interest in the bge.

Somehow I managed to post in the wrong thread. Sorry

I think to make a professional quality game in the BGE a huge amount of work is required because you’ve got to have such tight control and optimisation over every aspect of it.

A professional quality, large game takes a lot of work to pull off in any engine out there, look at the big game publishers, how they use some of the best engines on the market and yet an entire paid team would take a year or more to complete the project.

Having an AAA-level commercial engine like the UDK, ID Tech 5, and Unigine will not mean you can get a large professional game done quickly and easily, it may be more feasible to make such a game in those engines than the BGE, but it doesn’t guarantee that your next game will be a professional-grade game like those from the large publishers even though the engine can help you with the tools you need to get there.

@Ace - Exactly. This is what I feel is the problem - a lot of people see engines like Crytek or the Unreal Engine and say, “Those are the game engines to use!” Really, that’s not true. Just getting an engine like that won’t really ensure that you get a powerful game up and running - there’s more to game development than that. Some of the best games out there are simple, 2D, fun games - games that could have been made with Unreal or Crytek (maybe, I don’t know how they can handle sprites), or not.

You are correct, though as of 2011, the trend in the searches have increased, if only just a little - it’s also been around for quite awhile. I think you’re right that a site or just general games that have been made in Blender would really help out the BGE getting coverage. Perhaps we as game designers should start pumping out really quick, simple, fun games like Geometry Wars just to get the BGE out there, and then take on larger projects once it’s really known.

EDIT: I mentioned Geometry Wars because it’s a simple 2D shooter game, not because it took a short time to develop.

Yes you are right! The Engine is not the real problem…Making a game takes alot of time and work(also a team)As a game Dev I can say blender is good for making games,I have 60 fps on my actual game,but the real problems are in the BGE graphics.
Today is a standard to have soft/realtime shadows in a game,only a few games are using baked light maps.
I think there are Teams that’s want to Develop a game using free GE,but they just leave it because of slow graphics and optimization.
Personally I think it IS POSSIBLE to make a HQ indie game using BGE,but there is alot of work to do,and lots of things to fake.