DVD Training "Python Basics in Blender 2.6" - shall I begin or rather not?

Hi blenderheads and developers,

Today, I was just sitting there and suddenly I got an idea!?! :RocknRoll:
But I’m pretty unsure whether :yes: or not :no: it’s smart to do such a thing, so I thought, I’d ask you.

So, the idea is to create a video training DVD covering the most useful thing for blender, namely programing in Python. I found a few tutorials on the net about certain scripts and problems that are being covered, but I haven’t found any providing a solid basic introduction into the work with Python with all the bells and whistles that you need to be able to accomplish all the further tasks that might show up.

Now, do you think that it is a good idea to create this video training course?

I’ve created a small, rough dvd covercard how I imagine the design of the packaging:


Also if you don’t have critique only, but also something you would like to see in that course, other suggestions and hints, feel free to post them.
Until now, it’s just an idea I’d love to realize. Cuz I love Blender (ya know :o), its Game Engine, creating games and showing people how they can use certain things to get their wanted result. So, please be honest :slight_smile:

Thank you in advance!

I think its agreat idea, i to have found that there arent actually to many python tutorials(or video tutorials) that go from beginner, to someone that can start writing there own code. then again a small part of that would be my fault because i know python and only did one small beginner tutorial. When i learned i basically went to a site that provided a description of what each function does and through trial and error(and many questions on this forum) i eventually got the hang of it. sometimes though i will still look up the site to see if a function exists or what all that function can do.

I would be more than happy to donate code or maybe even video.

Either way i wish you good luck!

Maybe I am a bit outdated, does the proposed form - a videotutorial - fit best to this subject? Programming is thinking and writing, in the essence.

If you are going to show how to handle an editor and debugger - OK, this is an interactive job, well suited for a video. If you are going to show on a video sequence, what every Blender operator does, you have to make them short and tag them well with the keywords, at least. Otherwise it can be very long and very boring :). Personally, I do not like videotutorials, especially when the speaker just talks and shows nothing. (Never mind, maybe I am just a special case: even during my student years I avoided all lectures. It was easier and faster for me to read it from a book).

I think, that the most important thing in each tutorial is the proper example: the thing, you are doing, should clearly present all what you want, without any obstacles and side effects. It is not so easy to find it!

I basically like the idea, but I feel a problem in Blender Python. I think it is not advisable combination from logical perspective. Indeed it is quite poor programming environment.

Hey guys,

thanks for your answers. Great suggestions and remarks so far!

Right, that’s why I’d like to create some kind of “Beginners guide”. Though, I have to admit that e.g. the “Blender Gamekit” book was a great aid for my understanding of Blender Python. I would advise anyone who wants to learn it, to buy this book - the problem is just, that it was designed for Blender 2.49(oh, I just saw, that you’re using that version :slight_smile: ). The API didn’t change that much(I mean e.g. functions), but the naming did.
I think a video has much more possibilties to show certain processes and the final results. That’s why I decided on a video - and because I’m an A/V media designer of course :wink:

Yup, you will never know everything. There are always things you need to look up. For me it’s important to create the toolset of every single designer. So, that he knows where he can find important information and how to handle it (I need to explain terms like “KX_GameObject” and why this is good to know -> for the further use in other functions that is, for instance).

That’s very kind of you, thank you very much. I’ll see if I can get you into my project somehow, if I get a real good concept to really start it. It’s a pity that you don’t live next to me - that would make things easier. If I know how we can work together I’ll contact you :slight_smile:

Oh cool, a polish fellow. :slight_smile: Well I don’t think you’re outdated. I think it’s purely a matter of taste. I agree with you, that Programming is thinking and writing, tough I think one needs to learn it first. Some learn better from books and websites, others might learn better with audiovisual media (like me). From my point of view you are only able to think the way you have to and start writing if you know how to write. When you reached this stage, you can find your own way since you have the fundamental understanding of how Python works and where you have to use the information you found in the API Reference, for example.

Well, showing what every operator/function does is really what I’d like to do, because I think that a Reference in form of a video could be great for the viewer to know about everything. But I’m afraid it’s very time consuming and redundant information, since it’s written in the API Reference already. I think I’m gonna pick the most interesting functions and build an interesting example. What exactly do you mean with “tagging them well with the keywords”? Should this be exaggerated by the narrator or displayed in the video seperately?

That’s pretty understandable, but I also think that there have to be certain passages in the video in which the speaker must explain what he is going to do, since the programing process often involves a lot of thinking and theoretical concepts. But I’ll keep in mind to always show something - in planning phases for example the scribbling of the concept via a pen tablet or such.

One example I’m planning to include is a vehicle script. I just found one website that explains how to create a vehicle rig on your own in form of a code snippet some years ago. That why there’s a car on the DVD.
Further plans are to accomodate a networking script and some frequently asked for scripts like MouseLook, Emitter and Third Person Camera for instance. But this really depends on the complexity, since It’s supposed to be a beginners guide.

I think I got your point. You think that it’s uncomfortable to program within Blender since there’s no autocomplete function for example?! That’s certainly a downside. Even Blenders “Python Console” context with its better integrated toolset might not be a great solution. There have been attempts to develop a better IDE for Blender Python developers in the past (see http://pythonide.stani.be/ ), but I have to check if it’s good first.
Consider we find a good IDE implementation that works seemlesly in Blender - would your concern dissappear then?

Nice to see you all contribute ideas and feedback. Thank you!

Best wishes,
Adam

I use Eclipse/PyDev a lot (at least at home).

If you use the Python controller’s module mode, you simply save the file (eclipse) and restart the game (blender). The BGE uses the external file. Requirement: The file must be in the Python search path.
You just have to switch the focus between Eclipse and Blender. There is no need to to update the textblock in Blender (except you want to give your blendfile away ;)).

I have the auto completion installed in Eclipse/PyDev. But it helps not that much (compared to Java). I think this is because of the flexibly nature of Python. It makes it hard to guess what you might want to do as the options are nearly endless ;).

Eclipse/PyDev allows remote debugging (recommended for advanced users only :wink: )

Regardless of the IDE it is essential to have the BGE API open as Reference all the time.

In my eyes the current 2.5x API pages are very hard to read. As long it is like that - I suggest to use the 2.49 API. There are minor changes only (except mathutils). The Python 3 syntax has no influence on the API as far as I can see. It is even possible to write code for 2.49 and 2.5x.

I think video tutorials makes the most sense when you show how to use code that is already there. Which means it shows how to use it rather than how to write it.

I do not want to be forced to understand the details of code just to see what it does. I want know how I can integrate code/methods/setups into my project without changing it.
My opinion: Code that needs to be changed by the user - is badly designed. Do not teach such things. Better show how to configure it so it fits the user’s needs.