Leges Motus Progress – January Wrap-up, AI Begins
We have been hard at work on Leges Motus, since mid-December, and I have posted many of the important features we have re-implemented and discussed a few of the topics related to the refactor in my previous posts. Today, I want to give an overview of what we have completed recently, and start on the topic of AI.
Since my last post, the heavyweight server has been fully implemented and tested, and everything seems to be working very well with it. We now use it as the mainline server, and it has, as we hoped, improved the synchrony and centralization of the control over what the clients see at any given time. We have already seen the effects of the centralized server on player collisions – they now look natural, with no weird behavior such as players pushing past each other. This will enable a lot of cool things in the future, including moving map objects, and potentially even throwable weapons such as grenades, someday.
On the HUD front, we have redesigned the look and feel of the HUD, and we are very happy with how it is coming together. We have working health and weapon status bars, gate status indicators, and a radar. The theme is much more standardized and polished, and we expect to continue this focus on graphical improvement throughout the project. The following screenshot shows the current status of the HUD:
Additional elements will be added to the HUD as we go forward, such as weapon indicators, chat, etc.
The gameplay features have been fully completed, including energy regeneration and gameplay parameters (which the server sends to the client, for flexibility in running custom game styles).
We still need to work on menus and configuration options, but we will be putting those off for now. They will be completed before 0.5 is released.
We are taking a break from the implementation of gameplay, HUD, menu, and other features (or at least decreasing our focus on them) over the next few months, to work mostly on the development of an AI (or, more likely, several iterations of different approaches to AI).
We will be starting with an AI somewhat similar to that seen in the now-defunct AI branch of LM 0.2 (except this time, with much better framework around it so that we don’t have to drop it next version!), which will not act with strategy but will react appropriately to the current situation. For example, if an enemy is in sight, it will turn towards the enemy and fire at him. If the enemy’s gate is available, it will move to capture it.
Later, we will implement path-finding, so that the AI can move towards specific points on the map intelligently, and we will eventually work on strategic action, finding a good search algorithm (or algorithms) to determine the best movement and firing decisions.
As we continue towards these goals, I’ll be sure to post about our thoughts and our work. Keep watching for more!