As most have likely already noticed, development has been more or less stalled for the last nine months or so. However, that's not the case anymore since I now have enough time to work on LoS again at a reasonable pace. I'll be posting short status reports in this thread whenever I get something worthwhile done, which hopefully is frequently. The remainder of this post is the first status report.

Currently, the project is undergoing some changes in terms of how it's being developed. I'm splitting it into smaller subgames that are developed (mostly) independently of each other because, honestly, having all the stuff around is quite distractive and confusing. Reorganizing the project into smaller parts that have clear goals and quality metrics makes it much less confusing to develop, although some additional work is needed to modularize the Lua scripts. The subgames are described in detail in the updated roadmap.

The git repository is in a somewhat broken state at the moment since I merged all the changes from the terrain development branch to master, did some preliminary work on modularizing the scripts, finished redoing the player model (but not equipment) and incorporated some big changes to the character creation system. The new player model and the character creation system changes, which include constructing character textures by blitting face and equipment textures on the character skin, completed major tasks for the character subgame. Furthermore, the texture blitting feature has made content creation quite a bit easier since skin-tight equipment can now be done with just texture painting instead of requiring detailed modeling work like before.

My next tasks will probably be to redo some of the clothes for the new player model, as well cleaning up and modularizing the scripts until the subgames can be tested independently. Fixing the new terrain system and dropping the old one is also a high priority.

I got a good bit of code cleanup and modularization done last week. As the result, at least the terrain and object systems can now operate independently of the rest of the game, which made it possible to use them in the arena and character subgames. The subgames themselves are still very placeholderish: the character subgames is currently just the old character creator in a standalone mode, the arena is just a flat patch of terrain with a monster spawner in the middle, and the terrain subgame has just basic terrain generation with a movable camera.

Despite the cleanups, the Lua code is still horribly messy for many parts. I might end up spending quite a bit of time on further cleanups since I want the scripts to be reasonably easy to develop and maintain. At least the combat system needs a good beating soon since it's way too weird to be extended and polished for the purposes of the arena.

After about 30 commits worth of redesign and cleanup, the combat system is finally starting to make some sense. Standard melee and ranged attacks, monster specific attacks, weapon specific attacks and spell casting are all supported within the new unified action system, and the code is at least bearably clean and modular. Instant damage, effect-over-time damage, status modifiers, weapon enchantments and special purpose spells are supported by the new modifier system. There are also some minor usability improvements related to combat, such as the game warning you if you don't have ammo for ranged weapons or enough willpower for spells.

I will probably work on the crafting subgame next. In particular, I want to implement a user interface for enchanting weapons since enchantments now play a major role in spell casting. The current crafting system is mostly sane code-wise, so hopefully there'll be less fixing of old stuff and more of adding new things this time.

I got a crude enchantment UI written so it's possible to cast spells again. An enchantment table can be used for transforming a weapon into a spell casting object. Like in the old spell system, multiple spell effects can be combined into more powerful spells, but the system is hopefully a bit easier to use this time around.

I also tried to improve the usability and theming capabilities of the user interface. The GUI is now scrolled by moving the cursor to the top/bottom edges of the window, and the current menu is closed by moving the cursor to the left edge of the window. Some submenus also pop next to the parent menu in order to eliminate annoying stage changes. The GUI theme was also remade using an easier to customize widget drawing scheme.

I have spent about a week idly designing and coding a proper hidden face removal algorithm for the new terrain system, and it has finally gotten to the point where it's somewhat usable. There are still a couple of bugs left that cause some faces to be removed incorrectly, but I'll take care of those eventually. The terrain algorithms are by far the most frustrating part of the project coding-wise, so getting this one mostly working is a major relief to me.

I have been working a bit more on the terrain system. Mining and building work again so it's not far from being as good as the (now deleted) old terrain system. The building subgame was also made minimally functional in order to help with testing.

While trying to make the terrain system more versatile, I sidetracked a bit and coded an animated grass effect for it. It's relatively pointless but actually took just a few hours of work, and I think that it looks decent compared to bare, undecorated terrain.

Yeah, that'd be an option, but I'll probably just end up labeling it directly as 0.7.0 when I have the semi-fatal bugs fixed. I'm too lazy to do the release work twice, and a minor difference in the release date and bug count doesn't really matter when the last release is over a year old and there are so many bugs that it'd take a couple of months of end user testing to make it usable.

I got most of the bugs fixed that I wanted. Things are still somewhat broken but probably good enough for a release.

If I got enough time in the weekdays, I'll try to do the packaging and publicity stuff earlier, but it probably won't be ready until the next weekend. It's going to be quite a bit of work since the package build scripts need some changes and the badly outdated videos and screenshots need to be completely replaced.

I partially reorganized the data repository and brought the ASSETS file up to date for the most parts. I'm also slowly writing a tool that detects missing or unused data files since it's all but impossible to do manually. The data files are a total mess already and we should somehow manage several times more in the distant future.

I have also been converting some of the face textures and haircuts for the new character model. I'll continue doing the same for a little while and then move on to the easier equipment textures and models. It's progressing pretty smoothly overall.

A complex asset management system probably wouldn't help us that much since we simply don't have anyone who would actually do the management work. It'd probably end up the same way as now: someone occasionally forgets to update the metadata while adding/removing/moving/modifying files in the repository, and the mistakes slowly accumulate until you can't tell anymore what the real status of the files is.

Of course, in the commercial games industry, you could just throw the DAM at the problem and make a bunch of managers demote/sack everyone who fails to use it as instructed, but it's slightly less effective when you have no access to such powerful motivational instruments . Automatizing the easier sanity checks was the best solution I could think of since it would reduce the manual management work at least a bit.

I have created a bunch of shape keys for the new player model and converted almost half of the existing equipment for it. It'll probably take about 2 more weeks to get the player mesh properly integrated since all the equipment need to be fixed first due to incompatible weight group names. Animations will be a whole different matter, but I'm not going to touch them or the rig myself (unless I have to).

I have pushed gruntunbur's player model and a bunch of converted equipment stuff into a new git branch (newplayermodel) for now. It'll be merged into master once there's a basic set of animations for the model.

Converting all that stuff for the new player model has been such a pain that I'm going to take a short break from it and do something relaxing, like fix the license and attribution information of the data files. It'll be only mind-numbingly tedious and just take a couple of days, after all, so it should be comparatively enjoyable.

I have fixed all the attributions in the newplayermodel branch and removed a bunch of unused or broken data files. I wrote a rather complete script for validating the attributions and checking for unused files so similar issues will hopefully be avoided in the future.

I have also copied the editable versions of all the currently used data files from the data repository into the code repository. Saving 65 MB in repository size just isn't worth the huge maintenance overhead and other inconveniences caused by the split. The data repository will be retired when the changes are merged into master.

I have merged the new player model into master and pushed it after adding some placeholder animations to make it more or less usable. Several known issues remain, such as missing character animations and textures and a some broken equipment models and textures.

As noted in the previous post, the originals of the data files are now in the code repository and the data repository is not used anymore. I have backed up it locally and will drop it when the next version of the game is released.

I recently made some rather major changes to the animation system in order to make it easier to make the animations blend and fade nicely. In addition to that, I have been busy integrating contributions and doing some cleanups, polishing and bugfixing. If things continue to progress smoothly, the next release should be out sometime next month.

More polishing again and then some work on the terrain system and map generator. I fixed a few terrain rendering bugs and then started writing a new dungeon generator. Nothing spectacular to show off yet, though.