I think I’m getting the hang of Java. It just took some research to understand what a few of the words I didn’t understand were. For some reason, the book i was using just never explained things like why you start a main class with “public static void main (String[] args) {” (Or whatever it is. I’m typing from memory).
My new approach is better: I picked a book that wasn’t as dry (I always have luck with O’reilly, and probably should have started with them), and I ask a lot of questions. I’m only now at the beginning of actually creating and using objects, but unlike with the last book, I get it, and I feel compelled to keep going. That is awesome!
I was asked the other day why I feel compelled to write a roguelike. Honestly, I don’t know. I’m into them to some degree, but I’m not a hardcore player or a fanatic. I don’t know the differences between Angband variants, nor have I ever beaten the more heavy number crunching ones (Nethack).
I think what I like about playing them though, is that they work for casual and hardcore gamers. If I play World of Warcraft casually, I’m always behind the hardcore players. Even if they have a character at (or lower than) my level, they have heirlooms and gold from the higher level characters that I don’t. This is ok, but it does discourage casual play, since I know that as long as I have a sex-life, I will not have all that cool gear. If I play ADOM casually, I’m part of the general crowd who might have a lucky win or two, but generally isn’t getting their 1000th lawful crown, or slaying the ElDeR ChAoS GoD for the bazillionth time. The random nature of this game means that even those hardcore players won’t have a huge lead over anyone playing as long as them, and the short lifespan of characters coupled with no meta-game or interaction between your other characters means two players at the same level are not severely mismatched.
I also like the relative freedom. In Crawl, you have tons of options, and the game does have only one ultimate path, but so much of it isn’t linear (I can clear the hive now for the XP, or wait until I need the food and have more poison resistance later). This is why I explored every nook and cranny in Oblivion (I think): because I could. On the other hand, I’m under no delusion that an hour of horse-riding between towns might be considered an hour of gameplay.
Back on topic though, I still have a lot to do before I can even begin any sort of development. I have to decide how this is going to work, for example: Is the screen just an object that calls a drawScreen() function? That might be best, but that isn’t the only possible way to handle displaying events on screen. Maybe the screen is drawn once, and the entities show up on top of it, only moving themselves when neccessary. I’m like a little kid looking at a huge blank paper, holding a huge box of thousands of differently colored crayons. I can make anything, but the hardest part is drawing that first line. Ruining the perfect cleanness and clarity of that paper in a way that I can only hope makes it better.