The Spaghetti Machine is a custom editor for Unity. It allows editing graphs (for example state machines, dialog trees, flow diagrams or tech trees), simply by connecting panels with curves. It includes methods for importing and managing these graphs in your Unity application.
The runtime part includes useful mechanisms to import and manage graphs, such as :
Currently collecting money just because I love the video
And the manual is very well-written
And the interface design is very neat and beautiful
And the fork cursor when connecting a node in the editor is just plain brilliant
Actually, the Spaghetti Machine doesn’t generate code - it saves the graph as a file (with .bytes extension but actually it’s xml). You can then load the file and access all information in the graph from your scripts - no matterh whether they are written in C# or Jscript - using methods in SpaghettiMachine.dll.
FYI, I’m currently working on an update, including:
Mobile support (as requested by buffonomics), maybe simply by allowing importing a graph from a string,
The “Spaghetti Spy” which allows displaying a graph during runtime in the editor, with useful information about active panels, custom variables, potentials etc. This makes debugging much easier as you can actually see what is happening.
I’m not promising anything, but if everything goes smooth, the update can be submitted at the beginning of next week.
You are awesome. I loved your video as much as I loved the concept. Great job!
I’d like to add one concept to your madness. Instead of saving a “graph” you should save a “plate.” You can have multiple plates of spaghetti in your project, each serving its own special purpose. Also in keeping with your marvelous theme, the debug panel should not be a spaghetti “spy”, it should be a spaghetti “waiter” or perhaps a “cook,” maybe a spaghetti “consumer.”
@zencoder: I actually considered calling a graph a “plate”. I liked the idea (a lot), but eventually decided against it for the sake of user-friendlyness: When you speak of “graph”, most users will know that you’re actually speaking of the “stuff connected with lines”. But when you speak of a “plate”, they may wonder what you are speaking of. Thus, “graph” is less fancy but clearer.
[Edit:]When I wrote this post, I intended to adopt your second idea and call the edit window “Cook” and debug window “Waiter”. But thinking about it, the “waiter” metaphor is somewhat misleading: It gives the impression that this tool is necessary to get the spaghetti from the cook to the user, whereas it’s merely an optional debugging tool. Also, other metaphors like “consumer” and “critic” don’t really work (and neither does the initial “spy”). So I’ll stick with “editor” and “debugger” - again, sacrificing fanciness for clarity.
I will, however, keep the “kitchen table” and “tablecloth” backgrounds, as subtle visual metaphors, just as the spaghetti fork cursor used to connect panels.
What did you use to compile the spaghetti machine dll? Does the spaghetti machine work on windows and mac?
I think you should start a mini series on you tube about how a self aware spaghetti machine starts developing itself and eventually plots for world domination. It begins by simplifying or complicating human laws as it sees fit and lobbying to elect its own candidates funded by the spaghetti machine political action committee.
Is the “connecting nodes since 1892” a reference to William S. Burroughs adding and listing machine … the Burroughs Registering Accountant in 1892 for $475?
I compiled it with MonoDevelop. (All you have to do is to create a new solution of type “library”, then add the files you want to compile as references, and compile.)
It definitely works on Windows ^^. It should work on Mac, too, but I didn’t have the occasion to test the latest versions on a Mac (for lack of, well, a Mac). To be sure, I suggest you try the free demo on Mac - if it works, the full version will do as well.
I would love to say that, say, one of my ancestors was actually Burroughs assistant - but actually, the number 1892 was chosen arbitrarily. What a coincidence!
In version 1.1, we added methods SpaghettiMachine.LoadFromResources and SpaghettiMachine.LoadFromString which should theoretically make it possible to run the Spaghetti Machine on mobile devices. However, we hadn’t yet the possibility to test it. You can download and test the free demo - if it works on mobile devices, the full version will work as well.
(Actually, SpaghettiMachine.LoadFromResources was already in v1.0, I only forgot to put it in the manual. )
I love the ad and the video was just awesome cute:smile:
But, I find creating menus and state machine’s and such in Unity pretty straight forward… I’m not sure how this makes it easier, other than that it’s more fun to connect noodles with plates (until you get too tangled up)…
I guess this can be used to create a concept map app out of the box via Unity o.O…?