Retroactive dev diary #1
Well, there I was, thinking I was going to do several dev diary entries about the small little game that I've been programming, and now here I am, making one when I already have a stable build. Although I already have improvements in mind, I should have documented my process from the beginning.
So suffice it so say, I'm a Gen-X'er (of the Xennial micro-generation), and I grew up with home computers and gaming systems such as the Atari 2600, Commodore 64, Nintendo Entertainment System, Super Nintendo & Sega Master System. However, my first experience with home computers, programming and gaming was on the Texas Instruments TI-99/4A computer. The computer was at my grandparents' house, where I walked every Thursday and Friday after school.
Suffice it to say, there were games available for the computer that were stored on cartridges. One of those games near and dear to my heart was one called Tombstone City: 21st Century. It was an odd concept for a game (blasting aliens in an Old West town that are spawned by saguaro cactuses), and it was odd because the threadbare storyline originally had to do with nuclear fallout, and back in the 70's and 80's, nuclear power didn't have best reputation (Chernobyl, Hanford, Three Mile Island). So the powers that be dictated that that part of the story be purged, and the result is what we have today.
I wanted to try and re-create the fun I had playing the game, as I did with my previous effort, which was a re-creation of a two-player space combat game called Stellar Triumph for the Commodore 64. I chose to program Stellar Triumph in C using the Orx engine, although like any engine, it essentially is very opinionated, with a certain way of doing things. Sometimes that way of doing things doesn't mesh well with your project, or your development style. I ran into that with Orx - a very solid engine to be sure, but it excels with certain genres like platformers, and I desired more latitude with certain tasks.
So, when I decided to embark on Tombstone City: 21st Century, I used the Go programming language and the Oak engine. I always wanted to try out Oak, and also burnish my Go programming skills. Yes, Oak was another engine, but I decided to give it a shot as it had a decent feature set (like particles), used Go, and didn't seem as opinionated.
It took me about a month and half or so to get to a stable & playable state with the project, and it has been difficult at times but the result (so far) has been satisfying. Interestingly enough, the original game was made with about 2000 lines of TMS9900 assembler, and my version approached that many lines of code as well. As such, I have a new-found appreciation of the O.G.'s who dealt with severe hardware & software constraints to bring their visions to life.
In my next few blog entries, I desire to go over such topics as basic cardinal movement, collisions, the "homing" algorithm, and the overall event & loop structure of the game, along with ongoing improvements. So if you feel so inclined, stay tuned! More to come....
Comments
Post a Comment