Log 3: Combat, Graphics, and a Sense of Direction


I have been working on my RPG prototype for almost two months now, and I have come a long way in this time! You can read some of my earlier posts to see where I started and what kind of systems I have implemented, but in this post, I’m going to get into some exciting and juicy details that I’ve been working on!

I finally reached a point with the systems in my game that I was able to move on to redeveloping and prototyping actual gameplay systems. That means that for many in-game elements, from saving and loading to control remapping to buying items to talking to NPCs, I have at least some kind of system in place. With that, I got to move on to enemies.  

Steps 1-3 mostly involve setting up collisions and making sure the enemy can take damage and die. I had already done most of this for my prototype, so there wasn’t much work to be done.

Step 4, however, is where it starts to get interesting. Having a stagnant enemy is… well, not very fun. Having an enemy that moves forward endlessly, on the other hand, is not very immersive. I’ve used a few different approaches to enemy movement in the past, from A* to Djikstra’s to others, but I’ve found that they often result in boring or mechanical movements. Pathfinding is too rigid—real creatures meander and take dumb paths, and unless you force them to, Pathfinding algorithms don’t. Sometimes, it takes more work to make artificial intelligence less intelligent.

As a solution, I opted for a context steering system. Functionally, this means that the enemy scans its environment, logs “interest” points and “danger” points, and weighs these points to make an informed decision on where to go. This led to much more convincing movement, as the enemies were able to meander about, avoid one another, and pursue the player. Over longer distances, there were some issues, like enemies getting tricked into getting stuck, but I think this adds to the fun. As I alluded to earlier, smart AI only feels good when you feel like it’s contending with you; playing against an answer key is no fun. I like the idea of being able to manipulate enemies to your advantage. It remains to be seen if my play-testers will feel the same.

Once I slotted  the context steering system into the simple state machine I had already created for my prototype, I had an upgraded enemy that avoided lining up or stacking like the enemies in the prototype  were prone to. I’ll have to tune up the screen shake, but otherwise I ended up with a simple enemy that was convincingly lively and interesting to contend with. 

I’m currently working on adding some slick-looking art for the enemies, and putting a combat showcase together. In the next dev log, I’ll discuss some of the player skills and abilities I’ve worked on to make combat more exciting, and adding variety to make every encounter feel a little different. 

Leave a comment

Log in with itch.io to leave a comment.