Search Unity

Data-Oriented Visual Scripting -- The Structure of a Language

Discussion in 'Entity Component System' started by awesomedata, Jan 31, 2020.

  1. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    As I have mentioned before (in this thread), I'm keeping some of my design work secret (on purpose) for now.

    I do have a couple of prototypes (as well as a separate one I am working on now), and of course plenty of mock-ups. However, none are fully representative of what I'm going for (or explain the necessary concepts I'm trying to show in the overall design), so sharing right now would only bring more confusion. (I say this because I've shown some of these unfinished bits to the UVS team, and confusion on what I was showing them was exactly the reaction I got). So, essentially, the important concepts still need to be "translated" first. I actually aimed to do this exact thing in my next post to clarify Lateral Programming (with a concrete, visual, example), so I needed special mockups for that anyway. I've just not had time to work them out (since this is sort of a passion project right now).
    To answer your larger question though -- The kind of visual scripting tool I want (ideally) is one that fully integrates the concept of both Data-Oriented Visual Scripting AND Lateral Programming concepts, in the same tool, with an easy to use, user-friendly interface that _visually_ describes all necessary concepts of programming logic laterally (and not just simply as the tool or language's semantics). I don't care how the tool looks or behaves, only that it follows these concepts closely when it comes to dealing with logic authoring and runtime performance.

    But just to be clear -- My goal (in this thread) is to battle-test and evolve these types of concepts (and improve my own level of communication of them) by trying to explain them to (and share some of them with) others here. This thread's goal is not to provide a whole Visual Scripting solution, or even parts of a single (particularly, my) solution, but to explain (and discuss) how and why these concepts and ideas are necessary to consider, as well as to potentially consider and discover new ones in order to assist in developing better Data-Oriented Visual Scripting solutions (in general) -- since ZERO solutions as of today consider Data-Oriented or Lateral Programming ideology in their designs.


    Remember, I'm an artist/designer first, programmer second. In general, I work through problems differently than most people due to the autistic slant to how I think. Since I don't work (or think) step-by-step like most people do, programming is mind-numbingly painful to me due to its heavily referential AND step-by-step nature. Trying to explain advanced concepts nobody's ever even heard of without detailed charts and mockups is very hard for me, which is why I'm working it out here to get it to the point where I can reference it all intuitively. Writing things out like this helps my brain to identify key elements (mostly to communicate), since my brain, by default, just values ALL these concepts together as (equally) important and naturally blends them together. Isolating is difficult for me. But I'm working through it anyway.

    That said -- I've got some killer features that make _my_ particular vision of scripting special, but I will need a great partner (particularly someone who is a programmer and loves ECS and data in general) and some funding before I can reveal that vision. I've definitely got some amazing things in store, but that particular prototype will be after the integration of Graph Tools Foundation (unless I perfect my design and other technology first and Unity drives me nuts with their flip-flopping on its release date).

    Personally, I really wanted to show-off these concepts in-engine with a working demo in Unity. However, Unity is taking their sweet time with their Graph Tools Foundation upgrade, so I decided to take this extra time to evolve a few details and make things a bit more user-friendly (and visually/physically more ergonomic) in my own Visual Scripting designs, before pushing my own solution(s). Part of that is making deeper concepts (such as Lateral Programming) more clear visually in my design (and therefore, more clear to others as to how to see or understand it).

    Since Lateral Programming is a difficult concept to convey fully with mockups or through UI/UX alone -- mostly due to there not being a huge visual difference between it and Hierarchical Programming and Referential Programming (which is what everyone besides me calls OOP), I'm trying to make Lateral Programming easier to understand and distinguish, conceptually, through a more purposed and nuanced use of visuals (which isn't an easy task) -- while I am waiting for Graph Tools Foundation.
     
    UniqueCode and NotaNaN like this.