If you build it, they will come.
It has been another busy week here at RillyBoss Studios! I have been hard at work developing a smarter enemy AI as well as building and polishing a demo level which we will share at an upcoming event. Taylor was able to book the event on short notice and there is so much to do to get ready! I am really excited about this as it is our first event, and hope to see some friends and fans there! For those interested in attending, Taylor will be providing more information this week. Keep your eyes posted!
Harder, Better, Faster, Stronger
The core focus of our new Virtual Reality game is to provide interesting, intuitive, and engaging combat to the players. The first iteration of enemy Artificial Intelligence was – for lack of a better term – quite dumb. Enemies would walk in a random direction and rotate every so often. This often lead to enemies that blindly walked into objects and structures. If a player was within a certain distance, the enemy would run towards the player in a straight line, again not taking obstacles into consideration. Although this worked for a very simple prototype, it was far from fun and looked quite bizarre. Therefore, I have spent past week improving the artificial intelligence of enemies. I have developed a modular Finite State Machine which controls the enemies AI. The system works as follows:
- Each enemy can be in only one state at a time.
- For example, the enemy may be patrolling, searching, chasing, fleeing, dying, etc.
- Each state consists of one or more actions which are performed.
- For example, during the patrol state the enemy will walk to a series of patrol points.
- Each state has multiple decisions which will allow it to transition into a new state.
- For example, during the search state the enemy will survey the area and decide if it can see a player. If it does, it will transition to the chase state, otherwise it will transition to a patrol state.
- States are modular and easily customizable.
- New states can easily be set with unique actions, decisions, and state transitions. This will allow us to quickly create different enemy behaviors.
- State Transitions are synced over the network.
- This allows all players in the game to be updated with the current enemy state.
Finite State Machines are very useful in game programming, and by implementing this system for our project we have gained a great deal of flexibility for rapidly creating and testing multiple unique enemy behaviors. As I code new actions and decisions, they can be easily inserted into existing game assets.
The above video shows the game from a debug view. By manually manipulating the players position, I am able to test the AI system. In this video, the enemies start in a patrol state. As they patrol, the decide if they can or cannot see the player. If they can, they will transition into the chase state. Once they get into range of the player, they will transition into an attack state. Here you can see each enemies detection radius as well as the line of sight rays. While patrolling the enemy checks if any players are within it’s detection radius. If an enemy is within range, rays will be cast from the enemies eyes to the target. If the ray is within the field of view of the enemy and not obstructed by any objects the enemy will begin to chase and attack the player.
Live Demo Event
As discussed earlier, we have been given the opportunity to present a demo of our game at a local event on Labor Day (September 4th, 2017). We will be offering free live multiplayer demos during the Nerd’s Night Out at Platt Park Brewing Company. Bring and a friend, enjoy some craft beers, and give our game a shot!
For this event, we have started building out a custom demo and it is really coming together nicely. However, there is still a lot to do and I really want the demo to impress. I’ve included a sneak peak of what we have built thus far:
The following items have been updated and/or added into the current build:
- We have removed permanently holstered weapons. Players will need to find armor and weapons within the environment to defend themselves, which will require one or two hands to hd. This forces players to prioritize what items they bring with them.
- As you can tell from the video, we have updated a large chunk of the graphics. We have also decided on a visual style for our game. Moving forward, we will work to make all of the artwork match the aesthetic in the video.
- Enemies can now be killed.
- We have added a torch which can be equipped by the player to illuminate the environment.
- Blood effects are now shown when enemies are hit.
- Fire will illuminate the area.
- Snow and Wind audio and visual effects.
We hope to see you on Labor Day for our first showcase! We have a lot to do before then, but I am confident we will get it done. I am very optimistic about the future of this project and hope to grow with the help of the community!