Learning from past mistakes
by Nick
I’ve always thought it would be cool to write my own RPG like Wasteland. I really liked that game. Over the years I’ve had two “almost there” attempts at doing this. Once was in C/C++, and the other was in Java.
Both times I insisted on implementing everything from scratch. Well I kinda had to with the C/C++ version, I was pretty green and didn’t think to look on the internet for examples. But I feel I learned a lot by figuring out stuff on my own.
Both the C and Java version were dropped because I would hit a wall that I didn’t know how to get around. I always felt bad about that, it was like I quit just because it got to be a little bit difficult. That and I was cutting my teeth on design and architecture issues, and that’s always painful.
I decided this time around, I was going to do things differently. Java seems to be such a bear to work with for games, and C/C++ just doesn’t appeal to me right now. Python, it seemed, was a good choice. I found some code where someone had done something pretty close to what I was wanting to do. So I downloaded the code, and played Wasteland a bit and found the quick differences between the two.
I’ve started modifying the code of NotHack to try and make it more like Wasteland. And so far, I’m amazed at what I’ve been able to do. In one weekend I feel I’ve done more productive work than I ever have on the other two (in the same time frame). And the funny thing, is it isn’t because of python (I’m still learning the language as I go), but rather because I’m taking someone else’s framework and modifying it to do what I want. That’s really a mind blower for me, I’ve never really thought like that before.
So the lesson I’ve learned here is to work smarter not harder. If someone’s already invented the wheel, I’m going to work hard to resist the urge to create fire, mine ore, smelt down the metal, cut down some lumber, and bring all the pieces together in the hope that it will make a wheel. That much effort just isn’t worth it when all I need is to slap a new coat of paint on the already-invented wheel… ;)
tags: