It's great to hear that you're diving into
machine learning and AI to build a bot for playing TFT! It sounds like you're on the right track with your approach. Here are some suggestions and topics you might want to consider as you progress:
Data Gathering and Augmentation:
You're right that gathering a large dataset can be challenging, especially for games like TFT. One approach is to create your own dataset through simulations or by playing the game yourself. Data augmentation techniques can help you artificially increase the size of your dataset by introducing variations to existing data, which can improve the generalization of your model.
Feature Engineering:
Preprocessing and feature engineering are crucial steps. In your case, you might need to define and extract relevant features from the game state, such as unit compositions, levels, items, health, and position. These features will be inputs to your neural network.
Multi-Agent Reinforcement Learning:
Auto-battlers like TFT involve multiple agents (players) interacting with each other. You might want to explore reinforcement learning approaches where your bot learns to make decisions by interacting with an environment (the game) to maximize certain rewards. Techniques like Q-learning, Deep Q-Networks (DQN), and Proximal Policy Optimization (PPO) could be relevant.
Transfer Learning:
Since you mentioned different types of decisions, consider using transfer learning. Train different smaller models for specific decision types and then fine-tune them on the broader context. This can potentially save training time and improve performance.
Imitation Learning:
Another strategy is to train your models using imitation learning, where you provide examples of expert gameplay to guide your model's decision-making. This can help kickstart the learning process, especially when gathering a large dataset is difficult.
Explainability and Interpretability:
As your models become more complex, it's important to understand how they make decisions. Techniques like LIME (Local Interpretable Model-Agnostic Explanations) or SHAP (SHapley Additive exPlanations) can help you understand the importance of different features for your model's decisions.
Model Evaluation and Fine-tuning:
Regularly evaluate your models using appropriate metrics. Depending on your bot's goal, this could be winning rate, average placement, or some other metric. Fine-tune your model based on the evaluation results.
Hyperparameter Optimization:
Experiment with different neural network architectures and hyperparameters to find the best combination for your problem. Techniques like grid search or random search can help in this process.
Community and Open Source:
TFT has a community of players, and some may have explored AI bots before. Look into open-source projects or discussions that might offer insights or code snippets to accelerate your progress.
Ethical Considerations:
As your bot gets more capable, consider the ethical implications of using it, especially in a competitive multiplayer environment. Ensuring fairness, transparency, and good sportsmanship is essential.
Remember, building a game-playing bot is a challenging but rewarding task. It's a journey of experimentation, iteration, and continuous learning. Best of luck, and enjoy the process of building your TFT bot!