New milestone, new features, new optimizations,
new bugs and new objectives,
but we also have the worrisome feeling that the end is getting closer. Let’s
remark some stuff:
First of all, it’s worth mentioning the new procedural generation system. Disregarding little unimportant changes, what really matters is that we’ve abandoned the plain text representation of the map. What this means is that now the procedural generation does not create an ASCII file and then fills it with the information of tiles. Instead, it is directly created in memory. Unfortunately, due to the lack of time, Isidro’s room generation could not have been adapted to this new system and because of this, what you can see in the video is a temporary generation less accurate to place certain stuff. What we have actually added is a stair at the end of the level and we make sure that the player spawns as far as we can from it.
Next thing to take into account is combat, where we made some improvements. Firstly, we have a system of attack and defense and altered states (poison). Secondly, we’ve provided tons of feedback to combat. This has been possible thanks to the implementation of billboards (2d textures applied to planes placed in the 3D world always facing the camera). One is used to show the amount of damage dealt to the enemies and another one is used to notify the player about critical hits, dodged attacks and blocked impacts; both are shown on top of the enemy that has been hit. Also, there is now a border effect applied to the enemy that is “selected”, meaning that he is in range of attack.
Another new improvement is the entities “occlusion” system. This consist on deactivating entities that are too far from player’s room, trying to save great amounts of unnecessary calculations, speeding up turn time. This has been possible thanks to the new procedural map generator. With the addition of an undirected graph we now can easily know the adjacency of rooms. The deactivation of torches is left to be implemented yet, since we only use dynamic lights with theirs limitations and Ogre’s default algorithm doesn’t fit in this game.
Concerning the art, our first enemy came in the very last minute but on time: the stone construct. It will substitute our beloved troll (bye bye old friend :_( ) but the mourning won’t last long, because it was a necessary change and an aesthetical triumph. For now it comes with two animations: Idle and Attack.
State machines, finally! Simple but at least they were ready for the milestone. We got a basic behavior for our construct based on the detection of the player using the FOV (field of view) algorithm. As long as we keep out of his sight he patrols. If he sees the player, tries to catch him/her and will attack if player is in range. There are not sound, smell or hit detection by the moment.
A bazillion new things will be added in the by the time the next milestone arrives (it’s just around the corner) including some role mechanics, clearer interface (It’s about time…), procedural generation entirely done, torch deactivation, more art, more AI behaviors, better AI perception and an improved sound system. Does it seem too much? Sure it is, it’s massive, but we are really motivated so nothing is impossible. I will try to keep up reporting changes till next milestone.
Ah! And lastly forth milestone video, simple, but shows every point we discussed before. Enjoy it!