[Request] Roll solver (unlikely but I wanted to ask)

Forum Forums Discussion [Request] Roll solver (unlikely but I wanted to ask)

Tagged: , , ,

This topic contains 15 replies, has 4 voices, and was last updated by Miqobot Miqobot 7 years, 10 months ago.

Viewing 15 posts - 1 through 15 (of 16 total)
  • Author
    Posts
  • #1418
    Carl Arbogast
    Carl Arbogast
    Participant
    1+

    Hi,

    I’m fully aware that what I’m going to ask is probably totally impossible to achieve, but since you guys already did some really impressive things with Miqobot, it’s worth a shot to ask.
    So, not only it’s probably impossible to achieve, but it also stands beyond the grey line, where Miqobot never went (and should never go) and for very good reasons.

    A friend of mine, told me he thinks that the roll system uses like a wheel to give a number between 1 and 99 to a player who rolled on an item, taking out each number out of the wheel as soon as it already gave it to one player.
    I have no idea if it is handle like this on the server side, but one could think that if it was like this, if we could somehow find the duration between 2 numbers, and if this duration never change, if it always start with the same number, or if it’s a never-ending wheel used by all instances, Miqobot could maybe figure out when to roll to get a high number, taking maybe into account our latency to the server to be more accurate.

    If I was SE devs I would have ensure that there is no possible ways to guess the numbers, but since very often they take very weird decisions regarding method they used to code things in the game, I wouldn’t be very surprised if some kind of breach exist.

    So if you guys could figure something while still keeping Miqobot fair and safe (no injection, etc.), that would triple the value of this bot to many many players, because right now Miqobot saves us a huge amount of grinding time, but there is still that big grinding time where we aim at an item unmarketable, with no tokens, like right now Primals Extreme Lanner Mounts, I’m almost at 100 Sephirot tokens and I lost on every mount…

    It’s also something very dangerous, the kind of thing SE will hear about and this time, since it’s beyond the grey line, they will do something to prevent it.

    Anyway, I figure it should be fun to ask while waiting on the next Miqobot version.

    #1419
    captainblunt
    captainblunt
    Participant
    0

    I can’t speak for Miqobot, but I honestly don’t think this would be possible. The rolling and even the /random command is all server side from my understanding. It’s an urban legend that has floated around for a long time about the ‘timing’ of the rolls sort of like the one about if you type /random until you get a really high number then you’ll have a better chance of winning the roll on the loot. It’s all a myth. I think the best that you could get with a bot would be an auto need/greed/pass.

    #1420
    Carl Arbogast
    Carl Arbogast
    Participant
    0

    Yeah this belief has been there since a while, probably because RNG are brutal to human brain, who’s built to seek patterns every where, including where there are none. So as soon as someone spotted a pattern, he doesn’t ask himself the right questions and fell immediately in a wrong belief.

    #1426
    Miqobot
    Miqobot
    Keymaster
    1+

    There is a reason to why this myth exists.
    In theory, it is indeed possible to predict the outcome of a random roll.
    But in practice, it would take some tremendously expensive equipment which is comparable to spaceships in price.

    The root of this myth is that random numbers in games are not random.
    They are pseudorandom.

    It means that Random Number Generator uses a clearly defined pattern which is built in such a way that it looks random to an outsider. The simplest generators can be defined with a single formula:

    Xn+1 = (214013 * Xn + 2531011) mod 232

    This gives a sequence of numbers X1, X2, X3, …, which seems very random but in fact it is not. And yes, of course it is calculated server-side.

    Final Fantasy probably uses more complex algorithms, but it’s not the only obstacle here.
    The main problem is that random numbers are generated in enormous quantities.

    • For battle, every single hit is randomized (+ or -).
    • For monsters, their idling behaviour is randomized.
    • For crafting, lots of abilities have a success rate, and it’s randomized.
    • For gathering, every hit on the node is randomized.

    The list may go on. Considering that all the players are doing all these things together at the same time, the ingame RNG must be producing more than 1,000,000,000 numbers per second. And in order to be able to predict them, we’d have to calculate even faster.

    Basically, in order to implement the RNG solver, it is required to:

    1. Find out the exact formula that game server uses. At the very least, we could purchase the source code from game developers themselves.
    2. Connect to the server hardware and take readings of server processor cores – in order to determine the current state of RNG. This would probably require a direct channel and some sort of API provided by game developers.
    3. Perform calculations at a rate faster than RNG does. Preferrably around 1,000 times faster. Which brings us somewhere in the range of supercomputers.

    So as alluring as this idea sounds, unfortunately we have to set this request aside.
    But still, thank you for bringing up such an interesting topic 🙂

    P.S. In order to solve the problem with grinding Lanner Mounts, we are planning to implement a Raid Grinding Bot.
    It will require a very complex AI, and probably a lot of testing.
    But this way, nobody will have to cheat 🙂

    #1430
    Carl Arbogast
    Carl Arbogast
    Participant
    0

    What can I say, your post is epic. I just saved it in a compendium folder about RNG in video games.

    If Miqobot users are also interested in that topic, how our brain has so many cognitive biases regarding RNG, and why game developers, unlike FFXIV developers, shouldn’t use “randomness” that much in their video games, I can advise you to read the following article:

    Games, Randomness, and The Problem with Being Human

    I militated for years in FFXIV feedbacks to get less RNG where it hurts and matters the most, asking for Tokens in end-game, and they finally added that to Savage and Primals Extreme for 3.0, this made me so happy.
    But there is still places where there is no tokens, for those Lanner Mounts for example, if I were them, on top of the RNG drop, I will also add a token option where you could trade something like 50 weapon wins Tokens for the corresponding Lanner Mount, that should be fair, and gives a strong feeling of progression.

    And, may I ask you a question regarding your Post Scriptum?
    A Raid Grinding Bot sounds so complex I have trouble to guess how exactly it will work.

    I don’t have much trouble to imagine that a group of 8 or 7 bots could clear a current Extreme Primal or Savage turn if you guys teach them a working strategy with all the rules of one specific fight. But that requires 8 or 7 service accounts with all their characters well geared.

    I have a hard time to imagine how a single Miqobot user could farm that with one character, by joining PF parties, with all the social interaction it requires and all the specific strategies you are supposed to pick, like choosing a cardinal direction in Thordan Ex., a tower in Sephirot Ex., etc.

    Unless Miqobot users team up together, or you guys deploy your own bot party on every server that we could booked for 5 hours, I don’t see how you guys will manage to do that. Unless you are referring to solo unsync old Primals with a specific job like SCH or WAR, which then is indeed possible for some raid fights and almost all old dungeons, but will delay the date of acquiring those Lanner Mounts to the next expansion.

    Don’t get me wrong, getting those mounts later than now with the bot is still a better option than spending hours loosing now on unlucky rolls.

    But I’m pretty sure I’m missing something, you guys always manage to impress me anyway, so I’m really curious how you are planning this to work, if you can share some details now.

    #1437
    Miqobot
    Miqobot
    Keymaster
    2+

    Raiding Bot, just like any other feature, will be implemented in parts.
    Each AI upgrade will be an iterative improvement over the previous one.

    • First of all, we are going to implement a DPS Solver.
      According to our preliminary research, this feature should tremendously reduce the amount of stress imposed by end-game raids. By letting Miqobot take care about your rotations, you will be able to focus on movement and mechanics instead, which will in turn reduce mistakes and lead to more frequent wins (and more chances to roll a Lanner Mount).
    • Secondly, we will implement the ability to define an enemy priority list (a feature similar to Gather by Name).
      By default, Miqobot will select the enemy with the lowest HP, but you will be able to override this behaviour when a specific encounter requires to do so (or when your party decides to change strategy).
    • Thirdly, we are planning to upgrade the 3D Radar, so it will be able reflect the timing and phases of the current raid.

    These three features combined together should make a good start for Raiding Toolkit. From there on, we will be implementing custom scripts for specific encounters in order to teach Miqobot how to navigate during the battle and how to deal with certain mechanics.

    We also think that releasing a custom Scripting Engine could be useful. But we should make Scenario Engine available first and see how it will be taken by the community. We hope to make both Engines easy to understand and to use, so anybody could try out his ideas and share with the community.

    As for social interaction, this part might have to be left in your hands.
    Miqobot will be able to use Duty Finder and be aware of the environment (performing Ready Checks, waiting for regroup, casting and accepting Raises).
    But end-game raids, which don’t have a Duty Finder and require forming a premade, need to be supervised to some point. They are end-game raids for a reason. The day when Miqobot will be able to clear end-game without supervision will probably be the day when machine becomes equal to a man 🙂

    #1459

    Nott
    Participant
    0

    Raiding Bot, just like any other feature, will be implemented in parts.
    Each AI upgrade will be an iterative improvement over the previous one.

    • First of all, we are going to implement a DPS Solver.
    • Secondly, we will implement the ability to define an enemy priority list (a feature similar to Gather by Name).
    • Thirdly, we are planning to upgrade the 3D Radar, so it will be able reflect the timing and phases of the current raid.

    This sounds amazing. I just started up again today after a long break. Glad this is still going. I wanna say thanks to the Miqobot team and the community that is supporting them. Looking forward to seeing this stuff happen…both for just the science of it and for seeing if the computer thinks I’m doing shit right as far as dps goes, hah.

    #1489
    Carl Arbogast
    Carl Arbogast
    Participant
    0

    This looks very promising, since you announced the DPS solver, it became the feature I’m waiting the most.

    With the description you gave to us, I tried to imagine a complete fight with it of things like A6S, A7S & Sephirot Ex., in order to forsee where some problems might happen.

    And I believe it will require some different level of override options, from being able to shutting it down completely with no delay, to just stop the use of buff CD (to keep them for a special mechanics), or not letting her choose targets, or forcing her into AoE or single target rotation, etc.

    If we can bind some keys to control that, I believe this is going to work great.

    As for 3D radar, I can see two mechanics right now that could help everyone, in A6S 1st boss, drawing overlay lines in front of the adds, to be able to see if we are standing in one of their dive direction, that should make the dodge way easier.
    Or drawing a circle around the water tower in A6S that tells the limit where we shouldn’t put the ice, or get too close ourself to avoid the tether.

    One thing also you may be able to improve, right now parsers like ACT only use the in-game logs for their trigger feature, I made some really useful triggers for plenty of fights with good Text To Speech, but often there is one kind of thing that’s impossible to trigger, it’s when the enemy marks you without giving you a specific debuff, the log will say nothing. And sometimes, because all the player are stacking, it’s hard to see the in-game visual mark, and it makes you lose some DPS if you have to move a bit to see if it’s you that got the mark, especially for range classes. In Thordan Ex., the blue mark for the triple jump, in A6S the red Gobacide mark, in Sephirot Ex. the double earth shakers mark, etc.
    By using something else than the log, maybe you guys will be able to make triggers for those mechanics, within your custom scripts for specific encounters.

    #1493

    Nott
    Participant
    0

    By using something else than the log, maybe you guys will be able to make triggers for those mechanics, within your custom scripts for specific encounters.

    I would be interested in knowing if this was possible and it is really required for certain fights as you’ve said.

    By required, I mean the bot cannot do many fights unless it can react to those ‘visual only’ mechanics…actually nearly every standard AoE effect in the game is like this…so they must have that covered.

    • This reply was modified 7 years, 10 months ago by  Nott.
    • This reply was modified 7 years, 10 months ago by  Nott.
    #1538
    Miqobot
    Miqobot
    Keymaster
    1+

    With the description you gave to us, I tried to imagine a complete fight with it of things like A6S, A7S & Sephirot Ex., in order to forsee where some problems might happen.

    And I believe it will require some different level of override options, from being able to shutting it down completely with no delay, to just stop the use of buff CD (to keep them for a special mechanics), or not letting her choose targets, or forcing her into AoE or single target rotation, etc.

    If we can bind some keys to control that, I believe this is going to work great.

    Of course, when it comes to battle we are going to pay special attention to implementing reactive shortcuts.
    DPS Solver will come in several levels of automation, from a completely self-contained AI to a highly customizable assist mode. Depending on your preference in battle, you will be able to switch between Single/AoE/Crowd Control/Focus/Burst profiles with personal shortcuts, and even create your own profiles for specific encounters.

    Additionally, 3D Radar will work like HUD enhancement by displaying special notifications related to what mode Miqobot is currently in.

    As for 3D radar, I can see two mechanics right now that could help everyone, in A6S 1st boss, drawing overlay lines in front of the adds, to be able to see if we are standing in one of their dive direction, that should make the dodge way easier.
    Or drawing a circle around the water tower in A6S that tells the limit where we shouldn’t put the ice, or get too close ourself to avoid the tether.

    These are very good suggestions. Thank you!
    Indeed, many end-game raids impose a lot of stress by not displaying the important visual cues for some mechanics.
    We will probably have to create a special forum section dedicated to implementing 3D Radar enhancements for specific encounters 🙂

    One thing also you may be able to improve, right now parsers like ACT only use the in-game logs for their trigger feature, I made some really useful triggers for plenty of fights with good Text To Speech, but often there is one kind of thing that’s impossible to trigger, it’s when the enemy marks you without giving you a specific debuff, the log will say nothing.

    By using something else than the log, maybe you guys will be able to make triggers for those mechanics, within your custom scripts for specific encounters.

    A great feature request.
    Yes, we are also using ACT triggers for many raids. Audio cues are incredibly useful considering how many things already cluttering the screen during intensive battles.
    And it is indeed possible to detect visual marks directly in the game memory. According to game’s (disassembled) source code, these are special abilities that don’t have a caster. They have a target, but don’t have a source. And the ability that boss casts after the mark disappears is in fact instant.

    It is not very clear as to why game developers decided not to put them in the battle log.
    But for Miqobot it doesn’t make a lot of difference because she reads information from many sources, not just the log 🙂

    #1539
    Miqobot
    Miqobot
    Keymaster
    1+

    By required, I mean the bot cannot do many fights unless it can react to those ‘visual only’ mechanics…actually nearly every standard AoE effect in the game is like this…so they must have that covered.

    AoE effects are a little different from these visual marks, because all AoEs have a source caster wherein the visual marks do not.
    Even when you see multiple AoE effects going in several directions from a single boss, he’s not the true source of them. There are several invisible minions spawned by the boss, and each minion casts only one AoE ability.

    You can verify this by enabling 3D Radar while fighting such bosses. For example:

    • Haukke Manor (Hard) – Ash (2nd boss).
      The room is filled with multiple AoEs going from the walls in different directions. These AoEs come from minions that die immediately after cast.
    • The Final Coil of Bahamut – Turn 4 (T13).
      There are 19 invisible Bahamut Primes that exist throughout the whole battle. They cast different abilities, but due to all of them named ‘Bahamut Prime’ it appears like Bahamut casts several abilities at the same time.

    Visual marks are abilities cast by no one, therefore they do not appear on 3D Radar.
    For now 🙂

    #1546
    Carl Arbogast
    Carl Arbogast
    Participant
    0

    That’s very interesting how this game is handling that.

    And it looks like you already planned everything with the modes and customizations levels.
    I suppose I could do some quick Photoshop to show what kind of 3D overlay could help to survive some deadly mechanics, but I promise I won’t post a lot, only the rare ones that could easily guarantee to survive something very hard to deal with, like the 2 I already described.
    They can help to survive, but more important they can help to learn, so Miqobot users can deactivate them once they are used to the mechanics.

    #1547

    Nott
    Participant
    0

    Oh what I meant Miqo was that she needs to know to not stand in the AoEs. I was still thinking about Seph at the time so I’ll use that as an example. Not standing in two of the players AoE’s after they’re marked with green markers and getting behind the boss.

    Many of the tougher fights are all about positioning. I’m curious how Miqo would handle Blaster in A6S where there’s similar mechanics. Lining up for mirages, not stacking markers and finally baiting them towards the tank. Pretty complex for a bot to do…and what about when another player fucks something up? Yeah it won’t be Miqo’s fault if another marked player stands too close to Miqo while she’s marked but adding to the mess by not moving isn’t good either. Swindler is a whole nother thing; recognizing the number of orbs over someone’s head, stacking if needed and seeing whether you’re on high or low platforms?

    Fights like that, having a bot do it for you is just really taking the fun out of the game IMO, even if it is possible I wouldn’t want to do it. Raids are about the only thing I log on for so I’ll not encourage that development, but I will be amazed if you can work it out!

    #1560
    Carl Arbogast
    Carl Arbogast
    Participant
    0

    I think solok that you have the wrong idea about the DPS Solver. For end-game Raids, I think it will be like Miqobot described it, a bot capable of taking care of the DPS (in full auto mode, or manual selected mode AoE/Burst/CC/etc. with an optional priority enemy list by Names), you will have to take care entirely of the movement, placement and the mechanics, but you could have some visual or sound assistance, like having 3D straight lines in front of the A6S Mirages, or the Bot telling you with Windows TTS you got marked for Earth Shaker, etc.

    It won’t remove the fun out of the game, the bot will just take care of the DPS, giving you time to concentrate on surviving and doing mechanics.

    What I’m expecting from this feature, is to increase even more my DPS, giving up on my outside-game macros to let Miqobot handle procs faster than I, and without cluttering the server and the queue of skills with spamming macros. The fun will be in the tweaking, and the selection of the appropriate modes and overrides.

    For low-level dungeon, Miqobot will be able to play them without you I think, but for end-game, you’ll have to take care of the mechanics.

    #1562

    Nott
    Participant
    0

    you will have to take care entirely of the movement, placement and the mechanics,

    Yeah I must of missed where this was said. Even if I were performing the mechanics I still don’t think I’d have much fun with it though.

    custom scripts for specific encounters in order to teach Miqobot how to navigate during the battle and how to deal with certain mechanics.

    This is where I was deriving the bot doing mechanics.

    Either way it goes, I don’t know how much I’d use it. Like I was saying, it will be a marvel to see it work…but raiding is what I like about the game. Crafting and gathering, those are just tools that I don’t mind handing off to Miqo 🙂

Viewing 15 posts - 1 through 15 (of 16 total)

You must be logged in to reply to this topic.