[Bf-committers] Node system for game logic
Hi everyone, I would like to present to you the hive system, a working node system for game logic (and other things). It implements the complete list of goals of Benoit's Nodal Logic proposal: http://wiki.blender.org/index.php/Dev:Source/GameEngine/NodalLogic Some of the design decisions are different, but the hive system contains all of his features. The source code is available under GPL: http://launchpad.net/hivesystem It also has a GUI for editing hivemaps (node graphs). It is basic and quirky but it works. This makes it possible for non-programmers to create and modify game logic. I have made a screencast that demonstrates this for a simple 3D scene: http://launchpad.net/hivesystem/trunk/0.7/+download/screencast.swf New nodes and hives can easily be built in Python. However, the coding style is different from normal Python scripts. I have written a long manual with many examples. If anything is unclear, please tell me. The main limitation is that there are no bindings yet to the BGE, only to Panda3D. It still needs to be ported to Python3.2, and I am not very familiar with the BGE source code. Also, a lot of important nodes (sound, physics, mouse picking, networking) are still missing. I am looking forward to join forces with Benoit and Sven, and with anyone else who is interested. Any feedback is welcome! cheers Sjoerd ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
[Bf-committers] Node system for game logic
Hi Sjoerd >A compilation of a covered work with other separate and independent >works it applies only if it is separate products are put together - such that engine uses only data, produced by you hive-system and not any code. if it is 'linked' - such that there is a code connection (python or not) - GPL does not allow to run together. So exactly "Adding GameKit bindings" is prohibited by GPL for non GPL code if only these binding are not using network interface or pipes ( but still even in this case GPL might apply - if it can be proved that the game cannot run without GPL component - so that it cannot be replaced with something else). LGPL, though, might be OK in this case. Regards Sergey ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
[Bf-committers] Node system for game logic
Hi Sjoerd, so if you want games based on hive system to be GPL - then there is no problem with your GPL position. It is just - there are far too fewer games with GPL license ( maybe three orders of magnitude), than all games, and those successful GPL games do live OK without hive. so, unlike Blender - which could be used to create models, your system will have quite narrow use. And of cause, it is your choice. But then, even with Blender gamedev ecosystem - you could not expect much interest. GPL games are developed for fun and not because there is a good system to use, commercial or quasi commercial developers ( free or demo games etc ) - do search for efficient solutions. as for LGPL/BSD discussion then even GameKit depens on LGPL Orgre3D and other LGPL libs, so any additional LGPL lib will not change much ( even if GameKit is licensed BSD - it already has LGPL libs being included ) Regards Sergey ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
[Bf-committers] Node system for game logic
Hi Erwin >Ogre uses the MIT license. unfortunately someone misinformed you http://www.ogre3d.org/licensing Regards Sergey ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
[Bf-committers] Node system for game logic
Hi All, some info to put together from initial idea to have nodal logic http://wiki.blender.org/index.php/Dev:Source/GameEngine/NodalLogic >Python access to game engine features is incomplete; you cannot get away from using some logic bricks, possibly >inefficiently, if you want to create a 'only python' application. http://blenderartists.org/forum/showthread.php?216269-Dev-BGE-Components-Branch-Created resolves it. then on >Logic brick access to game engine features is incomplete; you cannot get away from using some Python code if you want to >implement a complex logic. the problem is that is hardly resolvable in general, though there are different attempts. http://webdocs.cs.ualberta.ca/~script/ ( no code but there is AI editor which generates ingame code btw this is a way to go - the generated code from any stand alone node system will be free from any restrictions ( because it is produced result ) ) http://msdl.cs.mcgill.ca/projects/projects/AToM3/ just as initial proposal - starts from modeling general systems ( similar systems usually save their results in high level language such as Modelica ( which in turn can be translated to python or c/c++). so - first objection (from NodalLogic proposal ) which was risen ** - that game system of Blender cannot live without blocks - is resolvable, the general solution to program games in graphics - has many attempts - but no satisfactory solution - still it is always possible to translate anything which was developed with blocks to code, which then, can be integrated into any game. Regards Sergey ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
[Bf-committers] Node system for game logic
Hi Erwin. my bad. yes all components of GameKit are non lgpl or gpl. and Orgre from ver 1.7 is also MIT but still if it is possible to render game logic in blocks - it is possible to write code exporter. so if the system is actually that good - to overcome it's GPl nature is not difficult Regards Sergey On Sat, May 28, 2011 at 4:58 PM, Sergey Kurdakov wrote: > Hi Erwin > > > >Ogre uses the MIT license. > > unfortunately someone misinformed you > http://www.ogre3d.org/licensing > > Regards > Sergey > > > ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
[Bf-committers] Node system for game logic
Hi, it looks like design questions of GameKit should somehow be considered separately. currently, as it is mentioned >with some basic Lua >bindings. GameKit has no python system, but lua one. also while hive system has some merits - it is not the only approach, I like this one http://sourceforge.net/apps/mediawiki/delta3d-extras/index.php?title=DtEntityfor example ( based on series of articles http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/ so this system is really designed with games in mind - not just connect objects - maybe I missed something - but hive system is just overuse of python capabilities to bring objects together but if it can streamline game creation still to be seen ) so which system to use and how still is a question to be discussed. But the narrow part of the story is interface to program games ( there are tools out there such as GameMaker - but it adds nothing special over current Blender capabilities ). If there is working system on interface front to program games without coding - and this main question is resolved - then other questions can be resolved. now the point is if without interface hive system fits into Blender Game engine and if it has potential to fulfill NodeLogic proposal or NodeLogic can be coded with the use of Moguri system + some ideas from http://sourceforge.net/apps/mediawiki/delta3d-extras/index.php?title=DtEntity). as we seen - Ogre was re licensed - but before it proved to be viable system in a first place Regards Sergey On Sat, May 28, 2011 at 6:32 PM, Xavier Thomas wrote: > Hi, > > Speeking of gamekit, it has a node logic system MIT lisenced. You can > take a look at that if you want, it is C++ with some basic Lua > bindings. > > Having a code generator that generates code from node tree is > definitely possible but more complicated than simply evaluating a > tree. There is code that does that (GPL unfortunately) to compile the > material node tree to GLSL code for viewport and game engine. > > Xavier > > > ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
[Bf-committers] Node system for game logic
Hi, just to complete series of links for components idea: https://github.com/caseman/grease is a python component system tutorials are here: https://github.com/caseman/grease/tree/master/doc/tutorial while targeting quite different aspects of design - still initial intention from http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/ >No programmer required for designers to modify game logic are possible to implement more attempts to implement the same pattern: http://www.gamadu.com/artemis/ https://github.com/tdavies/Ember http://flohofwoe.blogspot.com/2007/11/nebula3s-application-layer-provides.html and code http://code.google.com/p/nebula3/ Regards Sergey ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Node system for game logic
Hi Sjoerd, two quick questions: 1) any plans to license it in a non-viral license (e.g. BSD)? 2) how well does it do in terms of performance? If I remember correctly one of the good points of Benoit's proposal was the overall structure of C++ code wrapped around Python but without necessarily running much Python code(at least to reduce the overhead of dealing with python types for any manipulation). 3) does it work for programmers as well? This layer of abstraction is also what permit programmers to access through a programming API (i.e. Python, but it would be lovely to see Lua supported as well) the same functionality that is available graphically . Thanks for sharing your project, it seems quite interesting (I need to look at it properly later though ;). Dalai -- www.dalaifelinto.com @dfelinto 2011/5/26 Sjoerd de Vries > Hi everyone, > > I would like to present to you the hive system, a working node system for > game logic (and other things). > > It implements the complete list of goals of Benoit's Nodal Logic proposal: > http://wiki.blender.org/index.php/Dev:Source/GameEngine/NodalLogic > Some of the design decisions are different, but the hive system contains > all > of his features. > > The source code is available under GPL: > > http://launchpad.net/hivesystem > > It also has a GUI for editing hivemaps (node graphs). It is basic and > quirky > but it works. > This makes it possible for non-programmers to create and modify game logic. > I have made a screencast that demonstrates this for a simple 3D scene: > > http://launchpad.net/hivesystem/trunk/0.7/+download/screencast.swf > > New nodes and hives can easily be built in Python. However, the coding > style > is different from normal Python scripts. > I have written a long manual with many examples. If anything is unclear, > please tell me. > > The main limitation is that there are no bindings yet to the BGE, only to > Panda3D. > It still needs to be ported to Python3.2, and I am not very familiar with > the BGE source code. > Also, a lot of important nodes (sound, physics, mouse picking, networking) > are still missing. > > I am looking forward to join forces with Benoit and Sven, and with anyone > else who is interested. > Any feedback is welcome! > > cheers > > Sjoerd > ___ > Bf-committers mailing list > Bf-committers@blender.org > http://lists.blender.org/mailman/listinfo/bf-committers > ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Node system for game logic
> Dalai Felinto dfelinto at gmail.com > Thu May 26 16:22:39 CEST 2011 > > Hi Sjoerd, > > two quick questions: > 1) any plans to license it in a non-viral license (e.g. BSD)? > 2) how well does it do in terms of performance? > 3) does it work for programmers as well? That's three questions :-) And very good questions, too. I am afraid that the answers aren't so quick... > 1) any plans to license it in a non-viral license (e.g. BSD)? In principle, yes. BSD is too promiscuous for my taste, but something like the LGPL would be an option. However, there are two big complications. The first is that any software that is designed to run on top of the BGE must be GPL because the BGE is GPL. I will work around this by making multiple backends, a GPL backend for the BGE and non-BGE backends for Panda3D, Python-Ogre, ... The second concern is that the hive system seriously blurs the distinction between code and data. The (L)GPL is not very well suited to deal with data. I have some ideas about a custom license, but some discussion would be in order. > 2) how well does it do in terms of performance? If I remember correctly one > of the good points of Benoit's proposal was the overall structure of C++ > code wrapped around Python but without necessarily running much Python > code(at least to reduce the overhead of dealing with python types for any > manipulation). Start-up time can be as much as ten seconds, because all nodes are connected before the hive is fired up. I have some ideas how to slash it, but a few seconds will always be there. As for run-time performance: I haven't tested it thoroughly yet, but I expect no problems, because the nodes call each other directly (no coordination engine). I don't expect much difference with a vanilla Python port of your game logic. Some overhead is added by the exception handling wrappers, but not very much. In any case, for both start-up and runtime, a JIT such as psyco or pypy should double or triple the performance. If pure Python isn't quick enough, I have some plans to interface with nodes implemented in C++, using boost and ctypes. Finally, compiling the whole hive in Cython should also be possible: the static typing of the connections should be very beneficial. > 3) does it work for programmers as well? > This layer of abstraction is also what permit programmers to access through > a programming API (i.e. Python, but it would be lovely to see Lua supported > as well) the same functionality that is available graphically . Yes! I also don't like toy systems that give you some nodes and that's it. Creating your own nodes and interfacing with existing Python code is essential. In addition, you can also create entire hives using the Python class statement, instead of visually. What would you like to have for Lua support? Modifying the node's internal state with a couple of Lua statements should be easy enough with a good Python-to-Lua bridge. I can add that to the system if you want. Making calls into a Lua engine that has direct bindings to the BGE (i.e. bypassing the hive system) would be much much harder. > > Thanks for sharing your project, it seems quite interesting (I need to look > at it properly later though ;). Thanks! :) If you have any questions, don't hesitate to ask! cheers Sjoerd > Dalai > -- > www.dalaifelinto.com > @dfelinto ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Node system for game logic
On Thu, May 26, 2011 at 8:07 AM, Sjoerd de Vries wrote: >> 1) any plans to license it in a non-viral license (e.g. BSD)? > > In principle, yes. BSD is too promiscuous for my taste, but something > like the LGPL would be an option. The reason for the question is that moving to GameKit, which is BSD licensed is a longer term possibility. The plan that the GE dev team decided on was to BSD or dual BSD/GPL license all future code to make such a transition possible. The benefits of this are that GameKit is extremely cross platform - and can be ported and distributed to platforms that GPLed/LGPLed code cannot be used Ie iOS, Xbox 360, PS3, Wii, Nintendo DS, distributed via Apples App store, as well as Android and supporting our existing platforms (Linux, Windows, OS X). LetterRip ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Node system for game logic
> Message: 4 > Date: Thu, 26 May 2011 09:00:51 -0800 > From: Tom M > Subject: Re: [Bf-committers] Node system for game logic > To: bf-blender developers > Message-ID: > Content-Type: text/plain; charset=ISO-8859-1 > > On Thu, May 26, 2011 at 8:07 AM, Sjoerd de Vries wrote: > Hi LetterRip, >>> 1) any plans to license it in a non-viral license (e.g. BSD)? >> >> In principle, yes. BSD is too promiscuous for my taste, but something >> like the LGPL would be an option. > > The reason for the question is that moving to GameKit, which is BSD > licensed is a longer term possibility. > > The plan that the GE dev team decided on was to BSD or dual BSD/GPL > license all future code to make such a transition possible. > > The benefits of this are that GameKit is extremely cross platform - > and can be ported and distributed to platforms that GPLed/LGPLed code > cannot be used I don't believe that the GPL would be viral in this context. The hive system is in Python, it runs on top on whatever rendering engine you provide. Adding GameKit bindings to the hive system doesn't make GameKit a derived product of the hive system, so the GPL wouldn't apply to GameKit. I *think* that a Python GPL component like the hive system could even be redistributed with GameKit, and any GameKit-based game wouldn't need to be GPL as long as the game doesn't actually use (Python-import) the GPL component. from the GPL license: "A compilation of a covered work with other separate and independent works, [which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium,] is called an “aggregate” [if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit]. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate." cheers Sjoerd ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Node system for game logic
On Fri, May 27, 2011 at 11:27 AM, Sjoerd de Vries wrote: > I don't believe that the GPL would be viral in this context. MS, Sony, Nintendo, and Apple (they are slightly more flexible) basically have forbidden any open source code that is not one of 1) BSD, Zlib, MIT, Apache LGPL/GPL simply are not allowed. For the purpose of this discussion it doesn't matter to the developer whether the code is viral, he simply cannot use the code at all if he wants to develop for Wii/DS/Xbox 360/PS3/PSP/iOS. LetterRip ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Node system for game logic
> Message: 6 > Date: Fri, 27 May 2011 23:57:42 +0400 > From: Sergey Kurdakov >>A compilation of a covered work with other separate and independent >>works > > it applies only if it is separate products are put together - such that > engine uses only data, > produced by you hive-system and not any code. > if it is 'linked' - such that there is a code connection (python or not) - > GPL does not allow to run together. > So exactly "Adding GameKit bindings" is prohibited by GPL for non GPL code > if only these binding are not using > network interface or pipes > ( but still even in this case GPL might apply - if it can be proved that the > game cannot run > without GPL component - so that it cannot be replaced with something else). > > LGPL, though, might be OK in this case. Hi Sergey and LetterRip, I think there is a misunderstanding here. Obviously, GameKit runs fine without the hive system. Also, even with GameKit bindings, the hive system would run fine without GameKit, as long as there is another backend available (e.g Panda3D). Therefore, bundling them together would be an aggregate, not a derived product. The hive system wouldn't "infect" the GameKit with a GPL license. I see no reason why GameKit bindings would be forbidden by the GPL. A game that *uses* the hivesystem or any other GPL component would become GPL, but this has nothing to do with GameKit. > From: Tom M > Subject: Re: [Bf-committers] Node system for game logic > To: bf-blender developers > Message-ID: > Content-Type: text/plain; charset=ISO-8859-1 > > On Fri, May 27, 2011 at 11:27 AM, Sjoerd de Vries wrote: > >> I don't believe that the GPL would be viral in this context. > > MS, Sony, Nintendo, and Apple (they are slightly more flexible) > basically have forbidden any open source code that is not one of > > 1) BSD, Zlib, MIT, Apache > > LGPL/GPL simply are not allowed. For the purpose of this discussion > it doesn't matter to the developer whether the code is viral, he > simply cannot use the code at all if he wants to develop for > Wii/DS/Xbox 360/PS3/PSP/iOS. > > LetterRip I am not sure if this is relevant. On how many of those console systems does Python actually work? I am not principally against closed-source applications that use the hive system, but that is another discussion completely. I think you don't need to worry: bundling GameKit with some GPL components should not "infect" GameKit, it would only affect those games that actually use (link with) those GPL components. cheers Sjoerd ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Node system for game logic
Statically linking of games against the Hives logic system is the whole point of discussion. Gamekit exclusively uses permissive licenses, such as BSD, MIT, zlib etc, so if you insist on (l)gpl, your logic system is less attractive for BGE too, because BGE devs want to move towards BSD or dual BSD/(l)gpl. What is your problem with BSD license? Thanks, Erwin Sent from my iPhone On May 28, 2011, at 8:03 PM, Sjoerd de Vries wrote: >> Message: 6 >> Date: Fri, 27 May 2011 23:57:42 +0400 >> From: Sergey Kurdakov >>> A compilation of a covered work with other separate and independent >>> works >> >> it applies only if it is separate products are put together - such that >> engine uses only data, >> produced by you hive-system and not any code. >> if it is 'linked' - such that there is a code connection (python or not) - >> GPL does not allow to run together. >> So exactly "Adding GameKit bindings" is prohibited by GPL for non GPL code >> if only these binding are not using >> network interface or pipes >> ( but still even in this case GPL might apply - if it can be proved that the >> game cannot run >> without GPL component - so that it cannot be replaced with something else). >> >> LGPL, though, might be OK in this case. > > Hi Sergey and LetterRip, > > I think there is a misunderstanding here. > Obviously, GameKit runs fine without the hive system. > Also, even with GameKit bindings, the hive system would run fine > without GameKit, as long as there is another backend available (e.g > Panda3D). > Therefore, bundling them together would be an aggregate, not a derived > product. The hive system wouldn't "infect" the GameKit with a GPL > license. I see no reason why GameKit bindings would be forbidden by > the GPL. > > A game that *uses* the hivesystem or any other GPL component would > become GPL, but this has nothing to do with GameKit. > >> From: Tom M >> Subject: Re: [Bf-committers] Node system for game logic >> To: bf-blender developers >> Message-ID: >> Content-Type: text/plain; charset=ISO-8859-1 >> >> On Fri, May 27, 2011 at 11:27 AM, Sjoerd de Vries wrote: >> >>> I don't believe that the GPL would be viral in this context. >> >> MS, Sony, Nintendo, and Apple (they are slightly more flexible) >> basically have forbidden any open source code that is not one of >> >> 1) BSD, Zlib, MIT, Apache >> >> LGPL/GPL simply are not allowed. For the purpose of this discussion >> it doesn't matter to the developer whether the code is viral, he >> simply cannot use the code at all if he wants to develop for >> Wii/DS/Xbox 360/PS3/PSP/iOS. >> >> LetterRip > > I am not sure if this is relevant. On how many of those console > systems does Python actually work? > > I am not principally against closed-source applications that use the > hive system, but that is another discussion completely. > > I think you don't need to worry: bundling GameKit with some GPL > components should not "infect" GameKit, it would only affect those > games that actually use (link with) those GPL components. > > cheers > > Sjoerd > ___ > Bf-committers mailing list > Bf-committers@blender.org > http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Node system for game logic
Gamekit relies on zero (l)gpl libs. Ogre uses the MIT license. Sent from my iPhone On May 28, 2011, at 9:28 PM, Sergey Kurdakov wrote: > Hi Sjoerd, > > so if you want games based on hive system to be GPL - then > there is no problem with your GPL position. > > It is just - there are far too fewer games with GPL license ( maybe three > orders of magnitude), than all games, > and those successful GPL games do live OK without hive. > > so, unlike Blender - which could be used to create models, your system will > have > quite narrow use. And of cause, it is your choice. > > But then, even with Blender gamedev ecosystem - you could not expect much > interest. > GPL games are developed for fun and not because there is a good system to > use, commercial or > quasi commercial developers ( free or demo games etc ) - do search for > efficient solutions. > > > > as for LGPL/BSD discussion > then even GameKit depens on LGPL Orgre3D and other LGPL libs, > so any additional LGPL lib will not change much ( even if GameKit is > licensed BSD > - it already has LGPL libs being included ) > > Regards > Sergey > ___ > Bf-committers mailing list > Bf-committers@blender.org > http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Node system for game logic
Hi, Speeking of gamekit, it has a node logic system MIT lisenced. You can take a look at that if you want, it is C++ with some basic Lua bindings. Having a code generator that generates code from node tree is definitely possible but more complicated than simply evaluating a tree. There is code that does that (GPL unfortunately) to compile the material node tree to GLSL code for viewport and game engine. Xavier 2011/5/28 Sergey Kurdakov : > Hi Erwin. > > my bad. > > yes all components of GameKit are non lgpl or gpl. > > and Orgre from ver 1.7 is also MIT > > but still > > if it is possible to render game logic in blocks - it is possible to write > code exporter. > so if the system is actually that good - to overcome it's GPl nature is not > difficult > > Regards > Sergey > > On Sat, May 28, 2011 at 4:58 PM, Sergey Kurdakov > wrote: > >> Hi Erwin >> >> >> >Ogre uses the MIT license. >> >> unfortunately someone misinformed you >> http://www.ogre3d.org/licensing >> >> Regards >> Sergey >> >> >> > ___ > Bf-committers mailing list > Bf-committers@blender.org > http://lists.blender.org/mailman/listinfo/bf-committers > ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Node system for game logic
Hi Sjoerd, Thanks for sharing the hive system. I've started to read the documentation and so far I'm impressed by what you have done. I already have a good idea of the system but I still have to figure out how you have achieved all the goals that I stated in my proposal. At some point I will contact you when I know enough to not waste your time with stupid questions. As far as licensing is concerned, I would prefer if you go to a BSD-style license but you should in any case take a firm and definitive position quickly to cut short what seems to be an endless discussion on licensing again ;-) Regards, Benoit > > Message: 1 > Date: Thu, 26 May 2011 14:55:19 +0200 > From: Sjoerd de Vries > Subject: [Bf-committers] Node system for game logic > To: bf-committers@blender.org > Message-ID: > Content-Type: text/plain; charset=ISO-8859-1 > > Hi everyone, > > I would like to present to you the hive system, a working > node system for game logic (and other things). > > It implements the complete list of goals of Benoit's Nodal > Logic proposal: > http://wiki.blender.org/index.php/Dev:Source/GameEngine/NodalLogic > Some of the design decisions are different, but the hive > system contains all of his features. > > The source code is available under GPL: > > http://launchpad.net/hivesystem > > It also has a GUI for editing hivemaps (node graphs). It is > basic and quirky but it works. This makes it possible for > non-programmers to create and modify game logic. I have made > a screencast that demonstrates this for a simple 3D scene: > > http://launchpad.net/hivesystem/trunk/0.7/+download/screencast.swf > > New nodes and hives can easily be built in Python. However, > the coding style is different from normal Python scripts. I > have written a long manual with many examples. If anything is > unclear, please tell me. > > The main limitation is that there are no bindings yet to the > BGE, only to Panda3D. It still needs to be ported to > Python3.2, and I am not very familiar with the BGE source > code. Also, a lot of important nodes (sound, physics, mouse > picking, networking) are still missing. > > I am looking forward to join forces with Benoit and Sven, and > with anyone else who is interested. Any feedback is welcome! > > cheers > > Sjoerd > ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Node system for game logic
The proposal at http://wiki.blender.org/index.php/Dev:Source/GameEngine/NodalLogic is huge, great ideas, but maybe its overkill. Nodes are cool, better than what we have now, but i think "Scratch-style" logic blocks would be simple and even more clear. http://scratch.mit.edu/ One issue i see is there are many changes at the C level that need to be made to leverage the current node interface. Why not take a pure python approach, and use ctypes where needed? If the UI is going to be general and compatible with other engines like Panada3d, etc.. it really should use a standard GUI toolkit like Qt or Gtk. -brett --- On Sat, 5/28/11, Benoit Bolsee wrote: > From: Benoit Bolsee > Subject: Re: [Bf-committers] Node system for game logic > To: bf-committers@blender.org > Date: Saturday, 28 May, 2011, 9:49 AM > Hi Sjoerd, > > Thanks for sharing the hive system. I've started to read > the > documentation and so far I'm impressed by what you have > done. I already > have a good idea of the system but I still have to figure > out how you > have achieved all the goals that I stated in my proposal. > At some point > I will contact you when I know enough to not waste your > time with stupid > questions. > > As far as licensing is concerned, I would prefer if you go > to a > BSD-style license but you should in any case take a firm > and definitive > position quickly to cut short what seems to be an endless > discussion on > licensing again ;-) > > Regards, > Benoit > > > > > Message: 1 > > Date: Thu, 26 May 2011 14:55:19 +0200 > > From: Sjoerd de Vries > > Subject: [Bf-committers] Node system for game logic > > To: bf-committers@blender.org > > Message-ID: > > Content-Type: text/plain; charset=ISO-8859-1 > > > > Hi everyone, > > > > I would like to present to you the hive system, a > working > > node system for game logic (and other things). > > > > It implements the complete list of goals of Benoit's > Nodal > > Logic proposal: > > http://wiki.blender.org/index.php/Dev:Source/GameEngine/NodalLogic > > Some of the design decisions are different, but the > hive > > system contains all of his features. > > > > The source code is available under GPL: > > > > http://launchpad.net/hivesystem > > > > It also has a GUI for editing hivemaps (node graphs). > It is > > basic and quirky but it works. This makes it possible > for > > non-programmers to create and modify game logic. I > have made > > a screencast that demonstrates this for a simple 3D > scene: > > > > http://launchpad.net/hivesystem/trunk/0.7/+download/screencast.swf > > > > New nodes and hives can easily be built in Python. > However, > > the coding style is different from normal Python > scripts. I > > have written a long manual with many examples. If > anything is > > unclear, please tell me. > > > > The main limitation is that there are no bindings yet > to the > > BGE, only to Panda3D. It still needs to be ported to > > Python3.2, and I am not very familiar with the BGE > source > > code. Also, a lot of important nodes (sound, physics, > mouse > > picking, networking) are still missing. > > > > I am looking forward to join forces with Benoit and > Sven, and > > with anyone else who is interested. Any feedback is > welcome! > > > > cheers > > > > Sjoerd > > > > > ___ > Bf-committers mailing list > Bf-committers@blender.org > http://lists.blender.org/mailman/listinfo/bf-committers > ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Node system for game logic
Hi all (GE team!), If I understand it correctly, the GSoC project for game logic will work on a 'proof of concept', designs and a proposal for future work on node editor implementation. Both Sven and Benoit have defined a couple of ways how to do this work, and I think that can happily move forward of course. Based on reviews Benoit did for the Hive system, it does appear to me that Sjoerd already fully delivered such a system, although with some different internal design decisions. Benoit also stated in his review that the GSoC project shouldn't stop further evaluation or work on integration Hive at all. He was impressed with the current code & design. For both projects, my own concern is mostly that I'm not so much interested in great code design (which is obvious ;) but about the possibilities to provide a great end-user experience for advanced control over editing logic for games. The GUI for it (node editor), the APIs for it (scripting), the ways things store and load, the ways how to keep things work and compatible, and especially speed (no startup times, no external files required) are all relevant integration topics for making decisions here. I know it's a luxury, but not uncommon either to have people work in parallel on testing out their ideas. Therefore I'd propose to provide Sjoerd with a svn Hive branch, to allow him to further work on proof of concept (on integration level) and welcome him as part of the team with our support as well. The discussion on BSD or GPL licensing I also don't need to continue here for now. There's too many unknowns now anyway, and I'm sure Sjoerd will be open to look into changing licenses once there's an opportunity for actual re-use of Hive in other projects. In due time, after the summer, we then can check on what to do next! Regards, -Ton- Ton Roosendaal Blender Foundation t...@blender.orgwww.blender.org Blender Institute Entrepotdok 57A 1018AD Amsterdam The Netherlands On 28 May, 2011, at 18:49, Benoit Bolsee wrote: > Hi Sjoerd, > > Thanks for sharing the hive system. I've started to read the > documentation and so far I'm impressed by what you have done. I > already > have a good idea of the system but I still have to figure out how you > have achieved all the goals that I stated in my proposal. At some > point > I will contact you when I know enough to not waste your time with > stupid > questions. > > As far as licensing is concerned, I would prefer if you go to a > BSD-style license but you should in any case take a firm and > definitive > position quickly to cut short what seems to be an endless discussion > on > licensing again ;-) > > Regards, > Benoit > >> >> Message: 1 >> Date: Thu, 26 May 2011 14:55:19 +0200 >> From: Sjoerd de Vries >> Subject: [Bf-committers] Node system for game logic >> To: bf-committers@blender.org >> Message-ID: >> Content-Type: text/plain; charset=ISO-8859-1 >> >> Hi everyone, >> >> I would like to present to you the hive system, a working >> node system for game logic (and other things). >> >> It implements the complete list of goals of Benoit's Nodal >> Logic proposal: >> http://wiki.blender.org/index.php/Dev:Source/GameEngine/NodalLogic >> Some of the design decisions are different, but the hive >> system contains all of his features. >> >> The source code is available under GPL: >> >> http://launchpad.net/hivesystem >> >> It also has a GUI for editing hivemaps (node graphs). It is >> basic and quirky but it works. This makes it possible for >> non-programmers to create and modify game logic. I have made >> a screencast that demonstrates this for a simple 3D scene: >> >> http://launchpad.net/hivesystem/trunk/0.7/+download/screencast.swf >> >> New nodes and hives can easily be built in Python. However, >> the coding style is different from normal Python scripts. I >> have written a long manual with many examples. If anything is >> unclear, please tell me. >> >> The main limitation is that there are no bindings yet to the >> BGE, only to Panda3D. It still needs to be ported to >> Python3.2, and I am not very familiar with the BGE source >> code. Also, a lot of important nodes (sound, physics, mouse >> picking, networking) are still missing. >> >> I am looking forward to join forces with Benoit and Sven, and >> with anyone else who is interested. Any feedback is welcome! >> >> cheers >> >> Sjoerd >> > > > ___ > Bf-committers mailing list > Bf-committers@blender.org > http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Node system for game logic
Ton, sounds like a BSD runtime and GPL/LGPL node design tool was acceptable to the the Hive creator, as well as other interested partys. LetterRip On Fri, Jun 10, 2011 at 2:21 AM, Ton Roosendaal wrote: > Hi all (GE team!), > > If I understand it correctly, the GSoC project for game logic will > work on a 'proof of concept', designs and a proposal for future work > on node editor implementation. Both Sven and Benoit have defined a > couple of ways how to do this work, and I think that can happily move > forward of course. > > Based on reviews Benoit did for the Hive system, it does appear to me > that Sjoerd already fully delivered such a system, although with some > different internal design decisions. Benoit also stated in his review > that the GSoC project shouldn't stop further evaluation or work on > integration Hive at all. He was impressed with the current code & > design. > > For both projects, my own concern is mostly that I'm not so much > interested in great code design (which is obvious ;) but about the > possibilities to provide a great end-user experience for advanced > control over editing logic for games. The GUI for it (node editor), > the APIs for it (scripting), the ways things store and load, the ways > how to keep things work and compatible, and especially speed (no > startup times, no external files required) are all relevant > integration topics for making decisions here. > > I know it's a luxury, but not uncommon either to have people work in > parallel on testing out their ideas. Therefore I'd propose to provide > Sjoerd with a svn Hive branch, to allow him to further work on proof > of concept (on integration level) and welcome him as part of the team > with our support as well. > > The discussion on BSD or GPL licensing I also don't need to continue > here for now. There's too many unknowns now anyway, and I'm sure > Sjoerd will be open to look into changing licenses once there's an > opportunity for actual re-use of Hive in other projects. > > In due time, after the summer, we then can check on what to do next! > > Regards, > > -Ton- > > > Ton Roosendaal Blender Foundation t...@blender.org www.blender.org > Blender Institute Entrepotdok 57A 1018AD Amsterdam The Netherlands > > On 28 May, 2011, at 18:49, Benoit Bolsee wrote: > >> Hi Sjoerd, >> >> Thanks for sharing the hive system. I've started to read the >> documentation and so far I'm impressed by what you have done. I >> already >> have a good idea of the system but I still have to figure out how you >> have achieved all the goals that I stated in my proposal. At some >> point >> I will contact you when I know enough to not waste your time with >> stupid >> questions. >> >> As far as licensing is concerned, I would prefer if you go to a >> BSD-style license but you should in any case take a firm and >> definitive >> position quickly to cut short what seems to be an endless discussion >> on >> licensing again ;-) >> >> Regards, >> Benoit >> >>> >>> Message: 1 >>> Date: Thu, 26 May 2011 14:55:19 +0200 >>> From: Sjoerd de Vries >>> Subject: [Bf-committers] Node system for game logic >>> To: bf-committers@blender.org >>> Message-ID: >>> Content-Type: text/plain; charset=ISO-8859-1 >>> >>> Hi everyone, >>> >>> I would like to present to you the hive system, a working >>> node system for game logic (and other things). >>> >>> It implements the complete list of goals of Benoit's Nodal >>> Logic proposal: >>> http://wiki.blender.org/index.php/Dev:Source/GameEngine/NodalLogic >>> Some of the design decisions are different, but the hive >>> system contains all of his features. >>> >>> The source code is available under GPL: >>> >>> http://launchpad.net/hivesystem >>> >>> It also has a GUI for editing hivemaps (node graphs). It is >>> basic and quirky but it works. This makes it possible for >>> non-programmers to create and modify game logic. I have made >>> a screencast that demonstrates this for a simple 3D scene: >>> >>> http://launchpad.net/hivesystem/trunk/0.7/+download/screencast.swf >>> >>> New nodes and hives can easily be built in Python. However, >>> the coding style is different from normal Python scripts. I >>> have written a long manual with many examples. If anything is >>> unclear
Re: [Bf-committers] Node system for game logic (Erwin Coumans)
> Date: Sat, 28 May 2011 21:05:17 +0900 > From: Erwin Coumans > Subject: Re: [Bf-committers] Node system for game logic > To: bf-blender developers > Message-ID: <9512dd7c-19c0-4a52-be84-aad9be68a...@gmail.com> > Content-Type: text/plain; charset=us-ascii > Hi Erwin, > Statically linking of games against the Hives logic system is the whole point > of discussion. As far as I understood, that was *not* the point of discussion. Some people expressed concern about the "virality" of the hive system, i.e. that it would force the GPL upon GameKit. That is clearly not the case, I hope that this discussion is closed. The license of the hive system (and games that use the hive system) is a completely different discussion. Maybe this mailing list is not the best place for that. I have written down some thoughts on the hive system license on my user page on the wiki: http://wiki.blender.org/index.php/User:Sjoerd Everyone is most welcome to provide their feedback and opinions there. cheers Sjoerd ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers