Developer Tutorials/Resources

Chances are slim this gets me anywhere except ignored, however here goes…

Would developers be so kind to consider investing some time to create some Tutorial material of working with Source code. Currently it is extremely difficult to understand how to even approach it. There are no docs and no materials which causes you to lose tremendous time blindly experimenting. Regardless of being Open Source this is more painful than working with a documented plugin API.

Obviously a well maintained reference system would be nice(far from being a must) however even 1 single DVD (in whole history of Blender) on working with Source Code can make tremendous difference. I do realize it gets outdated but it does not matter. Just explain the startup steps, RNA/DNA, customizing/creating modifiers etc - work your way from simple tasks to more complex that gradually explain more and more of the program.

Currently, regardless of OpenSource status, this door remains shut. It would be very nice if any resource is provided to help users(mainly artists) help themselves and contribute in general. Surely, it is a step in right direction.

Thank you for reading

A few years back, Campbell did exactly that. Have a look:

Thank you, it’s Excellent material!

It is still extremely hard to find on YT/Google (you only get the python results). Although the material is great, it only scratches the surface. A DVD filled with such material that is always on sale & sight would be invaluable resource for years to come. Currently there is a serious void in that department (docs/vids/resources).

@cgstrive

Regarding Python & scripting for artists, agree - more docs/tutorials/videos are needed.


Regarding video tutorials for C/C++ development…

I think this topic came up before, but I have to say I’m still quite skeptical of this as a primary way to learn about a new code-base.

There seems to be an attitude that there needs to be how-to videos these days, with the increasing popularity of video tutorials.

Is there any evidence this is even effective? Do other active/successful open-source projects do this?
(For developing internals, not simply how to use an API, which is a bit different).

If you want to get involved in software development you need to be able to jump into a new code-base and familiarize yourself.
So called “hand-holding” can only get you so far.

There are many approaches you can use… But you say - for example, that you wouldn’t know where to start…
When you check Blender’s code out you have years of history. Check the latest commit that touched code in a similar area.
If this is still way over your head, then you probably should be starting with smaller projects before tackling large changes.

I really dislike video tutorials, I find them hard to use, or to understand (especially if there is an accent involved). They make really bad reference material as it’s hard to go back and find that one spot where they talk about X. To do this with Blender internal complexities and with all the coding nuances on top of it, I think is a very tall order. Although this is probably because I’m an old fuddy-duddy. :wink:

[SUB][SUP]Typing this on a long train ride home after a comic convention dresses as the Joker. So please forgive any typos and fuzzy language.[/SUP][/SUB]

I can be an old fuddy duddy with some things, but I love video tutorials… for learning user interfaces. Seeing the mouse movements and keypresses as they occur during a workflow is amazingly quick for conveying how one uses software.

That said, I don’t think that applies to learning a code base (or even how to code). The subject matter isn’t visual and doesn’t rely on using certain keyboard shortcuts or mouse movements.

I find that reviews like this one are great for assisting developers get into a code base and I cannot see how a video would convey this information better or quicker.

The learning videos for Unity for example do a pretty good job to teach newcomers C#. And Youtube is full of tutorials for other programming languages too. So they have their place and their users. I wouldn’t see video tutorials as a replacement though, but as an addition.

I agree with these arguments however it does not really matter in which form the RESOURCE would be created - there is still a VOID right now that should be filled. Regardless the DVD remark was done intentionally:

  • it’s a lot more engaging and information packed - every single move is documented. Easier to follow and potential to mess up is far less than with text
  • it is a lot more artist friendly and widens the spectrum of audience (works for artists and coders)
  • it can be SOLD (DVD)
  • by being in store it would STAND OUT and always be IN-SIGHT. Query in YT or Google for Blender programming will always return Python not C. It is too difficult to find these resources.
  • it’s a very successful modern format (@cgcookie, @digital tutors scripting, @game engines) including with a lot of python tutorials for blender being done just like that. Artists are used to it.
  • It is potentially less time consuming to produce respecting the busy developers.

Once again my concern is mainly at lack of RESOURCE in whichever form developers/tutors would find it better to present.

We’re veering a bit off-topic here, but consider this: programming is a medium of words… quite literally a series of instructions written to a file. To program, you must write. If a person isn’t willing to read, programming will be difficult for him or her.

@cgstrive
Not sure I get your point here, are you saying that if there was a “Learn to code in C with Blender” video series, artists could be developing for Blender’s core? I think that’s illusory.

