Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice

How do you build a game with good AI?

Discussion in 'General Discussion' started by Arowx, Jan 21, 2016.

  1. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    Just wondering how the AAA game developers build good AI into the RTS, FPS Open World games?

    And how those techniques and approaches can be applied to Unity?

    Note: I'm sure there are AI / Pathfinding systems on the asset store but this is more of a what AI systems do the AAA guys use, and where can I find out more about AI programming?

    Are they using Neural Networks, Genetic Algorithms, Behavioural Trees, Finite State Machines, Cellular Automaton, Baking AI into Pathfinding/Navigation Data?

    What tools are they using to make good AI?
     
  2. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    Ideally they are using their brains! :)
     
    Arowx likes this.
  3. iamthwee

    iamthwee

    Joined:
    Nov 27, 2015
    Posts:
    2,149
    Deep learning
     
    Ryiah likes this.
  4. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    Would deep learning work in a game setting as it needs lots of training examples for it to learn how to recognise patterns, that could be an issue depending how you build the game. E.g. you would probably need at least an open beta to capture data to train up the AI.
     
  5. Deleted User

    Deleted User

    Guest

    Run at walls, realise that isn't a good idea then jot it down on a notepad. Throw stones at rocks, see if anyone does actually pay attention, jot it down in a notepad. Chase chickens to see if they lay eggs when you run at them, jot it down on a note pad then cook breakfast.

    Rinse and repeat.

    Main tool of use: Paper based notepad.
    Secondary tools used: Pan, Fork, Plate.
     
  6. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,471
  7. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,623
    No, they're using dumbest approach possible. The most difficult part of the game AI is collision avoidance and pathfinding. Actual behavior decisions are trivially simple most of the time.

    You will want Behavior trees, of course, but only because those will give you overview of what system does at any given point of time. Not becuase they'll magically make your system better.
     
    landon912 and GarBenjamin like this.
  8. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    I would recommend asking AAA developers.
     
  9. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,623
    This topic again?

    You need to realize that purpose of game AI is to be fun.
    The purpose of self-learning solution is to find perfect approach to something.

    Meaning IF you succesfully develop decent solution, it will be undefeatable by any human player.

    Example:
    https://en.wikipedia.org/wiki/Human–computer_chess_matches
    Short version: machines were defeating humans at chess since about 2005.

    And if you'll try to train ai for being fun, you'll need to define fun using mathematic means in order to create fitness function.
    https://xkcd.com/720/
    Good luck with that.
     
  10. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    6,056
    I've never been given an AAA, BBB or any other certificate but I'll reply anyway ;)

    AIGameDev is a good place to start learning. From what I've seen AI in games is usually simpler than it seems. Forget about neural networks, learning algorithms and genetic algorithms, they aren't really relevant at the moment to the games industry. State machines for simple games, behaviour trees for less simple games, reaction over planning, and lots and lots of cool animations.
     
  11. zombiegorilla

    zombiegorilla

    Moderator

    Joined:
    May 8, 2012
    Posts:
    9,052
    Mostly math. (deterministic)
     
  12. zombiegorilla

    zombiegorilla

    Moderator

    Joined:
    May 8, 2012
    Posts:
    9,052
    Yes, simple is better. Or at least as simple as possible. Complexity always grows, keeping it as simple as needed (or only as complex as needed) helps keeping it from growing exponentially. Genetic algorithms are fun, and done experimentation with them, but not practical in typical games (I should say, not practical in game play, they can be useful for development). Depending on the game, they should be deterministic and very controllable. It is often like procedural content, if you attempt to replace human designers with algorithms, it can suck the fun out of a game.
     
  13. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    And again and again and again... I don't want to say 'get used to it', because I haven't and wouldn't expect anyone else to, either... but this science fiction-esque stuff is a frequent topic amongst those who will never program such a system or design a game that needs it.
     
    Ryiah likes this.
  14. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    6,056
    Yeah, I've had some fun with procedural generation but you realize quickly that unless you're making a game like Spore it isn't really useful for anything except terrain generation, texture generation, and a few other things. I've also played with some simple neural networks and I couldn't even imagine how anyone would approach using it for any realistic implementation of AI.

    That's not to say that I don't believe that everything under the sun can be understood and created using logical principles, but asking a computer farm to reproduce human evolution just so you can have some half-decent AI in your game is just horribly inefficient. State machines, behaviour trees and a variety of cool animations will be the recipe for a while to come I think.
     
  15. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,635
    This.

    Undefeatable AI is pretty simple to write for most games. In a stealth game, for instance, literally all you have to do is have one guard actually look at the objective they're "guarding", and suddenly there's no way to reach it undetected. All of the smarts on top of that are actually smoke and mirrors to make things feel dangerous while actually giving the player more opportunities to win.
     
  16. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    THIS!!!
     
  17. zombiegorilla

    zombiegorilla

    Moderator

    Joined:
    May 8, 2012
    Posts:
    9,052
    That?
     
    entropicjoey1 and Master-Frog like this.
  18. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    6,056
    While you make a great point about fun, the purpose of self learning is not necessarily to be good at winning. One might give the algorithm the task of finding the perfect solution to simulating the average human joe.

    However simulating the correct inconsistencies, fallibilities and quirks of a human-like AI is actually another layer that must be built on top of simulating the intelligence of that character, and no algorithm has come anywhere near the latter.
     
    angrypenguin likes this.
  19. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    WhAt ElSe???
     
  20. zombiegorilla

    zombiegorilla

    Moderator

    Joined:
    May 8, 2012
    Posts:
    9,052
    Yea, that is a big part of it. In theory you could use simulation to create these types of things, but there is point where the effort to create the simulation is more expensive/time consuming than traditional methods. Like theater or film, you don't have to create every detail, just the parts that are seen.
     
  21. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    Which is actually why it is preferred by people who don't know how to finish their games... it is a stall tactic. I'm revolutionizing a.i... it's not that I am a bad developer, it's that I am better than everyone so normal a.i. won't suffice, etc.

    If I make a game and release it, maybe nobody will like it... but if I convince people I am programming some mind-blowing learning a.i. by not saying that I'm not doing it...

    How to do a.i. has been covered, at long length, in maaaany threads. If you want I can make a thread list by using the search feature and typing "ai" if you want... or you can. Hint.
     
    Last edited: Jan 22, 2016
    zombiegorilla likes this.
  22. BFGames

    BFGames

    Joined:
    Oct 2, 2012
    Posts:
    1,543
    FSM's and Behavior Tree's seems very common for a good reason.

    Neural networks, learning algorithms, genetic algorithms, etc, is something you use in academia mostly. Also for very good reasons! I wrote quite a few of those for games on my master. But so far i only used Monte Carlo Tree Search (UCT) for one released game (was/is VERY experimental) else i used simple FSM's or something like it.

    That said then things like genetic algorithms can be used for very awesome procedural generated content now a days with great success.... but not really AI related.
     
    Aiursrage2k and angrypenguin like this.
  23. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    6,056
    Hehe, the stall tactic thing is true, I've done it myself before I accepted that games were not simulations..

    But I don't agree that AI has been covered very well. For example, I did a lot of programming AI for space combat and there was very little in the way of resources to help when I started. When I read threads on AI in general, I get the feeling that everyone can recognize 'good' AI (good in the sense of being exciting and balanced, not necessarily good at winning) but knowing how to translate that balance of something challenging but not too difficult, not to mention emotionally stimulating, into raw programming is rather more difficult.
     
  24. The-Little-Guy

    The-Little-Guy

    Joined:
    Aug 1, 2012
    Posts:
    297
    It really depends on the game and the game's objective.
     
  25. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    Good point.

    And this is why you cannot rely on academic dissertations, or sci-fi soundy stuff to make good a.i. It takes a human touch. An artistic touch. Because it is an art form.

    And I do believe that has been touched on.

    Even knowing how to do it, there is still a great deal of work and discovery and decision making left. There's no magical algorithm that will just make enemies learn how to play your game.

    You're still the designer. It is all on your shoulders.
     
    GarBenjamin likes this.
  26. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    6,056
    I have a cold, cold feeling that a computer will one day prove you wrong :D but today is not that day, nor will it be for a very long time.
     
  27. landon912

    landon912

    Joined:
    Nov 8, 2011
    Posts:
    1,579
    All this talk of yours about super advanced self-learning AI is redundant. Most AI is built for game-play enhancement and maximizing fun. I mean, if you want to stop someone from reaching a point in a stealth game, have them stand around it in a circle scanning each door. Boom, stealth game unbeatable. So why do they patrol in easily predictable styles with short sequences of them leaving their back exposed to everything? (gotta check the cracks in the wall for intruders) It's because they're purposely built to give a window for their death. So next time you sneak up on someone, know that they are aware of you; but they're laying down their digital life to enhance your experience.
     
    Kiwasi and Master-Frog like this.
  28. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    Think about how smart the average person is.
    Then realize that half of all people are dumber than that.

    And in a world where not even all humans are highly intelligent, you expect me to believe that one day, a machine designed by humans will create a simulated intelligence that is smarter than humans, themselves?

    I don't know what it's called... it seems like the same concept of why you can't create a real perpetual motion machine, there is always breakdown and loss of integrity. Entropy?

    If there is going to be an intelligence higher than humans, it isn't going to come from some magic calculator. Computers are slave machines that follow a rigid set of instructions and crash over the slightest error. All perception of computer's having intelligence is a result of clever design, and can only be mistaken for actual intelligence by a person who isn't thinking critically.
     
  29. landon912

    landon912

    Joined:
    Nov 8, 2011
    Posts:
    1,579
    Well computers have a significant advantage over us: the ability to do an extremely large amount of simple operations in a short amount of time.

    Since in theory any complex operation can be broken down into simple operations, it's not too unfeasible for an AI being to exist. It'll simply require an enormous amount of initial human input. Therefore, there's a lot of investment in AI learning so that a machine can be "raised" like a child would. Learning as they "live". It will come, but we'll probably be in the ground by then.
     
    entropicjoey1 likes this.
  30. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    You speak of an inanimate object as though it has a will and motive.
     
  31. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    6,056
    Fixed :D

    But really, I'm not too sure that what you say is correct. If you presume that we all came from an amoeba without any intervention by higher intelligence, and that some day we can make an amoeba, then it is possible that we could end up with something at least as intelligent as ourselves, and presumably evolution wouldn't just stop there. And if it seems like it would take a long time, the most crucial, fundamental advantage over humans that computers have, as @landon91235 said, is raw processing power. If intelligence ever evolves within a computer, it is likely to evolve very fast indeed.
     
  32. zombiegorilla

    zombiegorilla

    Moderator

    Joined:
    May 8, 2012
    Posts:
    9,052
    You should never personify inanimate objects, it might offend them.
     
    Kiwasi and Master-Frog like this.
  33. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    You don't seem to understand. Nobody ever seems to understand... and I tire of being frustrated by this. Trains follow the tracks. Computers follow the instructions. When the track ends, the train does not learn to walk. When the instructions end, the computer halts.

    It is the nature of machines.
    Computers are only machines.

    Even the simple machines we have now need constant maintenence. How much moreso will exponentially more complex machines require?

    At no point down the line of this relationship between more complex machines requiring more routine intervention and maintenence result in a reversal of this trend, where the machine maintains itself because it understands what it is... because the machine cannot understand, because the machine cannot think, because the machine is a toy created by man and it will never become a real boy, no matter how many stars you wish upon.
     
  34. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    6,056
    Do you believe in evolution? If so, do you think bacteria have some fundamental property that machines could never reproduce?

    That said, awareness of self, such as you or I have, is something that is very difficult to comprehend in a scientific way. How a computer might have that is something I find very difficult to understand. Although since it is not a measurable quantity, it is kind of a moot point.

    Maybe we should get this thread back on the rails though :D
     
  35. zombiegorilla

    zombiegorilla

    Moderator

    Joined:
    May 8, 2012
    Posts:
    9,052
    It depends on the type of content. Gameplay type content, even the most basic is still pretty lacking. Match3 games are a good example of super simple content that is very difficult to make engaging to player. The most successful ones are hand tuned and created, including the item drops. Or level type games like Angry Birds. A lot of the subtle stuff that makes them fun and just the right amount of challenge is very difficult to quantify in way that can be generated procedurally. Some use a mix, where the content is procedurally generated initially and then hand tuned.
     
  36. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    Fundamental fail. Fail assumption. Equivocation. Fallacy. So many fallacies and assumptions.

    So now computers are going to evolve, because computers are lifeforms, because we are alive and therefore computers are also living creatures, because man cannot claim to be unique, because to claim that life differientiates from non-life necessitates a definition of life, which necessitates a discussion of the origin of life, which leads to a debate about Creationism, which leads to hate, suffering and the dark side.

    Your error is this: All evolving biological lifeforms we know of are related, however distantly, to a single entity. To say that evolution is a universal characteristic of all life would require studying extraterrestrial life, which is in short supply. Therefore, evolution is unique to our particular family tree of ameoba, as far as we know.

    Therefore, computers should not be expected to evolve, except in comic books.
     
  37. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    6,056
    That is why I asked you the question ... thanks for answering :)
     
    Master-Frog likes this.
  38. landon912

    landon912

    Joined:
    Nov 8, 2011
    Posts:
    1,579
    A computer doesn't have to be self aware to show self learning or simulate human life. I mean look at the Sims, there are AIs simulating life. There is no reason that it fundamentally cannot be expanded into real life. Simply look at self learning projects, or hell Boston Dynamics machines know how to run on any terrain possible. Self driving cars. You can neglect it all you want, but machines are advancing into areas previously reserved for humans and it will only continue.
     
    entropicjoey1 likes this.
  39. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    Your opinion-based prediction about the future has been noted.
     
  40. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,623
    And in order to do that, you'll need to define fitness function that will measure "human-joe averageness" for your algorithm.

    How, exactly, are you gonna do that?

    Well, it has been done, but it currently requires massive computation power, and results in unbeatable AI.

     
  41. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    I think we are talking about two different things.

    Unbeatable AI is the easiest thing in the world to make.

    In a first person shooter, make it never miss and always know where the player is. Make it cheat. It knows what weapon the player is using, make it have the counter. Make it duck when the player starts to squeeze the trigger.

    Honestly, I have never had a problem making the AI too hard.

    And that wasn't even the question posed, nor a response to what I said. I think you just wanted to talk about the deepmind thing. Which is fine.

    Looks to me like a cheap trick presented with Ivy League charlatanism to a stoned out hipster crowd.
     
    Last edited: Jan 22, 2016
  42. Neoptolemus

    Neoptolemus

    Joined:
    Jul 5, 2014
    Posts:
    52
    Back on topic slightly, the answer to your original question really is "whatever gets the job done". The interpretation of "good AI" depends hugely on the game you're trying to make.

    Neural networks, deep learning and the like all make for nice blurb on the back of the box, but they are complex, require specialist knowledge and increase the risk of unexpected behaviour that may break gameplay. If all you need is for enemies to duck behind cover, shoot at the player and maybe try flanking occasionally, then trying to stick a neural network in there is a REALLY bad idea.

    Most AI you find in games use some kind of state machine and behavioural trees. The AI has a list of tasks and priorities and it tackles them based on its current state (in combat, fleeing, defending etc). For navigation, navmeshes are popular nowadays as they are cheap and easy to use, but even they have limitations.

    Ultimately, AI is another tool, like the renderer, collision detection and physics simulation. For the most part, like those other systems, you want your AI to be as simple as possible, and remain within the bounds that you have set for your design. If you can create AI that is fun to play with/against using a basic state machine and old-school node-based navigation, then do that.
     
    Last edited: Jan 22, 2016
    zombiegorilla likes this.
  43. darkhog

    darkhog

    Joined:
    Dec 4, 2012
    Posts:
    2,218
    What if you use deep learning, but then cut training in half so it can be defeated, but leave "learning mode" on? Boom, you got a selling point called "AI learns from your behavior and no two playthroughs are the same" (latter part because the idea is to store "additional" learning data as part of save data so each time you start the game, only basic "not TOO stupid" learning db is loaded and then it learn from the player).
     
  44. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,623
    Won't work, because half finished training will result in large holes in behavior, and IF you leave training on, the system will eventually become unbeatable.

    It is a waste of time, frankly.

    "When all you have is a hammer, everything looks like a target for applying deep learning".

    Instead of chasing after popular buzzwords, people should look for the right tool for the job. You don't NEED deep learning, unless you're dealing with pattern recognition. And if you do need it, you better have computer cluster prepared.
     
  45. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,471
    Without making it have superhuman abilities?
     
  46. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    10,258
    Yep. An example:

    I'm working on a stealth game inspired by the original Thief games and one of the first things I started working on was the AI. Initially, I wanted the AI to be smart so that the player would have to actually think when trying to outsmart guards. I went through the following steps:
    1. The guards would log the last heard position of the player and walk to that area to investigate. Simple enough, that's so bog standard that it's part of the official stealth tutorials.
    2. When the guards saw the player, they'd radio the position to the other guards and enter pursuit mode (or attack mode if so designated)
    3. If the player left the guard's line of sight, they'd continue in the direction the player was last seen travelling, which was accomplished with a simple velocity vector calculation.
    4. Here's where things get complicated. Because I wanted my AI to be smart, I made sure that they didn't suffer from "first day on the job syndrome." You know, how AI in stealth games will lose sight of a player and just enter a standard patrol mode but not really investigate the surrounding area most of the time? I made it so that my AI would actually investigate the room you were last seen in and cover the exits.
    5. Because of this, it was possible to get into situations where you couldn't escape the AI and you'd get a game over because you were either found out or shot to death with bullets from guns.
    6. Guards also had a memory. If you snuck into a room and left the door open, they'd see the open door and go into their investigative mode. As this was a silent investigation, there was no audio cue aside from a "huh?" to indicate to the player that they were probably going to be found out. Guard memory also extended to things like computer terminals being left on/off and lights being on/off.
    7. Guards would also block exits to the building in alert modes, because that was the smart thing to do.
    All these things in combination with one another left playtesters constantly getting caught and generally having a really bad time, myself included. It turns out that there's a delicate balancing act between "smart AI" and "AI you actually want to engage with in a game."
     
  47. Farelle

    Farelle

    Joined:
    Feb 20, 2015
    Posts:
    504
    *coughs* I think games are meant to experience doing something you can't or don't want to do in real life. When it comes to the "can't" I'm pretty sure most people would be easily caught by a trained guard, so it IS probably very realistic :) but will definitely give the player the feeling as if they are themselves, not a role they play of "the thief" who is doing it for their whole life already. So making the AI less smart or less human, is elevating the player.
    On the other hand, I'm sure some players would find alot of joy in a hardcore stealth simulator ;D
     
  48. BFGames

    BFGames

    Joined:
    Oct 2, 2012
    Posts:
    1,543
    That is very true. But as you mention then more and more focus are put into using a mixed approach of PGC and human design. Either by letting designers tweak the algorithm or taking content after its generated and tweak it or both.

    'Agent' based approaches to PGC is pretty interesting too. Using it to handle level design in our newest game Kim (see signature). I wrote the different agents. But all rules for them are based on numbers from a spreadsheet that our designer controls.

    Back to topic, then in regard to commonly used algorithms for AI i forgot various planning approaches, which is getting more focus at the moment.
     
  49. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    @Arowx AI takes some thought. Not to make the enemies smart in the manner of being unbeatable. As others have mentioned that is a flawed goal.

    I am at that same point of thinking about enemy AI for my current game. I think I know what you are talking about and are trying to get. Basically to not have enemies just moving back and forth in simple patterns and to feel more alive?

    To me the goal of game AI ahould be to make the enemies more interesting to deal with.

    I'm not saying this is the best approach or even a great approach but what I am thinking right now is...

    Enemies will have different personality types. Different attribute ratings defining them.
    So basically it just ends up offering a bit of variety as I'd expect in such a game.
    Some enemies are "cowards" and will flee. Player can chase those down. Others will leave player alone as long as they leave the enemies alone. Of course positioning will mean player won't leave those alone. ;)
    Finally the hunters will always be on the prowl and very aggressive.

    Beyond this I am thinking of having different primary goals for them. For some it is to simply reproduce and play. Those are the cowards. They will find ideal spots, build nests lay eggs and that becomes the spawn point.

    The balanced one is a collector/hoarder. It's primary joy in life is to collect things. And finally the primary goal of the hunter is to hunt. It enjoys the hunt. It always looking for prey to chase down, kill, eat and then repeat.

    I'm even considering making the enemies themselves interact. Hunters may find the cowards and wipe out a nest. Not sure on this one yet.

    If I take the approach explained above what I hope to achieve is a world that is more alive with enemies that are more interesting.

    Still as you can see there is no need for some advanced AI found in academic white papers. It is all just basic stuff. A sequence of simple states that produces a story for the enemy's life. Answering the basic questions "why is it here? what does it do all day?"

    Not sure if that helps. I am a hobbyist not a pro. This is just the kind of thing I want to personally see in games.
     
  50. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,623
    Yes, it will be undefeatable without having superhuman abilities.
    Humans mess up. AI does not. By default, AI will win.

    Yeah, spot on. When AI does proper job, human player will have hard time.
    You'll need to add either a lot of hand waving (player is sooo good at stealth that can't be spotted straightaway), or dumb ai down.

    Generally, human player stands no chance against properly trained guards in a properly defended enemy base. Those guys could just lockdown everything and purge every room with napalm or poison gas. Just to be sure there are no intruders.

    That's why instead of making AI it makes sense to concentrate on making Artificial Life. Those have different goals. The goal of AI is to solve problems. The goal of Artificial Life is to be entertaining.
     
    Ryiah, GarBenjamin and Billy4184 like this.