Firstly; congratulations on a great tutorial series.
Reading about OO programming had given me an intellectual understanding of how it all worked, but it took this video series to give me a feel
for it. By the forth or fifth video I was predicting additions and changes, and by this tenth video the whole system felt second nature. You just don't get that from a book, and even the corrections and changes from video to video helped reinforce the way OO works and the mindset of a programmer to make good use of it.
I see you've begun using an underscore to identify private properties within a class, but aren't using that same naming convention on private methods. I've read that you should use an underscore for private methods and I've also read that you shouldn't, so I guess it's a personal preference sort of thing but I wondered why you used them on properties but not methods?
Another thing I've read about, from a coding conventions standpoint, is that you want to have as much of the code at the top level (not-tabbed) as possible. So for example, instead of:
- Code: Select all
You might go for something like this instead:
- Code: Select all
It doesn't help the functionality at all, but I thought it was an interesting tip for readability and flow and I saw a lot of places during the videos where it could be used.
I also wanted to ask about subclassing. Several of the classes in these tutorials, such as spritesheets, animation, fonts, and tilemaps, look like they could benefit from being subclasses of the image class, and animation/fonts/tilemaps could perhaps be a subclass of spritesheets. If I'm understanding this correctly, I think subclassing would simplify the code. Is that something you've considered?
I've been particularly keen on the tutorials that talk about the game code structure; where the different bits go, the game loop, frames per second, the singletons, and so on. I'm hoping to get a chance to write a game in a couple of months, a game where I will need to control the frames per second as accurately as possible, so I've followed that side of things with interest.
By the way, "angel" (from AngelCode) is pronounced ain-gel, not ang-gl.
Again, thanks for the great tutorial series. The only down side is that I watched five months of tutorials in less than a week, and I'm dying to see it ends.