Hi friends, fans and family!
The results of the last two weeks have been very productive to say the least in spite of a slump in the middle of the period where I was just not feeling it. Making games is not always fun, there are some tasks that are way more boring than others and tutorials are something I never look forward to. You pretty much always have to write very strange code and architecture to hammer it into place and it’s just not close to being my favourite thing to do :P. Anyway, here’s how this period went!
The AI in this game is a bit different from other turn based games. I want to show the player what the AI will do before it actually does it and this AI makes decisions as soon as the player has moved one of his units or performed other actions. Other games make the decisions when the player’s completely done. There are also games in which the units go 1 by 1 instead of getting to move your entire group. In any case, there are some special considerations to make when you’re going to show what the AI does this way. The major thing is that you have to account for where the units WILL stand as well as where they are standing in this particular moment. If a unit decides that it has to move to a forest tile, you have to make sure that the other AI units know about it so they don’t move to the same space. This has been my biggest challenge but one that I’ve ultimately solved. Yeay!
AI is pretty complicated to debug because there’s always a trillion things happening and it’s usually very hard to pinpoint what exactly is going on so I did a couple of things to make my life easier:
- I made sure to show where enemies are going
- I made sure to show all the tiles that enemies can walk to
- I made improvements in the code that generates levels to make sure that I could place enemies exactly where I wanted them instead of randomising their positions
So after letting the issues in my AI persist for quite some time I decided to finally grab the bull by the horns and eliminate all of them! It was hard, gruelling work but the satisfaction of seeing my last known AI bug (and all others that showed up when I was making fixes :D) was incredibly satisfying 🙂
An undo button for this game is a must so I had to implement it. It’s easy to misclick if you’re not paying attention but more importantly, I want to give players a chance to explore different scenarios. What happens if I move my mage here? Will the archer survive? A very important part of the gameplay is to make sure that the AI is consistent and does not do random stuff just for the sake of it. The AI has to make the same move given a certain board state and the reason for this has to do with player understanding and AI “fairness”. I don’t want the player to go: move, undo, move to the same place, undo again and then get a different outcome. That would just be weird!
4K Graphics XD
I mentioned earlier that I got into a slump in the middle of the week and that was when I started doing the tutorial. I got quite far (not done yet though…) but I was just feeling bored and needed to take my mind off it to get some momentum so I started looking over my graphics in search for things to improve. I’ve already mentioned before that I’m not 100% satisfied with how the game looks and the tiles in particular could need a makeover so I started experimenting a bit. I ended up changing: forests, mountains, roads, the color of the grass and even the color of the goblins. It feels much better now. What do you think?
I’ve always loved the overwatch ability in XCOM. You basically postpone your chance to fire and stand on lookout and when the enemy moves into firing range the game goes into this really cool slowmotion sequence and your unit takes the shot. This lets you fire on the enemy turn which is a good way of adding some wrinkles to the players considerations. Is my position good enough for the attack or should I take the shot next turn when the enemy is out in the open?
I really wanted to make my own implementation of this and had made an earlier attempt that failed spectacularly and left my code in a mess. This time would be a bit different since it now works but the code is still a mess XD. Besides being cool it’s also a very good skill from the perspective of truly differentiating the units as they now have much different abilities that don’t play out the same at all. So how does it work in game? Basically the archer picks an area to guard, and the first unit that tries to pass this area will be fired on and STOP it’s movement. I’ve mentioned before that I don’t just want to make damaging abilities so I had to add something more to it to set it apart. Here’s the end result:
There are still some things I could do to make it clearer to the players and improve it a bit but overall I’m very pleased with the results :D. Also, notice the hit effect I’ve added when units are attacked. That wasn’t there before 😛
In the end, these two weeks have been great and I’ve started my search for an illustrator to make the game’s header image. This image will be used on the web, steam pages etc and is a crucial piece of my marketing plans. As soon as that is in place I will release the name of the game and a short playable demo of the game. That’s all for this time!
Thanks for following my project 🙂