You seem to make this about language, but the difference is really one of scripting vs. systems programming. Many artists are indeed able to use the components provided by the scripting environment. However, they’re not used to building the systems that provide this environment in the first place.

I agree that a written tutorial on how to, say, add a modifier to the existing C codebase could help jumpstart a qualified developer. However, if you can’t figure out how to add a modifier from running Blender and reading the existing code, you are not qualified yet and you won’t be productive. To build this qualification, starting out with Blender is not a good idea, because that codebase is already way too advanced.

Thank you for reply Baron. I agree with you however I am not inclining the following:

if there was a “Learn to code in C with Blender” video series, artists could be developing for Blender’s core?
A well documented online reference would be ideal for both programmers and artists, at least accelerating the process of adaptation for whatever is their end goal. I would assume that this would be too time consuming to set up though and with ever evolving code would be hard to maintain. As such a simple video series was mentioned as most artist/user friendly medium that is fastest to produce and also can be potentially monetized.

The problem is not even C, the problem is wast amount of Blender code that could use an hour or two of introduction with some practical examples. So many users, artists could fix their own small bugs, experiment with ideas. For example it takes just a few minutes to make RadialArray(without center obj), it takes just a few minutes to fix bevel spiking. Would you rather have everyone whine about it on forums or share the wealth of experience you have accumulated and help users who might one day be in position to help others as well.

In a nutshell simply lack of documentation is the problem that should not be overlooked for open source software.

The problem is not even C, the problem is wast amount of Blender code that could use an hour or two of introduction with some practical examples.

But you already have the practical examples. You want to implement an operator? Look at how a simple operator works. You want to implement a modifier? Look at how a simple modifier works. All the functionality is already there, you just have to look at how it works. You have to get used to the codebase anyway. Maybe this could be helped with video tutorials, but producing those (especially at commercial quality) is not something many people can (or want to) do. I personally don’t like video tutorials for coding, at all. As far as I am concerned, a written introduction is superior, and some of that already exists.

So many users, artists could fix their own small bugs, experiment with ideas. For example it takes just a few minutes to make RadialArray(without center obj), it takes just a few minutes to fix bevel spiking.

I don’t believe that is true.

Would you rather have everyone whine about it on forums or share the wealth of experience you have accumulated and help users who might one day be in position to help others as well.

I personally don’t care either way. If people really want to become programmers and develop for Blender, there is nothing in their way besides their personal attitude and aptitude.

To note, working with Blender code involves more than just pulling the source and editing the files, you would also need to learn how to get all of the dependencies sorted and how to set up a compiling environment (which tends to be more difficult when working with massive programs like Blender).

Of course, tutorials for working with Blender’s code is useless if the user in question doesn’t know how to work with things like syntax, statements, includes, and pointers.

Thanks Fweeb. I scrapped a long & detailed post that basically boiled down to the above. I prefer just agreeing with you on this. :wink:

Thank you Campbell, it is nice to see the issue being taken seriously/constructively rather than dismissed.

With Blender being open source, a software with philosophy that it is for everyone - the “source” part is a bit exclusive and is lacking documentation. I feel that more favorable conditions can be created to welcome new users without discrimination (no matter if student, artist or programmer) to help them embark on that journey.
It goes without saying that ultimately it will boil down to willpower and working exclusively with source code deriving solutions from there. However regardless of experience and background, with such a huge codebase the initial steps will always be hardest and will require a lot of TIME(that people lack). These initial steps can greatly be accelerated by the wealth of knowledge and expertise that only a few people(such as yourself) can share. I am sure that many would be humble and grateful for that (regardless of format chosen).

Also, just as with Goosberry, professional production studio will require plugins/changes/fixes/customizations. These things might include artist specific tools, small fixes, working on I/O or long term R&D that can also benefit the community later on. Right now there are barriers that stop people even embarking on that journey. There is much that can be done in that regard.

Thank you again

@cgstrive,

I think most active Blender devs take this very seriously.

A problem we face is broad goals to “welcome new users/developers”, aren’t very tangible.

Ever since I got involved with Blender development, I always tried to make sure docs on compiling from source were up to date and valid (on the platforms I used). Added sections for troubleshooting, etc (other devs do this too of course).

I’d be interested to know about stumbling blocks, to getting Blender building and writing a small patch.
Note that we do get a lot of patches submitted, so enough people manage it. But we can still do better of course.


So rather then generalize, I’d like to hear from people who tried & failed, or tried and ran into problems that took a long time to resolve. Then we can see if those issues can be addressed.