Search Unity

Visual Logic Editor WIP

Discussion in 'Made With Unity' started by rytis, Aug 28, 2009.

  1. rytis

    rytis

    Guest

    Joined:
    Jul 11, 2008
    Posts:
    138
    Hi All!

    First of all DISCLAIMER: this is NOT an oficial upcoming Unity feature. At Unity we have this thing called "Fridays Are For Fun", meaning that on fridays we can work on whatever we want, even if it's not useful and might never get released.

    For several of my last fridays I was doing Visual Logic Editor for Unity.

    So far only basic things work. Quite messy since there is no subsequence support yet (everything is in one large sequence).
    Circles right now can only be Component type variables (dragged from hierarchy).
    Later should have editable properties displayed and edited on nodes themselves. And "bunch of other stuff" (tm).

    Would like to ask what you guys think.
    Would it be useful?
    Any tips from people who actually worked with systems like that?
    Do you want it? :)
    Any other feelings it gives you? :) Let us hear it.


    Cannot yet give any demo to try out. Below are some screenshots of test "Game" that shows concepts. To "complete" the game one needs to collect 5 "pickups", then elevator goes down. Walking on elevator makes it go up. After that walking to particle system makes you "win" the game (uses node to call custom function to change particle color and size then waits few seconds and calls function to display "You won the game" text on screen).

    Nodes are defined like this:

    Code (csharp):
    1.  
    2. [NodeAttr(CustomName = "Destroy", Menu = "Control")]
    3. public class VLEDestroy : VLENode
    4. {
    5.     public ExitLink Out;
    6.  
    7.     [Variable("Object", VariableType.In)]
    8.     public Object Obj;
    9.  
    10.     [EntryLink]
    11.     void In()
    12.     {
    13.         if (Obj != null)
    14.             Object.DestroyImmediate(Obj);
    15.         Trigger(Out);
    16.     }
    17. }
    18.  
     

    Attached Files:

  2. gtjuggler

    gtjuggler

    Joined:
    Nov 13, 2008
    Posts:
    238
    Heh, reminds me of Virtools.

    I assume this thread will turn into something similar to the 'programming is too hard' thread. Commence!

    No but seriously, that looks cool. How many Fridays worth of work is that?
     
  3. rytis

    rytis

    Guest

    Joined:
    Jul 11, 2008
    Posts:
    138
    I'm not really sure. Smth around 8 fridays I think.
     
  4. outtoplay

    outtoplay

    Joined:
    Apr 29, 2009
    Posts:
    741
    I love it!

    I am way more visual than I am logical(hmmm). In my compositing work give me Shake or Fusion over After Effects every time.

    Avery cool effort, that many will no doubt hail.

    Brendang.
     
  5. jashan

    jashan

    Joined:
    Mar 9, 2007
    Posts:
    3,307
    I certainly think so - even though personally, I really enjoy coding in text. But I guess there are probably quite a few use cases for logic being "drawn out".

    Yeah, gieef!!!

    I think the power of such a system lies in its extensibility via custom nodes; and users that don't like creating such nodes will probably need a convenient way to get and integrate nodes (and libraries of nodes) that others have created into their own game.

    Which reminds my of my old request: Please support namespaces ;-)

    Anyways, I guess if UT provides the Editor and a few examples and then Unity users provide general and special nodes this could also become a pretty cool marketplace ;-)
     
  6. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    Looks great and the custom node makes it very flexible in its use.
    Can basically be used for anything, from logic scripting to effect composition to quest scripting ...
     
  7. defmech

    defmech

    Joined:
    Feb 24, 2007
    Posts:
    506
    I would use the hell out of this. Like others, I'm a lot more visual, so not only would it speed up prototyping for me, but it would actually entice me to prototype more ideas and more often. Please finish it yesterday!
     
  8. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    OMFG!!

    I come from an extensive Virtools, Unreal Kismet background (we used the hell out of it on Borderlands and Aliens) and Quest 3D to a lesser degree so...

    ...YES this would be an utterly AMAZING addition; I can guarantee every 'artist-coder' here (raises hand) just vomited out of excitement at this being a potential new feature.

    I've prototyped full blown games in a week in Virtools, including FPS's, top down TB RPG's and graphic adventures. Though my coding friends argue with me that coding is faster, mind you they are CODERS (and I do agree with them on some things), for artists that have no coding background, there is no 'faster'...seeing our level and gameplay designers using Kismet to whip up complex interactions with zero programming background is proof enough how liberating this is in allowing a greater portion of the development team to participate in actual gameplay development without relying on a programmer (and said turn-around for implementation).

    So if you haven't guessed yet...

    ...YES PLEASE!! :D

    (god I feel like a kid in a toystore :oops: )


    -Steve
     
  9. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    I'd argue though that if you are serious about this (please!??!) that you look to Virtools primarily as while abstracting general code concepts into building blocks is great for some things (Quest 3D), Virtools brings function specific BB's that remove the headache of long graph chains that they accomplish in one behavior. Character controlling behaviors come to mind which are quite superior in Virtools to other visual programming apps which require you to essentially construct such things from scratch...

    ...requires a bit more investment on your end (UT) but the end result is greater accessibility and faster prototyping.

    I'd be MORE than happy to offer my services in this regard! :D


    -Steve
     
  10. rytis

    rytis

    Guest

    Joined:
    Jul 11, 2008
    Posts:
    138
    SteveB> please read the disclaimer :) Sorry to say but it might take really really long time until it will come... Cannot yet even promise that it will.
    But I'll be sure to check out virtools editor (i only really looked at kismet so far).

    What exactly is "function specific BB's" ?
     
  11. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    Oh no I know...mind you my enthusiasm was here to set the tone so if a year down the line you guys decide to implement it, it will be a desirable feature...

    ...I've already resigned myself to coding anyway so it's no huge loss, only a tremendous gain. :)

    Now as for function specific BB's (Building Blocks in Virtools vernacular) think of your "Has Tag" node in your screenshot above. That's exactly what these two examples are; one node but with a completely specific function and of course appropriate parameter inputs and outputs. They serve no other purpose but to do what they do. Virtools contains generic logic behaviors as well, and so:

    Character Animation
    • Animation Synchronizer - Allows you to scrub the animation (its also a pop-up editor) and place 'events' on specific frames which can fire off messages. E.g. scrubbing the animation and wherever the character steps, you can 'tick' it for a Send Message to play a footstep sound.
    • Character Go To - Not terribly complex but straight forward; simply tells the character to walk to a target object (just like you assign GO's in the Inspector), distance from the target before the character should stop (aids in removing 'jittering' as the character could attempt to reach an impossibly small decimal value...setting this to like 0.5 or even 1.0 smooths out the characters arrival), the characters front facing and the angle limit between the facing and the target. There's even a boolean to have the character walk 'backwards' to the target if you want.

    Between just these you can see how powerful the character setup can be with just two BB's. Coupled with their fantastic Grid system for pathfinding and you can have characters walking all over the place, doing all sorts of things very easily.

    In a simple example, I wanted to have a character patrol and at each 'waypoint' have him decide to keep walking to the next, stop to look around or play any of several fidget idles (scratching himself, etc). I would have Raycast BB and Test BB's as well so upon reaching the waypoint he would search for items of interest (ammo, health, scripted trigger such as walking to a bench and sitting down) or the player character. This way I quickly randomized his behavior very easy using a Random BB to generate a value between min/max (I would also weight these so the NPC would have a greater or lesser chance of doing certain things (i.e. 50% chance to keep walking, 30% to look around, 10% to scratch himself, 10% to sit down) and feed that into a simple graph containing the various "actions" take on targets that were either in range (Proximity BB) or hit by a ray that I could then feed back into the Character Go To BB above to keep him moving around and performing organic interactions.

    Of course this is all doable in Unity, it was just so quick to do visually in Virtools and very easy to track the NPC state. Again I'm not arguing that its better or worse than coding, only that for an artist(me) at the time, it was godsend and here I was creating complex character behavior (one of the hardest things in dev) without a lick of coding knowledge (well minimal I should say).

    OH! ...the Arrays in Virtools are all visual as well so MY GAWD do I miss that to be completely honest. I could see a graph of all my stored values and do specific column/row picking if I so choose. I could quickly parse by string, or search out a particular value. Again all doable in Unity, but being able to see what's going on in the Array interactively is huge, again especially for a non-coder.

    -Steve
     
  12. showoff

    showoff

    Joined:
    Apr 28, 2009
    Posts:
    273
    Im with everyone and I would use the hell out of this
     
  13. melmonkey

    melmonkey

    Joined:
    Mar 31, 2009
    Posts:
    373
    Ooooooooooo....

    Unreal Kismet for Unity?

    I'm on board. As long as we can pick and choose between using it, or not, in the same scene.

    You know, this object is set-up using the visual editor, but this other object is hand coded.
     
  14. Morgan

    Morgan

    Joined:
    May 21, 2006
    Posts:
    1,223
    Really cool!

    I once was skeptical of the power and flexibility of visual programming, but AmigaVision sold me on the potential. (Just dated myself I think!)

    If it could be bi-directional with JS, so hand-coded scripts could be viewed/edited/debugged that way, it would be awesome. Some kind of system that took the whole Unity "dictionary" and made it visual automatically.
     
  15. minevr

    minevr

    Joined:
    Mar 4, 2008
    Posts:
    1,018
    Virtools 8)
     
  16. the_motionblur

    the_motionblur

    Joined:
    Mar 4, 2008
    Posts:
    1,774
    Do I want it?
    YES! YEEESS!!!

    What do I feel about it?
    Reminds me of the XPresso setups from Cinema4D just that I find it more useful for gamelogic, personally. So I feel it might be a very good approach to make Unity more accessible and felxible.

    Would it be useful?
    I really think so. Yes.
    Despite that I like the current code-attach-to-object approach (out of the box) very much I think that a system like this might ease the clarity of complex setups tremendously.

    If this would develop into a real feature I'd be happy :)
     
  17. ElmarKleijn

    ElmarKleijn

    Joined:
    May 11, 2009
    Posts:
    87
    Great job!

    I like that "Fridays Are For Fun" idea. More employers should have that ;). It's pretty impressive what a small creative team can do "for fun" with a lot of motivation! But I guess it's a subject of it's own ;).


    On a sidenote: I am one of the people those which will always remain skeptical to visual interfaces like these, although Unreal Engine 3 and 3DS Max make it pretty interesting to use. I haven't used Virtools. (Maybe my traumatic experiences come from DSP editors...)
     
  18. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    Almar: programmer type of users commonly won't see much of use behind it, its really a designer / artist thing normally ...

    My ex GF worked with such programming in their job (programming scientific lab microcontrollers) and told me its the only kind of programming she really ever was able to use.

    I on the other hand just see how many worlds more space and views it needs to get even trivial things done.

    During procedural programming, such visual programming somewhere might have might been more powerfull but with fully fledged OO languages (C#, Java, Eiffel), its impossible for me to think that those languages do more and faster than I can do in code, just due to the amount of "going in" and "going out" required in the schemas to get larger functionality done. OO took the only benefit such design environments directly had, "placing blocks".

    For dialog design, ai and alike its naturally a whole different topic as those things benefit heavily from it as anything in those fields is commonly modelled from trees, graphs and paths anyway.
     
  19. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    ^Spoken just like my coder buddies... :wink:
     
  20. Armagon

    Armagon

    Joined:
    May 29, 2009
    Posts:
    246
    Kismet under Unity. I honestly believe that this is heaven to me and all other fellow developers here that are artists and have no programming background. :D

    You really should take your project to your bosses over UT: it's an amazing idea, and should be developed as a serious feature.
     
  21. Dom

    Dom

    Joined:
    Jul 10, 2007
    Posts:
    91
    Personally, I think the key for making these kind of tools work, is being able to do encapsulation. Using hierarchical trees or graphs will allow to model Level-Of-Details for behaviour code and facilitate re-usability.

    Visual Systems are less effective for low-level logic but should be supported for non-coders. I probably would code low-level behaviour in C# and model high-level behaviour using such a hierarchical visual system. From my personal experience (9 years Virtools) this is pretty powerful and often underestimated.

    (Btw. Virtools is different to many other systems because it models two flows explicitly: data flow and program flow. )
     
  22. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    Dom! Well here you go guys, between Dom and I (being huge proponents of Virtools) you can gather quite a bit of info on the system, moreso from Dom than I.

    One thing I didn't make clear is encapsulation as he describes. It wouldn't be one endless chain of behaviors, but rather just like a function, you would create a series of behaviors that do something specific and then create what Virtools calls "behavior graphs" (BG's), essentially turning that series of behaviors into one, which for all intents and purposes looks like yet another behavior except you can delve back into it as needed. Upside to this, again as he addresses, is reusability and cleaner graphing (re: readability).

    It's quite powerful and I myself have nested quite a few BG's to great effect in my Virtools games. Kismet introduced this as it evolved so it's quite necessary IMHO to get the most out of this system.

    Thanks Dom!!

    -Steve
     
  23. MatthewW

    MatthewW

    Joined:
    Nov 30, 2006
    Posts:
    1,356
    I used Virtools for six years (they even flew me to Australia to train resellers when Dassault bought them out). Our first games were exclusively written in their visual schematic system.

    There are substantial advantages to a visual programming system--yes, even for "real" programmers--and of course substantial disadvantages. I'll find some time to write up a more detailed reply with my suggestions (we're launching all kinds of stuff on Tuesday and pretty busy until then)...
     
  24. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    Oops! Didn't forget you Matthew!

    Ha, okay so thats two respected Virtools/Unity dev's right here fellas... :D
     
  25. bigkahuna

    bigkahuna

    Joined:
    Apr 30, 2006
    Posts:
    5,434
    My only experience with "visual" application design was a brief encounter with Quest3D and a bit more experience with the Blender Game Engine. I found the Quest3D design process thoroughly confusing, and at the time I would not have considered myself a programmer by any stretch. So I don't really agree with the thought that a visual design system makes it any easier for an artist to grasp than, for example, learning to program in Javascript. Even so, I think developing such a thing for Unity is probably worthwhile, although I would personally like to see the time invested in more mundane, but useful stuff (like allowing us complete control over the input manager / quality control panel and stuff like that).

    My apologies to the former Virtools and Quest people who want to see this, but one of the reasons I bought Unity instead of V/Q3D is because programming in Javascript is sooo much easier.
     
  26. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    Quest3D, while capable, isn't a great example of a visual system done right. I too struggled with Quest despite my having tremendous success with Virtools...

    ...another way to look at it...

    ...there are HOW many different programming languages? Obviously they are not all created equal.

    Implementation is key here, not the concept.
     
  27. defmech

    defmech

    Joined:
    Feb 24, 2007
    Posts:
    506
    Another suggestion to throw on the inspiration pile is Quartz Composer. If I'm not mistaken(IANAP), it also has the same kind of encapsulation that Steve and Dom were talking about earlier. I was taking some of the examples apart and couldn't figure out how they were getting such a simple graph to do a really complex effect. An errant mouseclick drilled down into a particular function revealing a whole mess of spaghetti and nodes.

    If you're on a Mac and haven't played around with QC, you really should, it's a neat little toy that can do some very cool stuff.
     
  28. kabab

    kabab

    Joined:
    Dec 27, 2007
    Posts:
    109
    Also I think Virtools is successfully at this approach is because their BB library is sooooo extensive you can do A LOT!!! before you need to resort to vsl and the BB's are documented quiet well.

    I'd imagine coding as many BB's as virtools has would be as big a job as coding unity to begin with.
     
  29. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    True...Virtools' foundation was laid with it's system in mind so yea, it's a large undertaking...

    ...but it's not like such a system couldn't grow into something as robust as theirs over time. :D

    But yea the documentation and examples were quite excellent, including optimizing the graphs with BG's and such to create faster executing scripts. The system in and of itself was very well thought out.

    I mean I'm not kidding just how much can be done for someone with little to no coding experience...though having conceptual knowledge of code structure and/or design is necessary; a layman isn't going to come in and start creating complex interactive media, but for someone with a clear understanding of design and what goes into a game for example can make a lot of headway in it without having ever coded.

    My only experience in programming prior to using Virtools was BASIC on my Commodore Vic20 and C64. My experience in the game industry for the past 13 years though gave me the knowledge to, at the very least, understand programming and game structure conceptually to know what to look for while learning Virtools and onto actually creating real applications (games).

    -Steve
     
  30. rytis

    rytis

    Guest

    Joined:
    Jul 11, 2008
    Posts:
    138
    Thank you all for thoughts and ideas. Really useful!
    Btw I've never seen Virtools :) But since there are so many who used it and liked it I'll definitely take a close look at it. Also looking forward to hearing Mathews ideas.
    I do think that this is not only "tool for those who can't code". It's also a great abstraction level for your game logic. Now the game logic is scattered all over the place. Logic is "built" from small pieces in different code files, inspector settings, components attached, etc. In visual logic editor it's all in one nice place. VLE is not a tool to do your regular coding visually. It should be showing how your game works and hide the implementation details. Well, but I guess one could write books about visual vs. normal coding.
     
  31. Harissa

    Harissa

    Joined:
    Nov 13, 2008
    Posts:
    138
    Hmm, looks interesting. I can see two main uses for this type of thing

    1) For novice programmers / artists types.
    Lots of people here have mentioned VirTools but no one has mentioned Authorware (http://www.adobe.com/products/authorware/ - there's a free 30 day trial). Authorware is a flow chart creation based tool for creating 2D training type applications. I last used it with version 5 and it definitely had its limitations. On the plus side its one of the few tools I've seen that people who had never programmed could use after a day's training.
    You might also like to have a look at Scratch (http://scratch.mit.edu/ - its free). Scratch is a completely visually based programming language aimed at kids and is mainly used to make 2d games.

    2) As a way of automatically visualising game code. I'm thinking here of the Dreamweaver model where you can use Dreamweaver's visual tools to create web sites but you can also go in edit the code. Dreamweaver uses "round-trip" editing so all your code changes are kept and then reflected back into the visual environment and vice versa.

    Like, I say, interesting stuff and keep at it. I suspect it will take a whole heap of work to make it as good as we'd like it to be :)
     
  32. aa13x

    aa13x

    Joined:
    Jun 11, 2009
    Posts:
    3
    wow, I completely love Unity, and since I can't code at all, and really hard to get my hands around it, this is a life saver! Seriously, if Unity gets visual coding, that would be... a serious dream come true.

    Awesome work.
     
  33. lard

    lard

    Joined:
    Jun 8, 2009
    Posts:
    4
    Wow, please continue to develop this feature for Unity. For game logic and design development, this type of system is perfect. Visual logic graphs really opens the field to every type of creative mind (right and left brainers).

    IMO, the CryEngine flowgraph system is central to all the power of that system. I think they do it right. The crazy mods and prototype coming out from crymod.com are just plain astonishing. Even if the visual logic flow isn't the best solution for the system for the final game, the benefit for rapid prototyping warrants development of a visual logic graph.

    I would definitely look at the CryEngine's flowgraph editor/implementation for inspiration. I would take the time to learn Crytek's tool and look at how they made extensive use of the system for Crysis. Crytek, used it for all game logic, AI routines, game token handling, cinematic events, scripted sequences, HUD effects, etc. There was even some movement from a Crytek developer (on his own 'mod' time to open up the flowgraph system:

    http://www.crymod.com/thread.php?threadid=30668

    These are a few of my favorite crymod flowgraphs:

    RTS - Assuming Command
    http://www.crymod.com/thread.php?threadid=28074&sid=22b298ae7d8ce8c3df6fecb8785b7b07

    Mirrors Edge
    http://www.crymod.com/thread.php?threadid=42725&sid=2bdd2efa6a7b7bfe4efdab68c533ac32

    Weapon Momentum
    http://www.crymod.com/thread.php?threadid=47342&sid=1823e1b73d1431282b9ce6519b7ce64e

    Tactical Alien Nanosuit Attachments
    http://www.crymod.com/thread.php?threadid=30009&sid=879fd0a28fbecf85fa7c10dfe79999a3

    Squad Commander
    http://www.crymod.com/thread.php?threadid=16130&hilight=SQUAD+COMMANDER

    Flymode
    http://www.crymod.com/thread.php?threadid=47341

    Advanced AI
    http://crymod.com/thread.php?threadid=24954

    Implosive Grenades
    http://www.crymod.com/thread.php?threadid=30811
     
  34. lard

    lard

    Joined:
    Jun 8, 2009
    Posts:
    4
    Another source for inspiration would be Softimage's ICE system.

    ICE graphs are a really low level logic graphs. I'm not an ICE expert by any means, but I did spend a month going thru all the nodes and following the very good Digital Tutor's ICE Reference guide. I'm not a big fan of Digital Tutors because the few tutorials I've seen seem like the instructor is just reading a few pages ahead of me in the manual. But the ICE Node Reference Library (and possibly there other two ICE learning videos) are the exception; they are very well done. Worthy of study.

    More then a network of trigger and variable passing, ICE is really all about dynamically getting and setting data. It's implementation is very deep. Objects can even have new properties created and manipulated on the fly. Another interesting implementation of ICE is that most ICE nodes can accept any type of data (boolean, int, float, string, vectors, matrices, colors, and arrays of various or mixed types).

    If you are interested in studying ICE, you can download a Softimage 30 day trial from here:
    http://usa.autodesk.com/adsk/servlet/pc/index?siteID=123112&id=13571168

    And the DT learning material is here:
    http://www.digitaltutors.com/09/training.php?cid=103

    Definitely worth checking out
     
  35. cybervalie

    cybervalie

    Joined:
    Sep 27, 2009
    Posts:
    94
    hello, i'm happy to find this post, because i was much work with the flowgraph of sandbox 2 and when i was trying unity, i was not finding anything like that, and i was searching all the night some pluggin to add on unity for that, and this post is the most concrete thing i found ^^. so somebodies speek from virtools, or softimage, but how is it possible to work on this programs, in external way of unity, and convert it for it work on it?

    i would like to ask also, if someone can tell me if it exist a freeware that can do this system of bounding blocks, for working in unity? or some system of bounding blocks that can convert the work in javascript for use it in unity?

    and my last question: would it be possible to see a pluggin addapted on unity for that, in future?
     
  36. ColossalDuck

    ColossalDuck

    Joined:
    Jun 6, 2009
    Posts:
    3,246
    This is amazing.
    This would help a lot of people out, I like coding and have always wanted to be a programmer but I know there are people out there who would want it. I would loove to test it out.
     
  37. Jack-Trades

    Jack-Trades

    Joined:
    Apr 5, 2009
    Posts:
    107
    Awesome, can't wait to try this.
     
  38. Dom

    Dom

    Joined:
    Jul 10, 2007
    Posts:
    91
    I didn't post in this thread, did I? :?
    Anyways, an important aspect is to be able to build hierarchies. It's important for re-use and keeping it less confusing. Hierarchical visual scripting systems are very powerful when used with high-level behaviour components. Also a trace mode (or debugger) is - like everywhere - an intense boost.

    Yes, Virtools has an extensive lib but a big number of their components has design-errors and require a rewrite to consider for different use-cases.
     
  39. jonaphin

    jonaphin

    Joined:
    Dec 31, 2008
    Posts:
    209
    ICE in action:
    http://www.i3dtutorials.com/tutorial/52_working-with-ice

    Such a tool would certainly appeal to a large crowd, and make of Unity that much more of an attractive environment to work with.

    Now of course, like every great tool, it already has its supporters and detractors. Sir, you are onto something :D Keep up the great job!
     
  40. cybervalie

    cybervalie

    Joined:
    Sep 27, 2009
    Posts:
    94
    Nice this video of ICE!
    Can we use ICE with Unity, for create some gamelogic?
     
  41. maxfax2009

    maxfax2009

    Joined:
    Feb 4, 2009
    Posts:
    410
    this look so great - I would like it in Unity for sure :)
     
  42. Rod-Galvao

    Rod-Galvao

    Joined:
    Dec 12, 2008
    Posts:
    210
    Any news if/when it will be released?

    R.
     
  43. rytis

    rytis

    Guest

    Joined:
    Jul 11, 2008
    Posts:
    138
  44. Cor1979

    Cor1979

    Joined:
    Oct 4, 2009
    Posts:
    65
    a godsend for us "visual thinkers", aka artists. Hopefully you can take this through to its conclusion.
     
  45. rytis

    rytis

    Guest

    Joined:
    Jul 11, 2008
    Posts:
    138
    Small update. Changed the way nodes are represented.
    This graph does exactly the same as the one in first entry of this thread :)
     

    Attached Files:

  46. andeeeee

    andeeeee

    Joined:
    Jul 19, 2005
    Posts:
    8,768
    A few thoughts about this, based on ideas/experiments with this kind of thing in the past...

    Perhaps the node definitions and the graph could be represented as XML. The idea would be to separate the node editor from the execution engine. A node type could be defined as a list of the inputs, with names and data types, etc (as structured XML). The graph could then be represented as a list of nodes each with a type and a set of connections (again as XML). Generally, the node types and the graph would be defined in a completely abstract way. Then, the execution engine would read in the XML and generate code accordingly.

    The reason for this is that it would be possible for anyone to create their own node definition file, construct a graph from these nodes using the editor and then write code to interpret the XML any way they liked. The most obvious application of a node graph is for coding, but it could just as easily be used to define magic spells for an RPG, a decision tree, or whatever. Also, the XML could be generated outside the Unity editor, so it would be possible to create higher-level tools for specific tasks.
     
  47. rytis

    rytis

    Guest

    Joined:
    Jul 11, 2008
    Posts:
    138
    Why the complexity? What would it accomplish that creating nodes in C# or Java code would not?
     
  48. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    Ouch no...

    ...Virtools, period. What Rytis has going on here is very similar and that system works rather flawlessly.

    Besides the point is to reduce complexity for non-programmers; not another abstraction to creating yet more code. Anyone interested in this would rather submit to the visual programming paradigm, and besides, a graph as a list? Kind of defeats the purpose as the presentation for creating code visually are just as important as the code itself. Quest3D for example I find highly unintuitive versus Virtools and both are fairly similar. Q3D reads bottom to top whereas Virtools reads left to right...so even in THIS space how the graphs are arranged make or break a system like this. Kismet (Unreal 3.x) and Flowgraph (CryEngine 2.x) are also left to right with slight deviations...
     
  49. zumwalt

    zumwalt

    Joined:
    Apr 18, 2007
    Posts:
    2,287
    I would just be interested in the original skeleton model you started with to make the interface. This way I could go down a different path with my AI from code blocks to visual blocks like you have done. I have zero clue how to make a graphical interface for Unity like this.
     
  50. rytis

    rytis

    Guest

    Joined:
    Jul 11, 2008
    Posts:
    138
    I guess you know about Behave library (AngryAnt.com)? It is targeted specifically for AI development.