The journey of a young Computer Science student as he goes from rags to riches or something. Follow our hero Bender as he sets out to design and program his first video game project which he has so lovingly titled "The Wanderer".
It's been nearly two years since I last contributed to this blog. Two years! My oh my, how things have changed. I can't say I've given this pet project the attention I wish I could. I still love this game the way I did on day one and there are still features I hope to implement. There's a major problem with that plan though. In the last two years I've formally learned many interesting and useful new skills.
Have I submitted to this blog before? It must have been some forgotten time because the sense of familiarity is but fleeting.
In one of my earlier posts, I mentioned that a lesson I had learned was to never implement flexibility for the sake of being flexible. In retrospect, I would like to modify that statement. Flexibility for the sake of flexibility still bogs down the development process with needless problem solving but flexibility for the sake of impending future addition is still important. A lesson that is becoming all to clear as I revise not only my wisdom but my code as well.
Modern video games are easier than their retro counter parts. The Brainy Gamer posted an article some time ago on the topic of problem solving in modern versus classic video games. He concluded that games today coddle and instruct far more than the games he grew up on, showcased by a modern generations inability to use their intuition to solve certain aspects of the game. Now, I don't want to drop the player into my game with no instruction, no understanding and expect them to have fun, but in a game about survival, exploration, and discovery, I want to leave some features a surprise.
One of my favourite games and big inspirations for this project is a game by Tarn Adams called Dwarf Fortress. The game includes procedurally generated worlds that are so detailed and rich that there's a game mode specifically dedicated to reading through the historical events of the kingdoms. This is the game that enlightened me to procedural generation (from here on called PG) which has quickly become one of my favourite aspects of game design and programming.
It doesn't seem to matter how much planning I do, I always end up needing to improvise at some point. When I started this project I promised myself a few things, one of which was that I would have very neat, organized, readable code with a very rigid design. Well, it's less than a week in and I'm already breaking promises.
I realize that I may have skipped some valuable explanation with my last post. Here I am blabbering on about my performance issues like a senior at his annual checkup and you have no idea how my code works! If you're going to read these articles then understanding the architecture of my code is going to be important. Luckily for you, I'm here to set things straight.