Generic Game Template Discussion Thread

I’ve just published a template for making games over in the resources forum. It provides a way for changing between levels, setting resolution etc.

This thread is for any suggestions you have to improve it.
Download is from the resources thread.

I’ll have to check it out :slight_smile: The further documentation is in the download package I assume?

About linking: is there a solution to linking a character with rigging and animations from different file? I haven’t been able to make it work without proxy.

It definitely is. While I haven’t done it in any of my own games, if you look at Monsters Wall-E game (finished game forum) you can see that Wall-E does have animations, which are linked in from his file.

The key is to link bigger things than objects, like groups.

You can link actions (animations) from any other file. Actions are loosely coupled that you can use a different object which refers to the action (e.g. via ownership or actionActuator). When you link this object into your scene, you can use the action in Blender via ActionActuator or in-game via Python. Make sure the name is unique!

Example:

WalkAction.blend contains: empty “WalkActionHolder” which owns an ActionActuator (does not need to be connected to anything) which referes to action “MyCharacter.walk”.

Character.blend contains: an armature “MyCharacter”. When you link the object “WalkActionHolder” (via object link or group link) you can assign the action “MyCharacter.walk” to the armature (or any other object).

The only downside is: to create or modify the action (in file WalkAction.blend) you need an appropriate object (armature) that allows posing. Linked Object do not allow that. But you can link the Armature only and assign it to an new Armature Object. Then you can pose (but not edit). [I think this is worth a tutorial]

Work on v02 is coming along well. I’m switching to using BGUI for interface and am adding things like dynamic loading bars for the levels. I’m vaguely planning some other additions that I may ask you guys about at some stage.

http://www.blenderartists.org/forum/showthread.php?306293-Generic-Game-Template-v0-1&p=2460654&viewfull=1#post2460654

I copied Ace Dragon’s post from the other thread since I’m assuming discussion should remain here. Anyhow, I think the next step after building a unified framework is to achieve something built from this framework like the half-life engine. Yeah, I know that’s obvious and easier said than done, but what I mean is how HL inspired and provided for all these mods and made it easier for people to create games. Then on top of the mods, you had server-side mods such as amxmodx/metamod etc. (that’s where I started with games). For example, my favorite game Natural-Selection 2 started on the half-life engine as simply a mod; today, they’ve moved to their own engine (called Spark I think).

However, this is a good start so we are getting closer! I think we should use your template (if suitable) as the start of this unified BGE framework. We can throw in Rubbernuke’s suggestion also.

On a side note, I think I’m going to try to organize all these resources on my website because searching threads and getting the latest updates is just a PITA. I’ll setup a Wiki and forums, and maybe a database of some sort, or GitHub?. Another side note: With BGUI I would like to add my 3D widgets to it. I also have a font and input system to contribute.

I think we should use your template (if suitable) as the start of this unified BGE framework.

Unfortunately I think people that are capable of building a game engine of sorts within BGE will also create their own templates rather than taking the small base that someone else laid. However universal they might be :slight_smile:

I know I want to figure this stuff out for myself and my project but Sdfgeoff’s template will give me good ideas about asset management and loading etc. I know HL under the hood mechanics pretty good and have already implemented various features (such as NPC waypoints, buttons, triggers, etc) in my project in similar way. But someone else might want to do things differently.