[Bf-committers] BGE Node-based logic GSoC proposal

jorge s segroj at gmail.com
Sun Mar 25 07:13:53 CEST 2007


Hello,

Here's my proposal for review. I need feedback from developers, specially
from Robert Holcomb (node refactor), Erwin Columans (bullet and BGE
mantainer) and Charlie C. (Echo plugin).

I'm very very sorry for submiting this so late, as we have only one day and
half to discuss this.


ABSTRACT
This proposal defines a logic system for the Blender game engine (BGE) based
on interconnected nodes which will be (mostly) Python scripts.

This system is intended to address several limitations in the current engine
logic brick system. With logic bricks it's very easy to do some things such
moving an object when a key is pressed, but it's rather difficult and
tedious to do things like rotating the camera proportionally to mouse
movement, requiring several lines of Python. Such Python scripts are
diffcult to reuse and depends of connections and sensor/actuator names.

Python nodes can have any number of inputs and outputs of several types, are
easily defined as a Python class, add a great deal of flexibility and are
easy to reuse and extend. It allows to easily create more complex systems
such an action dependency structure. Each node has a function whose
arguments are the input values and return value is a tuple with the outputs.
The way they are executed is in an automatically generated Python script
with all the node functions in the appropiate order.

This project has the following parts:
 * Importing Python nodes into Blender nodes UI (this may need coordination
with the current node UI refactor).
 * Exporting node connections into a Python script.
 * Doing needed Python bindings for using the game engine sensors and
actuators.
 * Writing basic nodes for use with those bindings.
 * Load/save funcionality and legacy importing.
And finally (altough this may not enter the GSoC timespan):
 * Improving Blender nodes UI: selective node hiding and automatic
organization.

I've done a Python script that showcases the node import and export
features:

http://pixelements.es/jorge/gsoc/nodetest.tar.gz

(Read the nodegui.py file)
(Note that this scipt don't implement some ideas as the 'Enable' input,
explained in the proposal)

Here's the entire, very detailed proposal. Please, check it out!
http://pixelements.es/jorge/gsoc/bge_nodes_proposal.txt

The final version will be shorter as GSoC only allows 7500 chars.


Sincerely,

Jorge Segovia

segroj at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://projects.blender.org/pipermail/bf-committers/attachments/20070325/e03d1d8c/attachment.html


More information about the Bf-committers mailing list