Please note that all screen shots displayed in this blog are works in progress and in no way represent the appearance of the final game. Check out the main site here.

Be sure to follow us everywhere with these links!

Sunday, July 15, 2012

Quick Technical Update

Sorry it's been a bit quiet on the update front lately. It's been one of those months where everyone on the team has something else happening in their lives (including me) so productivity hasn't been at it's peak. Personally I've been dealing with a bit of illness coupled with some severe frustration at a particular engine issue (which this blog is about).
Ethan, our modeller, is aiming to have two full subterranean model packs done by the end of this month though (the abandoned mine and the ancient crypt), and I know that Carrie is working on a new character glamour pic, which will be cool. It's the first one of a male character, so I'm sure you'll all love that.
Rachel is busy with work at the moment but is very eager to get back to Malevolence soon and has a HUGE amount of stuff planned, including some more awesome armour and a MASSIVE amount of in-game items.
Work has also started on your character portraits. Nothing at "showing off" level just yet, but shouldn't be too far away!
But anyway! Technical issues. Basically, in game development, there is a process colloquially referred to as "garbage collection" where the engine finds and clears things from active memory to conserve system resources. Sometimes it's required that the engine complete something I like to call an "86 purge" where garbage collection happens to EVERYTHING stored in memory. In a normal game, an 86 purge would be used when the player quits the game and returns to the main menu. All of the in-game 3D models would have to go, then all the sounds, all the textures, all the music, all the shaders, all the heightmaps... Then each individual background process would have to be shut down, like the AI controller, the audio housekeeping, the animation updator, etc. There's no way to just say to the computer "remove everything from memory". You have to actually keep a running tab on everything that has been loaded or that is running in the background and then remove or shut down each one individually. Make sense? Pretty standard stuff in game dev.
Anyway... Malevolence, being not your average game, was developed in a strange way. It's built in three modules, with each module being used to handle each of the three environment types in the game. The first module that was developed was the subterranean module. It's loaded whenever the player enters a dungeon, crypt, mine, cave, etc. It has its own lighting systems, audio systems, etc, which all work to make the environment appear a certain way to the player. Then, once that module was all good and done, we worked on the overworld module. This one was probably the most difficult by far, as it's the only one of the 3 modules that is infinite in size. World chunks had to be loaded, heightmaps for terrain, water had to be handled, the movement of the sun and the procedurally generated sky system... Lots of things at once, and very different to the subterranean module. Finally we developed the town module, which was very similar to the countryside module, but without the heightmaps, water or... You know... Infinity... So that was a bit easier. But dealing with that many complex objects with a large view distance posed problems of its own. Dungeons are dark and cramped, so you can never see very far, so it was easy to get system efficiency in them. Towns are open plan, with big wide courtyards and lots of NPCs and buildings and props like barrels and statues all being seen at once. Much trickier, but we got it working.
The hard part (which has been giving me trouble lately) is linking the three modules together and handling the 86 purges that are required during the move between each section. A little while back I got very excited when I was able to walk out of the starting dungeon and into the countryside for the first time, but it was short lived as I realised that I couldn't go back into the dungeon, or into any other dungeons that I happen to come across, as doing so would cause a massive memory leak and crash the game.
But, last night, all that changed. I walked out of a dungeon into the countryside, then back into the dungeon again, then back out again. I then took a stroll through the wilderness until I came across another dungeon entrance. I clicked it and went into that dungeon, too! Then out of it. Then I walked and found a town and went into it, and then out of it! All seamlessly! Turns out that I had overlooked a couple of small things in the 86 purge that I was doing which caused a fatal memory leak between environments, but now it all works great!
So yeah, that's why there hasn't been much to see lately, sorry. Lots of background coding stuff going on. But now that it's working, I can focus on some really important things like having monsters in the countryside, putting in shops and other establishments into towns, etc. All the exciting stuff. And let's not forget, of course, the Kevin Bacon quest system!
So yes. Life will still be getting in the way over the next couple of weeks, but I'm taking time wherever I can to plug away at some more things, and as soon as new art assets come in, I'll do another update to show off the sexiness!
Thanks for being patient with us and for all the wonderfully awesome comments you all make! It really gives us steam!