Hello, im a computer science student, and been programming for 4 years now. I started with blender Game engine for games development, and eventually went to unity and UDK, but still, i think the BGE is awesome, and i want to contribute. My math skills are rubbish so no mesh tools or graphics, but i can do game logic fine.
I want to start creating a node system for logic, separated from the logic bricks, something like texture nodes, wich you can place the same node tree on different objects or make each object have its own node tree. Ive been reading the node system in blender, and i think ive got how to create a new panel, but i still have many questions. This isnt a very serious project, mostly a project for fun and learning, if i get to a barely-working prototype i may apply for a GSOC ( i want to do a GSOC this year or next, anyway) so dont get any hopes.
My questions are:
1- How can i change the node system so its completely different, but using the same UI and controls
in detail, the nodes will have an in-out socket, wich will be a signal beetween nodes. and also input output socket variables like you already have. Also i want to handle the node updating and logic myself. for example, i would make “Event” node wich will be called like a function, like “update”, “on collision” and similar. just like the sensor in logic bricks. and then, it fires the “out” socket wich is connected to other node/s and then calls their functions. Im asking if this can be done without changing much code from the general node system.
2- Should i start with Pynodes or make it complete in c/c++
ive seen some progress with pynodes, and im asking if those pynodes, or starting with its code, would be enough, im proficient both with c++ and python.
3- would be wise/easy to mix c++ classes and code with the Node and NodeType and similar classes in the blender node editor source?
Ive allways worked with c++, and reading blender’s source ive seen it has both. Im intriged by the system blender uses in the nodes to simulate classes but without them, using the NodeType enum and TreeType enum with function pointers.
should i be able to create a c++ class inheriting from that NodeType and Node and would it work nicely?
4- Where do i set the UI part of the nodes and the tab for the node editor
looking at #1, i would change a bit the UI for the nodes, can you give me some general advice on how or where to look an example?
5- How do i add a variable to a logic brick
the logic node tree will be launched from a logic brick, an actuator block wich creates a tree for the node based on a template ( like materials do)
these are the questions i have, If people help me with this, i think i could arrive to something, and maiby make a GSOC of it. If there are some other node projects for the BGE that i can see, can you point me to them?