473,246 Members | 1,938 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,246 software developers and data experts.

Suggestions on building an AI?

I'm an experienced programmer, but new to AI. I'm trying to learn ML techniques by building a bot to play a video game. I'm documenting my process as I go.

The game I'm focusing on 1st is TFT (TeamFightTactics) which is in the AutoBattler genre - Essentially, you try to build the strongest army, but there are millions of choices & pros/cons to each.
My current plan is to use a NeuralNetwork (TensorFlow.Net) to learn the complexities of which armies are strong/weak against each other. I'm planning to hard-code the obvious rules/strategies to the game to make it easier on the NN.
One of my big fears is the difficulty in gathering a large dataset of training data, so any advice on workarounds for that would be great. I'm thinking maybe split the game up into different types of decisions & use a different ML technique specifically targeted for each one. Hopefully that creates smaller NNs that can learn patterns easier with less data.

Any advice on topics I should research?



Oct 4 '22 #1
2 19884
8 Nibble
Some topics to research include reinforcement learning, evolutionary algorithms, game theory, and decision theory. Additionally, research on different types of neural networks and how they can be applied to AI-powered video games would be beneficial. You should also research the different types of datasets and methods of collecting data that can be used for training neural networks.
Finally, look into ways to optimize and optimize the performance of your neural network.
Jan 3 '23 #2
22 16bit
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!
Aug 29 '23 #3

Sign in to post your reply or Sign up for a free account.

Similar topics

by: Carl Waldbieser | last post by:
I tried to adapt the instructions for building the M2Crypto module (http://sandbox.rulemaker.net/ngps/m2/INSTALL.html) to build a version compatible with Python2.3, but I've had some mixed results....
by: Catherine Lynn Smith | last post by:
OK, I am looking for advice or tips and suggestions. I have overcome a lot of the obstructions I had to building the page design my customer was asking for. I am looking now at ways to deliver...
by: Vani | last post by:
Has anyone come across this issue? There seems to be a behavioral difference (and possible bug) in visual strudio 2003 when building a vc.net solution through IDE and building the same solution...
by: Nick | last post by:
I am doing some research into building web applications using Object Oriented techniques. I have found the excellent patterns section on the MSDN site, but other than that I cannot find any good,...
by: Hal Vaughan | last post by:
I have a problem with port forwarding and I have been working on it for over 2 weeks with no luck. I have found C programs that almost work and Java programs that almost work, but nothing that...
by: wsox66 | last post by:
I am new to Access and need some help building a report. I have looked through previous posts on reports but none of them seem to answer my question completely. I am using Access 2003 and I have...
by: John Murtari | last post by:
Folks, Trying to build php 4.4.6 and apache 1.3.37 on RHEL 4. Each of them builds and installs okay, but when we start apache we get: Syntax error on line 238 of...
by: treble54 | last post by:
I need to build PHP from source with the pdo_ibm extension and I am having an issue with it. Firstly, I am using Visual Studio .NET 2003 and I am building PHP from source through the Visual Studio...
by: Ludwig | last post by:
Hi all, we are building our own class library framework, with stuff in it that can be used in various projects at various clients. Initially we had 4 assemblies with everything in it. Of...
by: =?Utf-8?B?c2lwcHl1Y29ubg==?= | last post by:
Hi I am familiar with unit testing but have to implement in a large solution of 100 projects - my concern is Adding Unit test will bloat the solution - taking more time to get all code from...
by: abbasky | last post by:
### Vandf component communication method one: data sharing ​ Vandf components can achieve data exchange through data sharing, state sharing, events, and other methods. Vandf's data exchange method...
by: stefan129 | last post by:
Hey forum members, I'm exploring options for SSL certificates for multiple domains. Has anyone had experience with multi-domain SSL certificates? Any recommendations on reliable providers or specific...
by: egorbl4 | last post by:
Скачал я git, хотел начать настройку, а там вылезло вот это Что это? Что мне с этим делать? ...
by: davi5007 | last post by:
Hi, Basically, I am trying to automate a field named TraceabilityNo into a web page from an access form. I've got the serial held in the variable strSearchString. How can I get this into the...
by: MeoLessi9 | last post by:
I have VirtualBox installed on Windows 11 and now I would like to install Kali on a virtual machine. However, on the official website, I see two options: "Installer images" and "Virtual machines"....
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
by: Aftab Ahmad | last post by:
Hello Experts! I have written a code in MS Access for a cmd called "WhatsApp Message" to open WhatsApp using that very code but the problem is that it gives a popup message everytime I clicked on...
by: Aftab Ahmad | last post by:
So, I have written a code for a cmd called "Send WhatsApp Message" to open and send WhatsApp messaage. The code is given below. Dim IE As Object Set IE =...
by: marcoviolo | last post by:
Dear all, I would like to implement on my worksheet an vlookup dynamic , that consider a change of pivot excel via win32com, from an external excel (without open it) and save the new file into a...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.