It’s been a while since a proper development update. In the past weeks, we’ve been updating the system, adding a few features and content, and writing more dialogue for cutscenes.
AUTOMATONS
Wanting for some more variation, we’ve been working on the concept for a new enemy. For now, we call them an automaton.
The concept started as an advanced golem that haunts ruins. They’re going to be a much different enemy than what we’ve had so far, being generally faster and stronger. In addition to that, they are about the height of the player when on all fours. They’re not complete yet, but in-game they fulfill the purpose of an unnerving enemy.
WALLRUNNING
This is my favorite new addition. The player can now run up and jump between walls, possibly climbing higher as they do so if the jumps are timed right.
Because of the rotations, implementing it was a little bit tricky. The wallrunning uses the player body’s rotation to figure out where to put the player, and then locks it. The player camera system modified the player body rotation in order to turn left and right. There was a conflict there, and the player was unable to look where to jump off the wall. This meant that the player camera system had to be rewritten to use either the player’s head or the player’s body for left and right turning. The addition of an extra rotation value meant that all states in the player state machine - falling, tripping, walking, and swimming are a few - had to be edited as well.
Since the player model already supported separate rotations for the body and the head, applying a working moving camera wasn’t as bad as I thought it would be.
NPC BEHAVIORS AND ANIMATION
In AFTER, NPCs may be given a certain idle behavior in addition to their search and destroy routines. This idle behavior varies from follower AI to a sequence for a farmer. Unfortunately, the functionality has been sitting around for a while without actually getting used.
One of the reasons for this is the game’s Lua interface is extremely limited. No one has bothered to add more C hooks to the engine, which is a shame since the system is so powerful. I took the time and added a little more functionality.
Right now, playing an animation from the Lua behavior is as simple as the following:
[code]if ( m_sitting == 1 ) then
_npc_ai_PlayAnimation( mCharacter, “idle_sit_01” );
end[/code]
While the interface looks unclean, it works.
In addition to the better Lua interface, we finally added a sequencer system, a sort of manual cutscene or animation creator that can run Lua code, control facial morphs, and play animations. This works alongside the animation system. We currently use it to randomize the automaton animations.
FIXING THE COMPONENT SYSTEM
Components are objects in the world that don’t fall under the categories of blocks, breakable trees, or grass.
When the terrain system was reworked, the component system was not upgraded along with the terrain. One of the major tasks of the day was to get it working again. The component object base code had to have all its terrain-related code completely reworked. Unfortunately, the electrical components are still broken.
Here’s a screenshot of both the NPC Behavior (sitting) and the component system (the fire) working properly.
While once again we don’t meet our own expectations, we’re pretty happy that we’re making progress. We’re on Steam Greenlight, too, and while still super happy with how well we’re doing, we could use more backing. Please support us!
Thanks for reading!
0 comments