More bots!
I was just wondering why do we have such a limited selection of bots. Why not just make them all available? I for one play custom games to practice new champions and would really love if the variety was increased.
Riot please do this!
I was just wondering why do we have such a limited selection of bots. Why not just make them all available? I for one play custom games to practice new champions and would really love if the variety was increased.
Riot please do this!
You think it's simple to make all characters to become available as bots by pushing a button eh? It's a lot more complex than you think and it could take few weeks to program a bot champion to behave properly.
Yeah. Riot might actually have to break a sweat on something that doesn't directly give them money. It's like when company tries to push quality and customer service BEFORE shit hits the fan and leaves them back pedaling.
You think it's simple to make all characters to become available as bots by pushing a button eh? It's a lot more complex than you think and it could take few weeks to program a bot champion to behave properly.
He's not saying "do this right now thanks rito". He's saying do it. It doesn't need to be soon or anything.
It's a programming issue - bots are often simpler champs because they're realistically easier to program responses for. Even flash-tibbers is only two abilities. Could you imagine trying to program a rammus bot to powerball into teamfight, taunt carry, dbc, and ult? Or, say, Zed to spam laugh?
or
to spam laugh
I can imagine it actually. Riot is just lazy and smart at the same time. I they would have to program in a latency failure into the game on rng. That would give a window to possibly escape a perfect execution of a combo. If anyone is old enough to have played MK in the arcade you know that a perfect AI actually comes from lazy programming and is not fun to play against. They could program a monster level AI that would make you sorry you played. But you wouldn't want it cause it would literally be cheating.
Actually not true.
While it is easy to make bots that perform perfectly executed combos and dodge skillshots with ease, the idea of making a bot that has a good grasp on the strategy of the game is completely different. You could theoretically make bots that have aimbot on their skillshots, sure but what good would that be if players could just split push and win? And what valuable laning practice would we get as players? Bots can't handle all of the complexity of a game. Any time you ask why can't robots do ____? The answer is usually because things are big. That's why it's hard to make bots that play well. On the other hand, we could run some Q learning from watching pros play....
It might be true that Riot can't do it. And it might be true that you could create an exploit that required a non confrontational battle. But in a way that is teaching you. This game is not too hard for someone to program a base level strategy that would make playing against it a nightmare.
Suppose you had 3 built in scenarios where the bots would try to take dragon. (with slight variations)
Bots could be programed to play as good as gold. They could if they wanted to make a Jungler. The problem most likely would be, as is often the case, the computer would have to fudge cheat to be competitive. EX: anytime your jungler got close to his they ganged you with the closest lane ally. If you didn't ward like a pro you couldn't match their AI awareness. BUT if you asked for it you could get it.
Riot talks about pathing through the jungle to make a jungler. Yet somehow we are on the verge of cars that can drive themselves. You are one "MIT student project" away from having a competitive BOT jungler. Riot just doesn't want to pay him\her to write the code. This game is only complicated for Riot's programmers.
You also have to consider the server load when you are imagining complex logic AIs. I mean yeah all the bots could be playing GM level chess strategy-wise but how would all those logic trees impact the latency in 'real' games?
I don't know. It might be a little it might be a lot. It might be on such small demand bot play of Advanced nature is has a server of it own for each territory.
First off, you're ignoring the server load that sort of logic would take. What you're discussing might be considered as "if" statements--though individually, they're rather cheap, in bulk they get very expensive very quickly do to the way they operate (check condition-- if true, move to next block, if not, load memory address of else or everything after if block and then load that routine from memory. Loading memory stuff is really computationally expensive). Though the logic might seem simple to you, actually making this run on live would be a disaster. And that's not even considering the rest of the more complicated logic.
Second off, you might find that these strategies may seem trivial to code, but they're not. How do you know which scenario to run taking dragon? How do they gauge dueling strength? How do they decide whom to gank- bot or mid or even jungler? When they're behind, should they attempt to dragon. Should they attempt to counter dragon? How do they position to gank? How do they position fighting dragon; should they go towards the end of dragon pit so they can emergency flash over the wall? What if that's the enemy jungle? The thought processes you take for granted and the subconcsious processing you do naturally as a human being have to be made explicit for computers. And I don't think you understand just how difficult that is.
Also, self driving cars are very very different. Most of them currently have 2 very simple tasks (which we're still failing miserably at-- most because pictures are big). One is to steer within a set boundary: roads. The other is to avoid hitting things. Steering is pretty straight forward; we've had that for a while. Steering in the right direction... Well, yeah-no. We're a couple of years away from it, sure, but technology grows at an exponential rate. The development ecosystem means that if one person develops a cool trick for something (say, a laser on a self driving car to better determine distance), then the rest of the world quickly adapts that and finds even better tricks to add onto that. So the idea that we're only one "MIT student project" away from even self driving cars is horribly false. And keep in mind that self driving cars have an entire computer dedicated to that ONE task; a server has to control thousands upon thousands of games simultaneously.
You misunderstand. The shortcut is cheating. If it was checking everything on the fly it would be more labor intensive but it wouldn't be. It would actually be forcing you into a finite number of options. Whether you go left or right is inconsequential. It is always aware and looking at you. They would actually be programming it to act like it doesn't always know what you are doing. They would chose scenarios based off your level, position on the map, and kill capability at the the time they executed the plan. Sometimes they would play safe if you didn't have a lot of kills. If you got to big for your britches they would rubberband a little. They wouldn't do anything too crazy to stay in it. It would look like what any other decent team could do in that situation but sometimes they would just do it perfectly if they needed to. If you took too long at certain stage of the game based on averages, they might drop the hammer on you or start taking objectives.
Ganking would be a matter of who was at a distance to disrupt then from killing their target at X amount of health. In a blink if their mid left lane outside of your vision, if you didn't follow they would know what damage output they had in a certain window of time to kill you. If the mid did follow them or move towards their intended target they would break off for the reduced window of opportunity and safely path away from any danger. Or RNG would dictate that sometimes they would walk to you and attack to give you a freebee every now and then to simulate a lack of vision on their part.
And the last stinker... their passive gold would be slightly larger than human passive but they wouldn't last hit in lane as much as normal and wouldn't be so aggressive attacking like they do now ignoring cs, and thus being out leveled in the laning phase. There would be a disclaimer in that mode. I get your point about the load. I don't know what part is on your computer and what is client side. But my argument was can it be coded not can your system run it.
As for Driverless Cars being simple, we don't have the same definition of simple. It has four sets of sensors working in conjunction with nav and the on-board computer. You still have to count the navigation as part of the driving system. You can't separate out the logistical part of of how it all comes together under one system. Seems complicated to me even though it is the integration of a parts that were already in existence.
I hope you realize that AI struggle the more information they're given. It's why most of our AI attempts to simplify the problem. We make simpler models simply because we can't process all that information. It doesn't matter if the AI has a probabilistic model of where you are because of imperfect information or if they have all the 1337 h4x, the more they have to plan around your positioning, the more computationally intensive it gets. And concepts like playing safe and "acting like it doesn't always know what you're doing" are incredibly difficult to quantify. Again, not really feasible. You're still taking a lot for granted like how it knows what kill differences and cs differences are significant (which varies on champion matchup and the like but hardcoding cases would get ridiculous very quickly-- it grows on order of n! to the number of champions in the game, not even including alternative builds. Gold scales very differently on AP vs AD ezreal, for example). Or even how to play safely. Or even identifying which scenario they're in given all the information-- especially if scenarios overlap. And how does that adapt to new metas? How do they deal with 2x AP carry bot lanes? Or double top instead of an enemy jungle?
Your play is suboptimal for several reasons including if you want to force a teamfight bot lane because you're Brand or logic of that sort, but even assuming suboptimal play is okay, the actual gank and fighting would be impossibly difficult for the computer. Prioritization of targets, positioning, timing of CC and other skills... A perfect combo is really easy. Plenty of LeBlanc and Zed players can assassinate a single target and run away gleefully. A perfect teamfight or even 2v2 is completely different and so even if a silver LeBlanc can kill a Platinum Brand, in the teamfights, the brand will win. Every time. But a platinum LeBlanc might actually win the teamfight against the plat Brand (assassinate Brand, provide decent sustained damage through the rest of the fight). The ability to do that for a computer is incredibly difficult to define algorithmically.
Also, no need for inflated passive gold. Perfect last hitting should theoretically be pretty simple. Good balance of harass and cs is completely different and incredibly complicated.
Because the AI has to operate for everyone, none of the computations are done client side so your computer is irrelevant. It's tough to code and it's tougher to run.
The simplicity of the driverless car comes from that fact that working with the individual pieces is pretty easy (most of it software) and the fact that the sensor readings are much smaller. Lasers give you distance, GPS gives you coordinates, the only tough thing is the camera and even that we reduce into a much simpler image so we don't have to deal with all the complexity. I'm not saying it's actually simple, I'm just saying it tends to be simpler than operating on a complex video game.
We're further from solving Starcraft than we are from driving cars.
The inflated passive gold insures that the human factor won't overwhelm it mid game. It could last hit at the start before level 3 but the combos would be unnecessary to code if you just cheat a little and save that info for something else.
Team fights would screw it up more so than taking objectives early on. AI combos would be hard to do. I don't have an answer for that cause I don't know if they would have to create groups of AI champs that had been per-programmed to work with each other or what. But ganking and jungling could happen. it already breaks off to other lanes and prioritizes champs that are low health now.
You still sound like you are trying to program it to actually see items instead of just looking at the sum of the math. You got:
It does seem like a lot. And you have to fake like it doesn't know where you are and to make mistakes when it most definitely has the advantage. (randomly. It is possible for you get unlucky and have the AI play a perfect game.)
There might even be match ups that AI just can't beat with out going mirror mode cheat on you. I will concede that. The only thing I really won't give in to without evidence is that it is TOO intensive to create. Get me something on that.
Say the AI jungler is working on blue. It has already calculated how much health it will have when it finishes the camp and whether it can gank afterwards. It will reassess its lane partners once it finishes the camp. If you come with in attack distance while it is on camp it would decide if you had enough damages to kill the AI with full load combo to cooldowns vs its current health, damage output and cool down. It doesn't seem like it would be hard for it to decide that a second AI member needs to assist based on distance and added damage output. It kind of does that now bot just not very well.
If you were Zed or Leblanc, as soon as you hit the button to start your combo it knows your full damage output and knows if it needs to flash or not. Without any hard code to the particular champ it knows. If you add a champ to the combo I guess it gets tricky You will probably win as long as you have the numbers advantage. I am not sure you would want the AI to be making Wu Kong LCS plays juking and ganking doing double kills even if you could code it. I need some evidence to believe that it is too much to be done. I'm going fishing.
The heuristic you give for combat ability ignores item actives and the actual effects of the QWER which means your performance and your "combat-ability" heuristic don't match up reliably. I'm not trying to code for individual items but duel power varies drastically. The sort of thing that would happen with your heuristic is the enemy dives you as you play morgana and then suffer when your press R+Zhonya and just sit there while they die. Or another example would be they don't understand Luden's passive or the effects of Randuin's... How many variables are you going to account for before this becomes even remotely reliable? Not even duels can be calculated so simply.
Even the idea that the damage of your full combo is all you need to calculate is wrong. Skillful weaving of autoattacks will make Leblanc that much stronger. Zed, it's an obvious part of his play. Early game, I can get kills by using auto attacks with Veigar. Yes, Veigar auto attacks make the difference between dying and a kill. But now you need to calculate how many attacks you're going to get in on combo and in the process of kiting or being kited... etc. So, no, the bot wouldn't actually know whether it had to flash or not, at least not before the fight. During the fight, you might want the bot to blow your ultimate cooldown before it flashes--if it can survive. It makes more sense for the bot to use its godly reaction time to reaction-flash rather than plan for individual combos.
At any rate, as for closing in on ganks, that's viable sure but the AI is bound to make mistakes. Like losing turret or falling 20+ cs behind in farm because some guy decided to play Wu Kong and do some LCS jukes in the jungle to stall for 30+ seconds. The bot exploitation strategies are amusing to consider. At any rate, even then, your heuristic calls for too much prioritization of kills. Why not just chase them away from the jungle? Did I just propose of a fix? But then, why can't I just weaken you and then get "chased away" from the jungle and now your jungler is farm starved and your mid had to stop to help. And you can repeat this process. Even if not intentionally exploiting the bot, counterjungling is a strategy and this would be the inevitable result of something like you plan.
To give you an idea of how impossibly weird heuristics get, there was a robot whose job was to clean a house; it was an automated vacuum cleaner but infinitely more complex than a roomba. So, to make it vacuum effectively, they decided the utility function for the robot would be the amount of dust it ate.
Know what the robot did? It would vacuum, then dump its dust back onto the floor so it could vacuum more.
Even a seemingly simple AI won't take for granted the assumptions you hold to be true (in this case that dumping the vacuum on the floor and sucking it back up does not constitute a cleaner home).
I'm not denying that Riot could make better AI. I even mentioned a better solution: Q-learning from skilled players; it would give an opportunity for robots that have a better idea of how to play and the Q-learning, which is computationally expensive, would leave a policy which is comparatively cheap. But the resources necessary are tough and no bot's going to play at "Gold level" any time soon-- not even close. You'd need 100's if not thousands of samples and instead of just automating bots to play against each other, it would probably be better if they analyzed utilities from pro player games (of course, this demands a very complex utility function now). But we need lots and lots of utilities before Q-learning comes even close to converging to some sort of usable, stable value. But then, next patch when the meta changes? We'd need new samples. Especially in between seasons but not just then. DFG removal would've required re-learning on a third of the roster. And the computer/server load/time necessary for this to happen is huge. That's why it isn't happening. Riot's prioritizing server stability, better PvP game experience, and other bug fixes over programming an entirely new AI.
So, sure. It's not TOO intensive to create; there are a couple of straight forward options to make it happen. But it's only not "too intensive" from the human perspective. For computers, it's awful.
The heuristic you give for combat ability ignores item actives and the actual effects of the QWER which means your performance and your "combat-ability" heuristic don't match up reliably.
I did make passing mention of it. As it stands now they just stand there and die. Seems like runaway would be easy to code. At current the AI knows when you have your ultimate up. They already know how to code for active awareness. They just don't do it cause they want the bots to be for training only not destruction. I'm not sure but have you seen a bot use Zhons cause that would explain whether they had the capability to code for active understanding.
Conceded that there were certain champs and combinations that would more than likely do the AI in, but that is why it would cheat a little. That is why there is rubber banding. AA woven in could be accounted for but you have to remember many champs\players would be blasted by an AI that knew whether you could go all in with a full AP combo or not. I am not trying to make DEEP BLUE. I am aiming for GOLD 5 ability not Challenger.
Wouldn't a Leblanc that used the same recorded combo be equally as deadly on an all in solo enemy?
At any rate, as for closing in on ganks, that's viable sure but the AI is bound to make mistakes. Like losing turret
Wouldn't an AI easily be able to calculate your move speed, AS, AD, health of the turret, and it's distance from the enemy it left to go do the gank in order to determine if you could drop turret before it got back from its more than likely successful gank?
Over all. We agree that it feasible. How good would it be and how intensive would have to be tested and calculated. Do you really think GOLD 5 level play style is too hard for the AI to simulate even with a little fudging? I wouldn't expect it to win but it might make you say "GG! I was worried a little at the 20 minute mark." As it stands now, I watch tv while I play Heim on the current AI just to get my first win. They just walk back and forth through my turrets like they are sprinklers. Riot can do better than that.
I'm talking more about he ability to be aware of enemy's items. And besides, the current coded reactions for these things are dismal.
And I think you're underestimating gold V. I went from Bronze V to Gold II so I can tell you the vast differences. I played consistently with mid plat players so I can tell you those too. There are some silver players with better mechanics than plat players (seriously-- I've lost lane to a couple of them while I've won against quite a few plats. Admittedly, I'm a Veigar main so the weird matchup may have caused some inconsistency in data). But the sheer ability to affect the map (dat season 3 ward meta doe) and control the flow of the game (ganks, objective control...) varies vastly. So, sure, we could make Bronze or maybe even lower silver level strategy. But high silver+ requires too much counterplay. Reactions to split push and the like. I don't think it would happen.
But now you're ignoring prioritization. Which is more important? 300 gold from killing enemy jungler (and maybe an additional 300 from going ganking mid afterwards) or stopping enemy from snowballing with 8+ CS, 150 gold from turret, and reduced map control from lost turret? How do you quantify the differences between the two? Complex utility functions require more time to calculate!!!
I don't agree that it's actually feasible. I'm arguing you could naively code it but it would never be able to run on live. So, yes, the code could be written but either the server would stall for 30 seconds for every 1 second of gameplay or, you know, years of AI research could be done into making better league of legends bots...
Also, all of the considerations I placed above which you mark as "deep blue" are considerations you have to make to even get out of silver, not even to mention beginning to climb through gold. (Well, at least if you're as mechanically poor as I am...) So, I think part of this problem is you have a lower threshold in mind for gold level skill than I know to be true.
I guess we just have a difference of opinion when it comes to whether this would fall closer to just an extremely complex group of finite propositions that are constantly being evaluated OR learning AI That actually takes into account more than the math of it all.
Priority, team comp, strategy in game, and decision making whether playing proactive or reactive is just some things that I am not versed enough to know. As I have seen several games work towards goals that satisfy a final win, I tend to think its a its complexity with a number generator here and there rather than true decision making. It has a list of things it must do in order to win. When you play into its hands, its smashes you for it. When you challenge it and force it to change priorities, it merely reorders the list into the next viable structure. If the list had 1000 possible ways to win as a baseline strategy, it still wouldn't actually be thinking or making decisions.
BOTS already cheat to dodge skillshots. It could cs perfectly if you let it. It could take dragon a schedule if you let it. Then take baron. It would never roam randomly or ward in the hopes that it might see you. Everything would be an illusion of human behavior which seems infinitely simpler than actual thought processes. The game runs everything except 5 players with about 100 variables a piece.
That's my take on it though. Good talk.
The list you're specifying is the search space and it's orders of magnitude larger than 1000.
The thing is, this isn't "my take" on it. This is legitimate real world AI problems. From a computer science perspective. Anyone's who's coded anything could tell you exactly how nontrivial an AI is for a game this large. (Seriously, I've met many people who had to spend an hour debugging their first hello world in not-python. They can't even fathom scaling that sort of frustration to a real code base, and who blames them? More realistically, people spend hours hard coding a tic tac toe AI before they realize the concept of game trees and search spaces and then they do a naive breadth first search. Then they try their hand at Sudoku and realize how slow that runs. The world of AI isn't simple...)
Well that I believe.
there is a rammus bot
It's a programming issue - bots are often simpler champs because they're realistically easier to program responses for. Even flash-tibbers is only two abilities. Could you imagine trying to program a rammus bot to powerball into teamfight, taunt carry, dbc, and ult? Or, say, Zed to spam laugh?
He's only asking for new champs to be made bots, not for them to be strategically good (Rammus taunting the ADC) or acting human (Zed laughing). If they can make bots for champs like Zyra then there's no question of bots needing to be "simple" champs. And as far as I'm aware there is a Rammus bot who does exactly what you described outside of not having target selection.
There are some champs who just wouldn't work in bots, particularly the more recent mobility-focused champs like Bard and Rek'Sai because bots just have no idea what to do with strategic mobility (they almost never flash, for example), but most would. Even Zed I think.