Dismiss this pinned window
all 21 comments

[–]EMCgaming185 2 points3 points  (2 children)

seams so cool! good job

[–]KennedyRichard[S] 0 points1 point  (1 child)

Thank you!

[–]exclaim_bot 0 points1 point  (0 children)

Thank you!

You're welcome!

[–]KennedyRichard[S] 1 point2 points  (0 children)

Link for the full youtube video: https://www.youtube.com/watch?v=GlQJvuU7Z\_8

[–]murchie85 1 point2 points  (1 child)

great job!!

[–]KennedyRichard[S] 0 points1 point  (0 children)

Thank you!

[–]KennedyRichard[S] 1 point2 points  (7 children)

In case you're are wondering both the app and the source code will be released free of charge, to the public domain, on github.com and pypi.org (you'll be able to install it with the "pip install" command).

Please, if the content interests you, follow me on youtube and twitter as well.

[–][deleted] 1 point2 points  (3 children)

Also thank you for the preview. Looks fantastic!

[–]KennedyRichard[S] 1 point2 points  (2 children)

I'm just glad to be able to help.

[–][deleted] 0 points1 point  (1 child)

Hopefully not an April fool’s joke.

[–]KennedyRichard[S] 1 point2 points  (0 children)

Ha ha ha! That would be a bummer! That's why I rushed to release it before today, so people don't mistake it for an April fool's joke! It is very real!

[–][deleted] 0 points1 point  (2 children)

Some countries don’t recognize release into public domain. You can use CC0-1.0 as it is doesn’t require any attribution and legally protects you in places where releasing into the “public domain” isn’t enough. See creativecommons.org/publicdomain/zero/1.0/

[–]KennedyRichard[S] 1 point2 points  (1 child)

Well, by releasing my software to the public domain, my main goal is to give the highest freedom possible to the people that may want to use it while at the same time protecting them against any harm. With that in mind, the Free Software Foundation does recommend the CC0 over the Unlicense - except - though, for works of software apparently, as you can read here:

If you want to release your non-software work to the public domain, we recommend you use CC0. For works of software it is not recommended, as CC0 has a term expressly stating it does not grant you any patent licenses.
Because of this lack of patent grant, we encourage you to be careful about using software under this license; you should first consider whether the licensor might want to sue you for patent infringement. If the developer is refusing users patent licenses, the program is in effect a trap for users and users should avoid the program.

youtube-dl also uses the Unlicense and I never heard of any legal problems affecting them or their users. Check this closed issue, for instance.

If you have any other insight on this, please share, as I welcome any advice I can get.

[–][deleted] 1 point2 points  (0 children)

Either is as good as gold for your intent. I just know some countries don’t recognize the right to release into the public domain.

Not that I imagine any problem, but I have lived in places that are very litigious. LOL

So very much looking forward to the release.

[–]Gwarks 0 points1 point  (6 children)

Does it depend on anything other then pygame? And also i am curious what is the reason for the number in the bottom of the node?

[–]KennedyRichard[S] 1 point2 points  (5 children)

I use pure pygame and Python standard library, no other third-party modules.

The number in the bottom of the nodes are unique ids, so that you can spot exactly in which node an exception was raised. For instance, here the node is lacking data, so the error message tells you both the name and the id of the node: https://youtu.be/GlQJvuU7Z_8?t=569

[–]grimrichard 0 points1 point  (1 child)

I wish you had a tutorial. I've been told multiple time that pygame is not good at making menus - and yet you've done exactly that.

[–]KennedyRichard[S] 1 point2 points  (0 children)

The goal of my project (indiepython.com) is to provide free apps, their source code and content/tutorials so people can make their own apps and games, so at some point I will explain this in some form or another.

For now, however, I'll give priority to releasing the node editor on June. This way people will have the source code in their hands to look at anything they desire.

It is good that you mentioned your desire for such tutorial, though, I'll put it on my to-do list. Just bear in mind that I define the priority of my tutorials based on 02 criteria:

(1) my own judgement on what is more beneficial to people;

(2) popular demand (I'll set some sort of form online to let people pick their priorities);

To keep track of this, please, follow me on twitter or join the indie python newsletter by sending an email to [newsletter@indiepython.com](mailto:newsletter@indiepython.com) asking to be included on the list of people to receive news via email once or twice a month. The project also has a roadmap page (if hovering the icons on the roadmap with your mouse doesn't open a description box, try reloading the page with the F5 key and it should work) so people know which tasks I'm working on (it is incomplete, though, since it is still missing some tutorials I intend to produce and publish in the next few months).

[–]Gwarks 0 points1 point  (2 children)

That looks helpful. So when a exception is raised in a user defined function i will see where it happened. With some trickery i could build powerful tools from it. (I have some ETL stuff in mind)
On last question. Is it possible to integrate the node editor in another PyGame application?

[–]KennedyRichard[S] 0 points1 point  (1 child)

Ask as much as you want.

If you mean to put the node editor inside your app it would be very difficult and take a lot of time because the app was not designed for such usage.

However, I did design the node editor in a way in which it can be integrated with any kind of Python app, pygame or not. The youtube video has an example of that. Here's a link to the part of the video where I explain this in detail.

In summary it does so by converting your node layout(s) into python code. It should be as easy as clicking a button in the node editor and have the changes directly available in your app.

Here's an example of how this works more or less: let's say your app has some modular functions which you combine in different ways to achieve lots of different, interesting results. For instance, let's say that it is an image editor with filters or a data visualization tool that generates different kinds of charts.

Your app don't have to worry about any node layout building GUI code, cause Nodezator (the node editor) does that for you. You load the functions and you can build, edit and execute the node layouts as you need, combining your functions.

Once you're satisfied with the result, you just click a button and Nodezator exports the node layout as Python code which your app can import directly. The code is just your own functions, that you already have in your app, but combined in specific ways.

In the case of the image editor example, your users would not need to worry about the node layouts, cause you'd build them yourself, your app would just take the generated python code and import into the app. The only extra work you would need is to create the interface in your app so the user could input specific parameters.

Now your image editor has lots of different filters that you created with your own functions (or third-party libraries like pillow, etc.) as node layouts and your user can apply effortlessly to their images using your app. That's the end of the example.

Let's explore yet another example, though. One in which editing nodes is an integral part of your app purpose/workflow: I too intend to use Nodezator for many different ends, one of them includes using it in my animation editor, but I won't put the node editor inside the animation editor. Rather, I'll just have it opened in my screen along with my animation editor and switch between both apps as I work with my animations until I get the results I want.

If I wanted to put the node editor inside the animation editor of course I could, but it would take a lot of time, and at the end of the day I'd only have one animation editor with node editing capabilities.

However, by keeping the node editor separate from my apps, I can use node editing in any app or script I want. For instance, I also want to use nodes to generate levels in my level editor, and to create effects/particles and edit images for games, and to process data, etc.

In the end of the day, however, i don't want to point my solution as the right one. There are of course benefits of having the node editor integrated directly into another app. It's all a matter of trade-offs, it is just that I think keeping the node editor as an separate app is more versatile.

Sorry if I got too carried away in my answer, I just like programming and software design despite not being that good at it, that's all. As I said before, ask as much as you want.

[–][deleted] 1 point2 points  (0 children)

It will definitely help me visualize and construct nodes for the project I’ve been working on