Snarky
  • Snarky
  • Advanced Member Topic Starter
2015-03-27T21:33:16Z
Hey.

As with pretty much any other forum in existence, some questions about the AI keep coming up over and over again. I will try to answer some of them here. Please read this thread first, before posting a new thread in the AI section.


The AI cannot handle my deck

YGOPro is a PvP program first and foremost, it was not designed with an AI script in mind. Unfortunately, the AI does not have access to generic information about the cards within the script, so it is pretty much impossible to implement generic rules for handling all cards and effects. This means, most cards and their interactions have to be coded into the AI individually, so it can use those cards properly. There is just no way to code all of the 8000+ cards and all of their interactions. So the AI script focuses on specific AI decks it can use well, other decks are expected to be handled incorrectly.

tl;dr: Use the official "AI_" decks, please. These decks should be handled properly.

The AI cannot handle a specific card

Besides the AI decks, some cards have been added, because they are either widely used ("staples"), or very iconic cards. If the AI does misuse a card, and it is either used in an AI deck, or does fall in this category, feel free to report it, otherwise chances are, it will not be added anytime soon. However, there are some common cards, that are very hard to use for the AI, especially cards, that counter very specific cards or decks. In general, cards that require experience and prediction to be used properly will not be used properly by the AI.

Can you add my deck to the AI decks?


Adding a deck to the YGOPro AI takes time and work, and, depending on the deck, it can become very complicated and tedious. I try to add more and more decks, chances are, your favourite deck will be among them. No promises, though, I have like 30+ pending deck requests.

Can I add my deck to the AI decks myself?

There is an AI Scripting Tutorial . It covers a lot of topics and might seem overwhelming at first, but if you have any programming experience, it shouldn't be all that hard to follow. The tutorial is probably the best way to start, if you want to get into AI scripting. The later sections cover the recommended way to add new custom decks to the AI without affecting other AI decks or having to re-do most of the basic logic.

Where do I find the AI decks?

In the Deck Edit screen, make sure to check the "AI Deck" checkbox to show the AI decks in the list. Do note, that there is currently no way to use the AI decks yourself. You have to save a copy of the AI deck you want to play and rename it.

Can I modify the AI decks?

The AI decks allow for some slight modifications. The decks are identified by some core cards vital to their strategy, you should avoid taking out these. However, swapping around some staple traps or interchanging some extra deck monsters shouldn't be a problem at all, as long as the replacement is supported by the AI as well.

How do I add/remove decks from the "Random Deck" selection?

The "Random Deck" selection for the AI picks a deck purely by the name. Any deck, that uses the "AI_" prefix in its name will be valid. So, to add new decks to be picked by the randomizer, just name a deck "AI_something". To remove decks from the selection, you can rename, delete or move them to a different folder.

The AI uses banned cards

Most of the AI decks should match the current TCG banlist. If a new banlist just came out, give me some time to update the decks accordingly. However, there are some exceptions. Some character decks might use banned cards and will probably not be updated anymore, as those decks are fairly weak anyway.

Also, there are some user-created decks, that use banned cards because they match the OCG banlist or showcase a deck at their prime. I do not want to interfere with user-created decks too much, so I will not modify them to match the TCG banlist. You can do this yourself on your end, as described above, but keep in mind, that this might have an impact on the playstyle of the deck. Or you can just not play against these decks and remove them from the random deck selection.

Will there be AI in Tag duels / AI vs AI mode?/

As of right now, the core engine only allows 1 AI player at any given time. For this to be changed, the YGOPro development team would need to add major modifications to allow more than 1 player, and the AI script would need some huge changes as well. Also for anything Tag related, the AI would have to actually be added to the online servers, as of right now, it is a singleplayer-only thing. There might be plans for changes here, but probably not anytime soon.


Also, check out the Known Issues  thread.
Snarky
  • Snarky
  • Advanced Member Topic Starter
2015-03-27T21:34:28Z
Any other questions you would like to be added? Do you understand the answers?

€ that was fast. Thanks, moderator!
Spriteling
2016-04-08T00:00:50Z
I'd like to be able to run both the already included Shaddoll deck and the one you recently uploaded. Is it enough to rename the name of the .ydk and .lua files to "Shaddoll_2" or would that disrupt the functionality of the deck?

Also, could I safely build my own AI deck which uses a slightly different build from an already existing AI deck (think Qli Towers Turbo alongside the already existing Qli AI deck). Would the deck automatically "know" about the already existing .lue files or would I have to name the .ydk file in a specific way?

On the topic of Qli / different archetypes, how well do the decks respond to other cards from their archetypes which were originally not present in their pre-constructed AI decks? Cephtalpod, Towers and Shell in Qliphorts, different Noble Knights in the NK deck, etc.
Snarky
  • Snarky
  • Advanced Member Topic Starter
2016-04-08T08:22:43Z
Originally Posted by: Spriteling 

I'd like to be able to run both the already included Shaddoll deck and the one you recently uploaded. Is it enough to rename the name of the .ydk and .lua files to "Shaddoll_2" or would that disrupt the functionality of the deck?


This should be possible. However, the playstyle for the old Shaddoll deck might be different compared to before, the changes I made to the script might not be 100% compatible with the old decklist. I try not to break backwards compatibility when updating the deck script, but it is not my main focus. The new Shaddolls are not really finished yet anyway, I'll have to add a couple more things.

You can find all decklists, that received major changes, in the AI Updates thread , you will find this archive  in the "other stuff" section.
Quote:


Also, could I safely build my own AI deck which uses a slightly different build from an already existing AI deck (think Qli Towers Turbo alongside the already existing Qli AI deck). Would the deck automatically "know" about the already existing .lue files or would I have to name the .ydk file in a specific way?


The decks are detected by certain key cards in the decklist. As long as you don't take those out, you should be fine. For Qlis, this would be Scout, which you probably don't plan on taking out :)

However, Towers Turbo as quite a different playstyle compared to regular Qlis. While technically the AI will try to summon Towers, it might not focus on getting it out turn 1, which is the point of the Towers Turbo build. So it might not work out all too well.
Quote:


On the topic of Qli / different archetypes, how well do the decks respond to other cards from their archetypes which were originally not present in their pre-constructed AI decks? Cephtalpod, Towers and Shell in Qliphorts, different Noble Knights in the NK deck, etc.


It depends. Sometimes, some of these cards are supported in the script, because I did put them in as an alternative, or because they were part of the decklist before (like Towers). Others are not supported at all, and will be handled by the default summoning/activation logic instead. Aka summon whenever possible, activate effect whenever possible, target random cards. Which might work out just fine in some cases, however in others, it may not.