{"action":"created","issue":{"url":"https://api.github.com/repos/godotengine/godot/issues/17795","repository_url":"https://api.github.com/repos/godotengine/godot","labels_url":"https://api.github.com/repos/godotengine/godot/issues/17795/labels{/name}","comments_url":"https://api.github.com/repos/godotengine/godot/issues/17795/comments","events_url":"https://api.github.com/repos/godotengine/godot/issues/17795/events","html_url":"https://github.com/godotengine/godot/issues/17795","id":308931733,"number":17795,"title":"Feature: Event Sheet style visual scripting","user":{"login":"blurymind","id":6495061,"avatar_url":"https://avatars0.githubusercontent.com/u/6495061?v=4","gravatar_id":"","url":"https://api.github.com/users/blurymind","html_url":"https://github.com/blurymind","followers_url":"https://api.github.com/users/blurymind/followers","following_url":"https://api.github.com/users/blurymind/following{/other_user}","gists_url":"https://api.github.com/users/blurymind/gists{/gist_id}","starred_url":"https://api.github.com/users/blurymind/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blurymind/subscriptions","organizations_url":"https://api.github.com/users/blurymind/orgs","repos_url":"https://api.github.com/users/blurymind/repos","events_url":"https://api.github.com/users/blurymind/events{/privacy}","received_events_url":"https://api.github.com/users/blurymind/received_events","type":"User","site_admin":false},"labels":[{"id":73330068,"url":"https://api.github.com/repos/godotengine/godot/labels/feature%20proposal","name":"feature proposal","color":"1144ff","default":false},{"id":419752642,"url":"https://api.github.com/repos/godotengine/godot/labels/topic:visualscript","name":"topic:visualscript","color":"ffdd44","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":27,"created_at":"2018-03-27T11:37:22Z","updated_at":"2018-03-27T21:35:54Z","closed_at":null,"author_association":"NONE","body":"We currently have a visual scripting system similar to blueprints in Unreal - connecting nodes.\r\nThe proposal here is for a second visual scripting system, that is similar to event sheets in Construct 2 (proprietary), Multimedia fusion (proprietary) and Gdevelop (open source)\r\n![11](https://user-images.githubusercontent.com/6495061/37964468-81886d54-31b9-11e8-9ba5-555123ad1fc7.jpg)\r\n\r\nIt is a very different approach from the one with blueprints and people learning to program are still requesting it on facebook and other godot community forums\r\n\r\nWhat is an event sheet visual script in the other engines:\r\nhttps://www.scirra.com/manual/44/event-sheet-view\r\nThe event sheet is pretty much a spreadsheet with two columns - a conditions column and an actions column. Both columns can be populated with logic blocks from nodes and their children that the sheet is attached to (node methods). On the left column the user can only attach conditional methods, on the right - only action methods. This clear divide makes for a very easy to learn way of setting game logic. \r\nOn top of that the user can use expressions in both columns - so potentially use gdscript for more specific instructions. \r\n\r\nRows can be nested under other rows (called sub-events), can be commented, disabled or re-enabled (just like commenting code) \r\nhttps://www.scirra.com/manual/128/sub-events\r\n![subeventexample](https://user-images.githubusercontent.com/6495061/37964565-da595506-31b9-11e8-8d9c-03f7f1944307.png)\r\nSome actions/condition blocks can be negated\r\n\r\nFunctions that can take parameters can be used as well, by using a special function condition block and nesting conditions/actions under its row\r\n![image28](https://user-images.githubusercontent.com/6495061/37964431-5b118958-31b9-11e8-9a81-2a56ac99c88a.png)\r\n![modifiedcheckmatches](https://user-images.githubusercontent.com/6495061/37964409-4a2fafa2-31b9-11e8-8fee-ac374bb4996a.png)\r\n\r\nSo What are the advantages over our current visual script:\r\n- It is an alternative style of visual scripting with a big following - a quick look at the number of users of construct 2 and the number of succesful 2d games made with clickteam fusion should be a good enough indicator. It has also been requested on Unity forums too\r\nhttps://feedback.unity3d.com/suggestions/create-a-visual-scripting-for-begginer-like-construct-2-or-behavior-machine\r\nhttps://feedback.unity3d.com/suggestions/visual-scripting-based-in-event-sheets-as-construct-2\r\n\r\n- It is easier to learn and arguably clearer for non-programmers\r\n- An event sheet can pack much more information of the game logic on one screen than blueprints - less scrolling and panning to get the information. Less wasted empty space between logic blocks. You can technically just take a screenshot of an event sheet and share it to show someone else how to do something.\r\n![6708 image_2e2b4e43](https://user-images.githubusercontent.com/6495061/37964332-fc3ed1a6-31b8-11e8-82d8-835ea0c2ce00.png)\r\n\r\n- It is easier to transition learning from event sheets to scripting - because it's more similar to scripting    than blueprints\r\n\r\n- Why is it easier to learn than blueprints - the clear divide of condition and action and obvious order of execution. The user gets a filtered list of things to do on the two columns.\r\n\r\n- Logic blocks are easy to quickly read/find because they have icons. Most nodes in godot also have icons - they can be reused for the event sheet implementation \r\n\r\n- Less clicks needed to get things working - no need to connect nodes or move nodes on the blueprint table.  You just add or drop logic blocks in the cells. No need to pan at all- you only scroll and its much less.\r\n\r\nIn any case, I am writing this proposal not to say that one system is better than the other - but more with the hope of sparking interest in developing an alternative to our custom visual scripting approach - an alternative that is popular amongst people learning to code and that is a great transition to gdscript - as I found out from first hand experience "},"comment":{"url":"https://api.github.com/repos/godotengine/godot/issues/comments/376683768","html_url":"https://github.com/godotengine/godot/issues/17795#issuecomment-376683768","issue_url":"https://api.github.com/repos/godotengine/godot/issues/17795","id":376683768,"user":{"login":"girng","id":36117592,"avatar_url":"https://avatars0.githubusercontent.com/u/36117592?v=4","gravatar_id":"","url":"https://api.github.com/users/girng","html_url":"https://github.com/girng","followers_url":"https://api.github.com/users/girng/followers","following_url":"https://api.github.com/users/girng/following{/other_user}","gists_url":"https://api.github.com/users/girng/gists{/gist_id}","starred_url":"https://api.github.com/users/girng/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/girng/subscriptions","organizations_url":"https://api.github.com/users/girng/orgs","repos_url":"https://api.github.com/users/girng/repos","events_url":"https://api.github.com/users/girng/events{/privacy}","received_events_url":"https://api.github.com/users/girng/received_events","type":"User","site_admin":false},"created_at":"2018-03-27T21:35:54Z","updated_at":"2018-03-27T21:35:54Z","author_association":"NONE","body":"\r\n\r\n@blurymind i admire your energy and you make good points. i've tried event sheets in construct  before and they are were cool at first, but the more advanced my game became, i instantly wanted to go back to code.  so yes, i have tried them in the past. \r\n\r\n@groud  makes a good argument about them, as Marvel Heroes was a AAA aRPG and they used blueprints w/ **Unreal**. \r\n\r\ni don't disagree they have their use cases, i just think it will be hard to justify, based on the following criteria: \r\n\r\n- limited dev manpower\r\n- amount of current issues already\r\n- disorganization / hard to read (see [here](https://user-images.githubusercontent.com/6495061/37964409-4a2fafa2-31b9-11e8-8fee-ac374bb4996a.png))\r\n- i feel most godot developers would rather use gdscript\r\n- gdscript ties so nicely with godot already\r\n- **if added to core**, new issues could arise surrounding the event sheets, which could take away from gdscript issues  \r\n- not fair to the current 90% of godot devs using gdscript already (if dev time could be used for jit-compiled gdscript, which fulfills active use cases)  \r\n\r\nas a plugin i could  fully support, but my heart is saying it might not be a good idea if it's officially supported"}}
{"actor":{"display_login":"girng"}}