I would like to preface this post with a few statements. First, when I began this project I was fully aware of how much of a massive undertaking this project would be. Designing a game engine, and then a game, alone, is time-consuming, to say the least. With that being said, I was not at all prepared for the volume of concepts that I have to understand in order for this to work AT ALL.
Project Figment is still going very strong. I have new ideas every day and I am struggling to stop adding 'ideas' to the project. I need to get a prototype up to do some testing to see if this will actually be fun to play. A prototype is still a very long way off. My struggles with camera setup, matrices, and other graphical issues are slowing me down. I still need to program the audio pipeline and fix issues with my parallel computing problems
The AI engine has been taking up a lot of my time. One of the 'ideas' that I have for this part of the project is quite ambitious, but I believe that it can be done. Without giving too much away, I would like to design a way for the game to adjust the level of challenge to how you play. I would also like it to dynamically change the game as you play. Those features sound challenging but are definitely possible. What I am having the most difficult time with is the controlling of the difficulty. It is extremely easy to design a dumb AI program (although harder than you may think) and it is very easy to make an AI that is super good at kicking your butt in your own game. The issue comes with the middle. The moderating of difficulty is dependent on a bunch of factors, most of which are subjective. What some find difficult, others may not. the player is another unknown that is very difficult to anticipate.
Working on this has really had me evaluating the way that I make decisions. With a little help from Game Theory (thank you Dr. Renna) creating behavior trees containing instructions on calculating probabilities, learning repositories, and making decisions have been much easier to conceptualize. Game Theory has actually made creating AI much more manageable than if I did not have the knowledge. Much of Game theory is finding the next likely move of your partner and defending against it. Whilst, your opponent does the same. Games with more than two players are much more complicated to deal with but if you take your time it is manageable.
Building these features into the games engine itself will help with performance but these features will no doubt be the most taxing on computers systems. So my plan is to build the game and the engine to the lowest common denominator to fit on the most systems. Completing the engine is my number one priority. Graphics first because I need to see, then Audio, then the game logic itself, finish a rough AI, configure parallel computing, and finally I will have a prototype.