Wow, Zak’s got competition! Great speaking voice (those of us who speak in a monotone will always be envious), great pace, great content. Thank you VERY much to you, Lauren, and Zak for taking the time to make this series. I really liked the interaction between programmer and artist working towards the completion of the final product. I got a lot out of that part because it really helped clarify why, as a programmer, I would expose certain things to Blueprints. In the next programming series (fingers crossed), I hope you can take more time to go into more depth on the nuances of each of the UPROPERTY and UFUNCTION decorations.
I do have some questions and comments regarding the series:
Epic’s document on coding standards recommends that enums be put inside a namespace or empty struct, but you don’t and the format that you use is also different (i.e. you use the keyword ‘class’). That said, the way that you did it makes more sense to me and is more concise, so does it really matter which format I use?
It is not clear to me why you chose to implement the method GetCurrentState() as a FORCEINLINE function in the TutorialCodeGameMode.h header file, given that you don’t do this with any other getter functions. Can you explain why this function is different?
Your explanation of the difference between the DevelopmentEditor and DebugGameEditor options in Visual Studio is the best that I’ve heard so far (to date I’ve always run with DevelopmentEditor), but I’m still unclear about why you needed to change to DevelopmentEditor when Zak took over. I noticed at one point early on that if I started the editor directly from the launcher that the BatteryPickup class was not present as a class that I could inherit from. When I started the editor from Visual Studio, however, it was there. Are the two related?
You mention that if a particular include file is used frequently, it should just be added only once to the project, in the game module header (or that’s what I understood). It would have been a nice touch if you had actually done that (good practice for those of us who are typographically impaired).
I really liked the fact that both you and Zak left mistakes in the videos. It makes me feel a LOT less stupid knowing that even you guys make the kind of mistakes that I do. The fact that you were then able to turn those mistakes into teachable moments … wow, really well done!
Speaking of typos, when I was adding code to the TutorialCodeHUD.cpp file to create PowerLevelString, I wrote TEXT("%10.0") instead of TEXT("%10.0f"), i.e. I forgot to add the ‘f’ (I come from a Java programming background, not C++, so I’ve never used Printf). The net result of my mistake was that the power level did not display on the screen at all. I was thinking that you might consider in the next series (fingers still crossed, which is making it hard to type) deliberately introducing an error like this so that you can demonstrate actual debugging in Visual Studio.
Please add more programming videos. We have Blueprint tutorials up the wazoo, but not nearly enough C++ ones. Rachel Cordone’s book on programming UnrealScript, which created a simple game (much like you’ve done) was invaluable in jump-starting me into programming in UDK (and I just got there two weeks prior to the release of UE4 - d’oh!). This was a great series and I really appreciate the effort that you at Epic put into empowering me to do cool stuff. Thanks, you guys rock!