Some sugestions for the game engine

Game Engine, Players & Web Plug-in, Virtual Reality, support for other engines

Moderators: jesterKing, stiv

Post Reply
elander
Posts: 0
Joined: Sun Dec 19, 2004 4:30 pm

Some sugestions for the game engine

Post by elander » Mon Dec 25, 2006 2:12 am

I'm testing the Blender game engine. It's a useful tool for prototyping game ideas before puting them in a real game engine but it still lack some things that otherwise need a lot of python hacking to implement.

I have some sugestions about how to improve the game engine. I haven't seen a sticky thread with game engine sugestions for a next release so i will make a thread just for this.

1. Scenes as game objects.

It would be useful to be able to assign controlers to scenes just like objects. Scenes would have sensors to detect when a scene is loaded / unloaded to fine control content loading from disk or sensors to signal when a scene is activated or deactivated to set it up.

2. Cells as game objects.

Sandbox games often divide the game in regions of space called cells and manage their loading and setup separately. The idea is to associate a scene a region of space and have it render side by side with other scenes. Think of games like Morrowind for example which call these cells and load them from disk all the time when the player crosses cells boundaries.

3. Exposing properties.

This would work in a simple way. The user clicks on a list and exposes a property. Exposed properties cannot be deleted only unexposed and refer to properties native to the object. Seting a value to an exposed property would imitialy trigger an action. For example setting the properties _visible, _collides and _gravity to false would turn the object into a ghost. This would also be great for debuging.

Some examples:

bool _visible - if set to true the object becomes visible, false invisible
bool _gravity - if set to true the object is afected by gravity, otherwise not
bool _collides - if set to true the object is used for collision, otherwise not
float _active - object will receive sensor input if true
etc

4. Allowing scripted controllers that interface with other languages.

Python is slow, and speed in games is crytical, so this would be very welcome.

5. Inheritance.

Some game objects would be abstract game objects. That is no transformation or properties of any kind. Instead each game object would now have an 'inherits' field and all properties, sensors, controlers and actuators would be automaticaly added to go that inherits them. This would be a tree relation.

6. Game logic gui as a circuit of black-bloxes.

Similar to the way it's possible to edit the render pipeline. With an option to define our own back-boxes and open-close them for editing.

7. Loading and saving ge properties to disk.

Each property would have a flag called 'serializable' and actuators to save and load. When saving a game all propeties flaged like this would be saved to a game a new game file or an old one would be overwriten.

8. More options for physics.

It would be very interesting to be able to disable gravity for certain objects but still allow them to work with physics; being able to associate physics properties to materials; using physics to break and deform things in the game engine.

Not related to the game engine but consider using a physics simulation expanded with the features above to model a scene.

Heres an example, we build a nice shiny house with cute wall of stone and assign some physics propeties to its materials. Then we start a simulation and burn parts of the wall, crush parts of it, spread dust on some parts and finnaly stop the simulation and apply the results to the house textures and geomtry.

erwin
Posts: 5
Joined: Mon Oct 21, 2002 9:10 pm

Post by erwin » Mon Dec 25, 2006 8:40 pm

Thanks for the feedback.

We are working on many improvements, including making the game engine pipeline more open to external projects.

This includes

- exposing most data in the COLLADA import/export,
- Ogre3d graphics
- improving GUI for physics, including constraints, a preview for 2.43 is here:
http://www.continuousphysics.com/Bullet ... .php?t=752

Please use the Elysiun forums too.
Erwin

elander
Posts: 0
Joined: Sun Dec 19, 2004 4:30 pm

Post by elander » Tue Dec 26, 2006 6:56 pm

That is great. I'm thinking about using Blender for my indie remake projects instead of using Ogre directly and program in C++. Thanks for the feedback also.

I found out that some of the features i mentioned above are already implemented but are not so obvious to find. Just to correct to my first post it's possible to disable gravity in the myst and stars panel in the material/world button and there are already some physics parameters associated to materials by using the DYN button as if it was a panel tab.

Post Reply