Michael Pidde => { Programmer(); }

Changing Direction

I've tagged v0.03 of my game, though there will be no download for this version on the downloads page. It's mostly minor map editor changes; I now have the ability to click and drag to paint a rectangle of tiles on the map, and there are a few minor fixes to auto generate the next map ID and show select boxes where applicable instead of text inputs.

From this point onward my focus will be to start rewriting the game in C++. While I wanted to gain a functioning skillset in C, it's untennable trying to write a game in it when we have more modern language options that allow the use of object-oriented techniques. Yes, clearly I can continue down this path and write a fully functional game in C, but what is the tangible benefit to me other than a headache once I begin adding more advanced functionality? Right now the codebase is rather small, but so is the in-game functionality. But the code does not feel as well-organized as I know that it could be. Therefore, I've started reading through Bjarne Stroustrup's The C++ Programming Language, Fourth Edition with the intent of updating my admittedly elementary C++ knowledge and iteratively rebuilding my game engine. I probably will not have any new builds published for a while.

Another shorter tome that I've been reading through is Robert C. Martin's The Clean Coder: A Code of Ethics for Professional Programmers. Thankfully I was able to grab it for around $17 on Amazon rather than the relatively steep cover price of $44.99. It's a good book, sure, but for a volume barely capping 200 pages it seems too steep a mountain of lucre. Anyhow, the premises that he puts forth are insightful and worth a gander. He also seems to have an undying love of TDD, so I figure I'll learn more about that; the rationale that he presents seems to be solidly logical. To that end, I'm intending on whipping together a minimal-functionality Todo List web app with a REST API in PHP, an Angular front end, and the requisite code tests to make it properly test-driven. I figure that this wil be good practice and will stretch my understanding of development techniques to a good degree which is something that every programmer should do every so often.

Coming in the mail in the near future will be Design Patterns: Elements of Reusable Object-Oriented Software by the Gang of Four (not the Chinese Communist ones). This will be a good refresher on the design patterns that I'm already aware of as well as add a good number to the list, I'm sure. There's no good reason not to be able to speak in terms of design patterns if you're a programmer in an object-oriented environment. I've previously worked through the O'Reilly Head First Design Patterns book which is pretty good, so I'm hoping this GoF book will be more detailed and have more patterns.

Code Stats

Language                     files          blank        comment           code
JavaScript                       1            225             86           1224
C                               12            177             87            918
C/C++ Header                    15             85             49            563
Lua                              1             11              6             73
PHP                              3              2              0             40
Bourne Shell                     1              5              0             14
DOS Batch                        1              6              0             13
make                             1              0              0              3
SUM:                            35            511            228           2848