My idea for this project is to make an AI tool for the game engine Unity. What this would be is a set of scripts and editor scripts that help to make the process of creating a functional game AI much easier. It would help with low level processes like path finding, and higher level processes, like editable state machines and decision trees. Even higher level processes like strategies might be left to the user to work out, with the help of the easy to use tools that I provide. I might add support for things like this or learning and prediction if I have enough time and everything goes well.
I have done work with dynamically changing decision trees and state machines before, and it always felt like the limit of how deep the system goes was how much time I had to work on it. I could always make the system more robust and easier to use, and all the time I spent on it would have easily noticeable results on future usage. It could go as far as building a flowchart in the editor to control states and decisions, adding connections and transitions with conditions to control the logic in a visual way. I could add in basic functions like combat AI, using the framework I set up as a base. There are many different ways I can think of to take it, and I want to try to do as many as I can.
One of the reasons that I want to do something like this is that AI is my favorite type of programming. Trying to make complicated decisions in a purely logic-based and algorithmic way is something I have always enjoyed doing, so AI programming is something I enjoyed from the start. I also like how you can make something come to life with a few simple scripts. It is something I enjoy doing, and have a lot of fun watching it when it is finished.
Another reason I want to do this is that I like the idea of using editor scripts in Unity, but I hardly ever do. It is something that I always feel would be incredibly useful, but I never have the time or motivation to just make more work for myself. Having an entire project based on it would likely make it easier to see how it could be helpful and how I could be using them in the future. Even if I don’t end up using Unity much in the future, all of the concepts and ideas for making tools for other people to use would likely carry over into similar tasks in different engines.
AI is something I have always enjoyed programming. I want to try making a tool because that is an important thing to be able to do and I haven’t done it as much as I would have liked. I think I can put these two together to make something useful for people, and get it done in a reasonable amount of time. I also think it is flexible enough in the amount of detail I could add that I could really make something substantial if I end up having the time.