Project A.F.T.E.R. is a free open world fantasy RPG that takes place in a randomly generated world. It incorporates action adventure, city-building, dungeon crawling, and minor elements inspired mostly by the likes of Borderlands, Skyrim, and Starbound.
The game is currently being developed by a small team of three programmers with no experience. In addition to a large amount of content, the final product plans to leave a large amount of the game's functionality open for modders to remove and improve upon.
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.
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.
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.
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:
While the interface looks unclean, it works wonderfully.
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.
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. Over the weekend, we threw our game up onto Steam Greenlight, and we're super happy with people's reactions to it.
Thank you for reading. Any feedback or comment (especially critique) is appreciated!
Latest tweets from @skarik_ehs
Jul 19 2014, 12:49am
@Dalaena Oh tell me about it! It's awful when I can't tweet because all I've done is fix bugs and smooth out movement
Jun 24 2014, 2:23pm
Jun 24 2014, 2:21pm
Jun 24 2014, 2:18pm
May 29 2014, 9:23pm
May 29 2014, 9:19pm