Damn you, Luke Hodorowicz
I knew I should have posted an update before the 18th.
Ever since it came out, I’ve been doing nothing with my free time except playing Banished. Even though I felt like I’d seen everything there was to see within the first 90 minutes of play, I’ve lost hours upon hours to this game.
There’s something really charming about it, even though it’s not cute or particularly stylish. Come to think of it, the entire game seems to have this sort of give-and-take dichotomy going on; the soundtrack isn’t shit, but it’s not something I would voluntarily listen to outside the game, either. The gameplay itself is both unassuming and brutal at the same time. A span of five minutes can take you from the zen-like calm induced by watching villagers go to and fro, to utter bewilderment and shock as a pending famine, looming unseen for years, finally kicks off and wipes out the overwhelming majority of your population, and then right back to that calm state again as you watch the survivors gradually crawl out of their forefather’s death spiral.
And that tendency to suddenly kick you in the ass is something I really like about this game; it makes no attempt to hold your hand at any point, and won’t tell you when you’re fucking up, with the exception of notifications triggered when you run low resources. It’s a little devious, actually; Banished will lull you into nice, calm place, and then savagely attack you as soon as it notices that you’ve let your guard down.
This is made all the more impressive knowing that this entire game is the work of one guy, Luke Hodorowicz. I can forgive the texturework, the models, and the sound design (none of which are anywhere near what would be considered “below average”, by the way) because the game itself works, and works damn well. Besides, all of the aforementioned improvement areas will undoubtedly be smoothed over by the modding community in the coming months, provided they can stop playing the game long enough.
Anywho, enough rambling.
Before the 18th, I put in a pretty fair amount of work. In preparation for keeping track of events which may occur hundreds or even thousands of years apart, I added a timestamp class and reworked the entire time system to use it, and I’m already seeing improvements in both performance and iteration speed. Instead of pulling the current date out of GameInfo and forcing it into an array held by another entity (adding a birthdate to a pawn, for instance), I can now just spawn a new timestamp with the entity in question being the parent, set it to the current time when it spawns, and then come back somewhere down the line and call something like Entity.Birthday.Compare(CurrentTime) to get their age down to the minute with a single call and minimal overhead.
I also have a rudimentary melee weapon in place; everything technically works, but it looks like absolute dogshit. I’m using a base UDK model at the moment, (even though I have one of my own modeled and ready to go), and the swing animation is something I whipped up in Max in a few minutes. I have a grand total of about five minutes worth of experience with AnimTrees, so the character now magically floats above the ground instead of walking when moving around.
I was expecting the easiest implementation to be first-person, but it turns out that the first person weapon viewmodel doesn’t translate as easily into the world as a thirdperson model that’s already in the world does. Of course, I could set up a firstperson model, as I had originally planned to do, but that would mean that I would have to essentially guess the path of the blade of the weapon through the world as it’s swung. I may actually end up doing just that, but for now, I’ve temporarily switched over to a thirdperson view so that I have a better idea of how the changes I make in code are working in the world.
I’ll post a full list of changes when I upload the monthly build near the end of this week.