It's been about a month since my last update, and so so so much has changed over the last few weeks for both myself and for Hazordhu!
The first thing that I want to share with everyone is that I am now, until the end of February at least, able to work full time on Hazordhu. But wait! Which Hazordhu?!? It's been a bit hectic getting things sorted out, but the dust has settled. The 3D project is still on the table, but it's been shelved pending development on Hazordhu Classic, or now simply: Hazordhu. To put it simply and be blunt about it, I'm working full-time on the 2D version of Hazordhu, and boy have I been working on it.
Since the middle of December, the change log has filled up, and filled up fast. I've published over 120 changes, fixes, additions, and tweaks to the game in the last 30 days, as well as been moving ahead at full speed to up the online presence of the game. We've seen the community grow quite a bit over the last month, and it keeps growing bit by bit every day. Maybe soon we'll be able to take over the world?
The few most apparent changes to the game will be the massive changes to the UI, the lighting system, and shadows. I've also fine tuned some gameplay, but I'll dive into that afterwards.
First up: Lighting
Hazordhu now has a performant lighting system. While the current status of the engine it's made with doesn't allow us any feasible means of proper shadows and raycasting, the current effect does add a lot of atmosphere to the game. Currently on the development server, we're running it on a 3 hour cycle. I like this limit, it gives a decent amount of time in each of the times of day, and makes the dawn/dusk transitions nice and gradual without being too drawn out. A nice little tidbit is that the light sources have a few simple settings that I've been using to create a bit of drama and atmosphere with certain objects and regions. Very nice.
Next Up: Shadows
Coupled with the lighting system, we have some realtime shadows. Currently these babies are coming only from the overworld light, but we did do what we could with the current system to make it a very satisfying addition to the game, and not have it be a distraction. Cave entrances, for example, will cast light into the cave, that has the same brightness as the world outside. So if it's night time, caves are even darker as well, and the exits are harder to find.
Third Thang: AI
I've been working pretty hard on redoing the AI for the game. While the current system is great and it serves its purpose, I've been noticing some performance issues in larger scale engagements, and some less noticable side-effects doing my regular checks on the game profile on the dev server. Obviously, we want the game to be as performant as it can be. Not only that, but it's not the easiest system to expand upon the way it's currently done up. So, as I develop the new system further, which will use a collection of objects instead of a single (clunky) script, I'll probably do a more in-depth write-up, because the new system is very cool, and the early tests on it are very promising.
Quick note though, to the player, there won't really be much of a difference in the way the new AI operates over the current system, aside from it being marginally smarter (unless I myself get more than marginally smarter in the meanwhile)
Finally: The Map Save
For it's entire existence, Hazordhu has been privy to a single source of server hangs. It's ran on a 30 minute timer and gets worse as time goes on. Well friends. Consider that Flargl slain. Hazordhu is now sporting a brand spanking new system for saving the map and the items on the map.
The new system runs in the background and is (almost) constantly maintaining a curated list of objects to save and where, and once it's sure the user is done with them, it saves them in realtime. This means less data going into the queue at a time, which means faster writes, which means no more hangs... At least in my closed tests!
I will admit though, the old system was tried and true, and had many contigencies worked into it. Some were the result of necessity, others of poor design and back pedaling. The new system, while it's a bit more robust and accounts naturally for a lot more cirumstances, it's a brand new system and the sheer depth of Hazordhu makes it impossible to test all of this out on my end and not go crazy after the first 2 weeks of just saving and loading and saving and loading and saving and.... You get the picture. But, this is why we have a Dev server! So, apologies if there are any unforseen issues there.
That's (not) All For Now!
There is a lot more news coming your way, and I'm going to start a daily journal of what I set out to do in a day and what I actually end up accomplishing, in order to keep better track of my productivity. Maybe, just maybe, that might turn into a weekly dev blog here? Time will tell.
Until next time, Happy Roleplaying!