So I'm going to be making some C++ video tutorials. Don't judge - I know it's not the best medium for programming tutorials ;) However, it was recently pointed out to me that to open my game development blog up to a younger audience, some videos would help, since younger developers, new to programming, may not be too keen on a lot of reading.
However, I have seen the calibre of many of the C++ video tutorials on YouTube, and think it would be an awful shame if mine were to be seen to be spewing the same degree of misinformation as some of them...
Therefore, I wondered if perhaps anyone who has a spare moment could take a quick look and point out anything obviously wrong or unclear (or any other improvements if you so desire).
I don't have the time to watch them all right now, but in-case you already have, the biggest help (imo) would be video guides to linking to SFML in the various IDEs around. I'll edit this will some more helpful feedback when I get a chance to watch the videos. Visual programming tutorials aren't a bad medium, it's a lot better than reading the ISO standard :D
I agree - video tutorials for setting up SFML would be useful. It's theoretically simple, but I had problems myself at first and I am aware many other people have as well.
The videos I have linked now are for a C++ primer, rather than game programming itself. Since the videos are primarily to increase accessibility for new programmers and/or younger programmers, I thought I'd better start at the beginning ;)
In your introduction video, at 3:40 where you said "Lesson 1.cpp, that stands for code blocks project", you are wrong. cpp is a C++ source code file, not a code blocks project. I don't use code blocks, all I use is notepad++ and MinGW and using cpp still works. Not much of a big issue but sometimes it gets people directed into a wrong direction.
I checked the video at 3:40, and at that point I was making a project in Code::Blocks. The file I was talking about was the "Lesson 1.cbp" file, which is in fact a Code::Blocks project. I add a cpp file to the project 4:05, at which point I say that "cpp" stands for "C plus plus". However, when I think about it, "cbp" and "cpp" sound quite similar, so maybe I should clarify that point of the video.
I think Code Blocks is a good platform to teach from, especially since, well, you can get it on pretty much anything and it looks the same.
I'm gonna throw this out there though, I tried learning programming ages ago and I was put off by 'video tutorials' and interested by in depth (albeit boring) tutorials written in text. I've only found video tutorials that helpful when dealing with a visual medium, like a Blender tutorial for example.
Especially since most video tutorials are the same and go too quickly, not too hard to keep up but they rush through the finer points and only ever seem to make points about stuff all the C++ books point out for general interest but aren't actually all that appropriate in a video.
@xander333 Thanks :)
@Veltas Yes, I chose Code::Blocks over my personal favourite (MSVC) due to the portability advantage. In combination with SFML, that pretty much makes my blog portable across all the major platforms.
I've only found video tutorials that helpful when dealing with a visual medium, like a Blender tutorial for example
To be honest, I pretty much agree with you on this point, although come to think of it, my entry into OOP was via some C# video tutorials which were pretty good. As you say, though, a book is ultimately more in depth and detailed.
That said, making these videos shouldn't take too long, it can't be denied that it widens the scope of my blog series - a quick search on YouTube for C++ tutorials and a look at viewing figures shows that some people like videos for this kind of thing. I may as well attract those people to my blog series as well :D
Wow, this turned out great! The only thing I think of that you need to work on is the over use of the words "basically" or "simply" and compared to every other C++ Tut I've seen on YouTube that's not even worth mentioning. The audio had a solid flow, no breaks or pauses.
You explained each of the topics you approached as thoughly as a beginner can be expected to understand.
I worked a lot on my explanations in order that they be simple and functional, while hopefully not becoming incorrect as some of the ones on YouTube seem to have.
over use of the words "basically" or "simply"
I have never done video tutorials before, so these should hopefully start to fade out as I get a little more confident and experienced.
Do you write a transcript or do you make it up as you go along? Both have their advantages - a transcript eliminates the need for pauses or using "filler words" and ums and ers, but your voice might sound monotonous and you lose the conversation-like spontaneity of made-up speech. You could go in between the two and write a bare-bones transcript...
I make it up as I go along, but with the help of a list of "key terms", so I didn't end up caught on the spot thinking of explanations and calling Code::Blocks a compiler or something... I think there are still too many ums and ers though :P
At some point I might put the pdf of the key terms on my blog as a supplement to the videos, along with some exercises.
[edit] And if some part does end up with a bad definition, I just mute the audio in PowerDirector and rerecord it as a voice over. The sound sounds slightly discontinuous at the point of the transition between audio tracks, but it's easier than rerecording the whole video :)
If you take chrisname's idea, keep in mind bullet points can either be too detailed to read without pausing or without enough detail to make you think and pause. Good bullet points use broken english to get across the different points to make or steps to take without much thinking time.
@chrisname That would make sense. I think I will probably continue to use "key terms" and maybe also write a brief "lesson plan" with brief bullet points.
@Veltas Agreed - I don't want to just end up reading from a script :P I shall make sure that I can only possibly use my bullets as a prompt ;)
Turns out this is why I had to do all those school oral presentation exams XD
I'm rewriting my "Setting up SFML 2.0" post. Last time I had loads of screenshots with the buttons and options highlighted. Do you think it's worth it this time, or shall I just direct people to the videos?
1. You do not say what "source code" is. Suggestion - something like - "source code is the text from which your program/game is made". And then repeat "source (the text from which your program is made)" a couple of times.
2. You need to explain (one sentence) that your first c++ program consists of two files - one cbp and one cpp.
3. You need to explain the word compile. Something like "compiling is the first fundamental process in making a C++ program. For the time being you can think of "compile" as "making a program", although this is incorrect (in a way you will soon learn here)."
4. You are flashing text from time to time - it's way too fast - I couldn't read it most of the time.
Thanks for the feedback. I agree that explaining source code would be useful, and it would also be good to stress the difference between the source file and the project file.
As for explaining compilation, I am pretty sure I explain what the compiler does: "takes your program source code and turns it into executable machine code". I'm not sure whether that makes it obvious what compilation is or not... If I remake the video I might clarify that a little.
And regarding the flashing text, I wasn't sure if it was worth putting on at all. Do you think key points bullets are useful or not? If so I can make them a bit longer, but there are certain constraints as I have to pause the audio while they play, and I can't upload a clip of more than 10 minutes to YouTube.
The Key Points and\or bullets would be more useful in your comments section of the video I think. This would keep it out of the viewers way and let them read them without having to scan through the video.