Announcement

Collapse
No announcement yet.

Computer Controlled Players

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #46
    Reaver:
    bandwidth is not really an issue, a computer controlled ship requires as much bandwidth as one player. And these won't be 'stealing' bandwidth, but merely transforming the bandwidth to entertainment for the players. Much like the other bots do.
    Last edited by Mythrandir; 04-28-2004, 09:26 AM.

    Comment


    • #47
      Ok thnx myth, that solves my question, let the bot making begin! :P
      I was just a little worried because I can remember trying to host 1 bot on a server of my own, and Im on 56k and I just couldnt do it, so I assumed the worst :eek:
      1:Best> lol why is everyone mad that roiwerk got a big dick stickin out his underwear, it's really attractive :P
      3:Best> lol someone is going to sig that
      3:Best> see it coming
      3:Best> sad

      Comment


      • #48
        Originally posted by Mythrandir
        I've been studying this particular subject before. There are a view issues I'd like to bring up which makes it difficult to create such a bot.

        First of all, you will have to create a client program equal to Continuum. The client has to download and interpret the map. It has to understand all the configurable settings for an arena so that it will accurately simulate the physics of the ship it's flying. It has to anticipate on bouncing against walls. It has to track bullets, do accurate hit detection, apply the right amount of damage.

        After you've done this, you would have a bot program that could log on to a zone, download the map, simulate the shipsettings. If you also programmed keyboard input into it, you could fly the ship realistically as well.

        The next step would be to actually create the computer controlled ship.
        Applying pathfinding to the ship wouldn't be that hard. But if you want to add all the 'extra' movements, such as going quickly across a corner by bouncing against one wall, or moving to a point while dodging a bullet, then it's already a lot harder to program.

        Now there 2 options in how you create your bot: A bot that can learn, a bot that can't learn.
        To create a bot that can't learn would be relatively easy, you just study shooting and movement patterns from experienced players, and program that into the bot. To combine these patterns to one fluent playing ship would be tough, but doable.
        The downside to such a bot is that it's incredibly predictable. Sure, you can add some randomizer on what movement pattern to follow next. But after a few hours the enemy player will quickly recognize movement patterns of the enemy ship and catch it on the same mistake the bot keeps making.
        In pub you can kill a newbie only a couple of times in the same way, then he will adapt to it and change another way of flying. The bot however will proceed making such stupid mistakes. Hence why such a bot will always end up dissappointing, unless the programmer has so much free time that he programs dozens of different behaviors in the bot.
        Ofcourse such are my views on it, as there are computer games with computer controlled enemies which play quite well. On the other hand, they got one or two persons working at least 40 hours a week on such an advanced AI.


        To create a bot that learns is even more challenging. I guess it's doable with a set of static operations (like pathfinding, goals) mixed with flying behaviors which could be defined such that you can apply a genetic algorithm on it. So that the bot would experiment combinations of behavior and proceed with merging and mutating succesful behavorial patterns. Maybe small neural networks could be used in aiming for the target, as to anticipate on which way the enemy is most likely to dodge. A problem is that the feedback of each bot behavior can only be achieved by actively dueling players, so it would take days (weeks?) for a bot to "learn" the basics.
        I'm not an expert in AI programming so what I've said above might be untrue on some aspects.
        You've JUST stated EVERY SINGLE reason of why it'd be so much fun to create! Don't think of it as an obstacle, but think of it as a challenge ^_^ Challenges are great, and fun! This is something i'd be extremely proud of making.. I could use this as an example of my capabilities when I apply for a job, man!

        Comment


        • #49
          Originally posted by Mythrandir
          I've been studying this particular subject before. There are a view issues I'd like to bring up which makes it difficult to create such a bot.

          First of all, you will have to create a client program equal to Continuum. The client has to download and interpret the map. It has to understand all the configurable settings for an arena so that it will accurately simulate the physics of the ship it's flying. It has to anticipate on bouncing against walls. It has to track bullets, do accurate hit detection, apply the right amount of damage.

          After you've done this, you would have a bot program that could log on to a zone, download the map, simulate the shipsettings. If you also programmed keyboard input into it, you could fly the ship realistically as well.

          The next step would be to actually create the computer controlled ship.
          Applying pathfinding to the ship wouldn't be that hard. But if you want to add all the 'extra' movements, such as going quickly across a corner by bouncing against one wall, or moving to a point while dodging a bullet, then it's already a lot harder to program.

          Now there 2 options in how you create your bot: A bot that can learn, a bot that can't learn.
          To create a bot that can't learn would be relatively easy, you just study shooting and movement patterns from experienced players, and program that into the bot. To combine these patterns to one fluent playing ship would be tough, but doable.
          The downside to such a bot is that it's incredibly predictable. Sure, you can add some randomizer on what movement pattern to follow next. But after a few hours the enemy player will quickly recognize movement patterns of the enemy ship and catch it on the same mistake the bot keeps making.
          In pub you can kill a newbie only a couple of times in the same way, then he will adapt to it and change another way of flying. The bot however will proceed making such stupid mistakes. Hence why such a bot will always end up dissappointing, unless the programmer has so much free time that he programs dozens of different behaviors in the bot.
          Ofcourse such are my views on it, as there are computer games with computer controlled enemies which play quite well. On the other hand, they got one or two persons working at least 40 hours a week on such an advanced AI.


          To create a bot that learns is even more challenging. I guess it's doable with a set of static operations (like pathfinding, goals) mixed with flying behaviors which could be defined such that you can apply a genetic algorithm on it. So that the bot would experiment combinations of behavior and proceed with merging and mutating succesful behavorial patterns. Maybe small neural networks could be used in aiming for the target, as to anticipate on which way the enemy is most likely to dodge. A problem is that the feedback of each bot behavior can only be achieved by actively dueling players, so it would take days (weeks?) for a bot to "learn" the basics.
          I'm not an expert in AI programming so what I've said above might be untrue on some aspects.
          Well, another trick you could use with those neural networks is to come up with prediction matrices. The basic idea is that the neural network processes the data based upon certain inputs (velocity, distance, etc), comes up with the best answer, puts it in a quickly addressable format, and the bot uses that instead. Neural networks tend to be too slow for realtime. In fact, it might end up being unable to react fast enough. Serializing common results should make it possible for the bot to guess in realtime. Of course, situation parameters is another problem since for every new parameter you will experience, at minimum, an exponential growth of the solution space.

          Of course, I think we should be dedicating our time to things such as making the core better before we attempt something like this.

          Comment


          • #50
            Originally posted by mirroreimaj
            the word 'learning' constitutes A.I. so no they could not learn.. but its not imposible to make a bot harder than most advanced players could beat.. so it would be a worthy skill test so that people can teach themsleves. .. heres an idea. a trainer that would tell you the mistakes you made every round in a bot duel and help you along with hints and advice.. from noob to exp players, all have new things to learn
            that would sucks ppl would start cheating with bots. i hope u guys wont make that kind of bot
            www.BasingCrew.com

            Comment


            • #51
              Originally posted by Xog
              You've JUST stated EVERY SINGLE reason of why it'd be so much fun to create! Don't think of it as an obstacle, but think of it as a challenge ^_^ Challenges are great, and fun! This is something i'd be extremely proud of making.. I could use this as an example of my capabilities when I apply for a job, man!
              So make it.

              Comment


              • #52
                Of course the whole of SS and various zones is to only play human players (since they are the best RI (real intelligence) and much less predictable). However, this game environment is perfect to test AI concepts and see how they perform. Its not just for the hell of it, but to test AI theory out.

                As for me, I have had a long time interest in AI, and I have some education to back me up. There is various ways to add AI into the game, yep Rob Dougan by using neural networks or expert knowledge systems...that itself is a big AI debate. Both methods are good, not 1 or the the other.

                Infact, the other main reason I have studied Warbird Dueling is to become an expert dueler... I feel I'm getting closer to cracking the perfect warbird duel style and I have made notes of everything I learned and gather/acquired dueler tip/tactics from various elite warbird duelers. However, I may never be one of the best duelers out there...due to my reaction time (some people may have better physical reaction skills than mine..but I'm up there). By becoming an expert, you build an AI warbird duel expert knowledge base, and the AI can use that as a beginning framework, from that use heurtistics to even learn better tactics.

                Bandwidth and server cpu process usage concerns? With inefficient JAVA Bots, you'll be quite limited. What prittk has to do is make his game more open..don't release the tcp/ip engine core source to the masses, but other parts of the game could be open. So we can put fast efficient C(Or Assembly) code within the game itself. That way it will take way less cpu server usage if you have complex AI computer players as an added game zone feature.

                All I'm saying nothing is completely impossible, and can be achieve if some of us have enough ambition to get this done. Unfortunately, this software is not open.... so we all are stuck in limbo... its all upto prittk, he holds the keys to this wonderful game.

                This can be a long term goal for some of us to achieve, of course you TW Developers have more immediate priorities at the moment to be concerned with.

                We could have a Turing challenge, see who can develope an AI warbird dueler and pit it against the TWEL warbird champion. If it wins, lol... sad moment for us humans, but a triumpf in AI theory.

                All I know I wana test this out in the near future, it has always been a long time interest of mine; since I'm also very interested in autonomous robotic systems or mechatronics (hey check out latest Popular Science on robotic bugs/insectoids that do house chores, quite fascinating field of study).

                Comment


                • #53
                  You can make bots invincible without needing staff powers. A while ago, I obtained a bot from a well known ss site (dont wanna give the name of the site, or the exact bot here) and took it for a test run in Robotech zone

                  You can have it teleport to any other player, on any team. And it never died. ever. after a 70:0 rec, it was finally banned.
                  www.liveforspeed.net

                  Comment


                  • #54
                    That's because bots, on their own, do not take damage. At all.
                    Mr Arrogant got put into a basing game once... he just sat there, taking no damage because he isn't programmed to do otherwise... and i guess MatchBotR4 pulled rank on him or something.
                    The whole point of this discussion is to create an AI Bot that is invincible because it is great at dodging, not because it can't take damage.

                    Originally posted by Disliked
                    Imagine a world without morals... it would be like the tw community
                    +++ Divide By Cucumber Error. Please Reinstall Universe And Reboot +++

                    Comment


                    • #55
                      Subspace/Continuum is created to play with eachother, not to automate it more than my car..
                      Ive been around when TW had no bots at all.
                      I think we should train with eachother, not to put a bot to do so.
                      Old farts like me should understand this, new ppl should 2.
                      Thanks,

                      Comment


                      • #56
                        Yes, I forgot what Mythrandir brought up which is a very good point about having distributed bot processing via custom continuum client. I have thought of this too, but we are SOL at the moment since mr.prittk holds the keys to make it alot more easier and possible.

                        I have skimmed thru that SS Developers forum and all I could find was Mr.ektend talking about prittk concentrating solely on making packets take less bits (or bytes) thus helping to save on server costs. Yes, that is a priority to work on, but there is other improvements to add to this game. It would be quite sad if they never happen, since this game has a very good MMPOG engine.

                        To even attempt an alternative SS/Continuum client project would be a serious under taking and you would need a good team of skilled people to make this project a reality. I have no idea where prittk stands on all of this, maybe he simply just doesn't have time to play around and only uses his scant time for working on priorities..like making packets more efficient.

                        But yes, a Continuum client which had an AI automated control option would let your computer do all the AI processing and just simply send packets like any other normal player client.

                        It would be completely stupid to have java bots on the TW server do AI processing, it would add unnecessary tasks/threads that would undermine the TW Server primary duty.. to be the central hub that links hundreds of players together.

                        If anyone think such a project would destroy the games concept of just human vs human, are alittle too paranoid. Nah, it would actually add to the game and might actually take this game to the next level. The main problem is how would you know who is a bot and who isnt? Perhaps, there could be an icon on the F2 Arena Player list signify that this is a bot player.

                        As for using Neural Nets, I don't think they would help in this sort of application. Neural Nets are great for image pattern recognition applications for example.... I admit my knowledge of neural nets is quite limited.

                        I would probably look into Finite State Machines and Expert System approach. Ok, this game isn't Chess, but could impliment similiar AI strategy concepts in other games that have AI. The other interesting part, and would be funny if there was BOT players that go into pub arenas and trashtalk players..etc.. or it might be useful for TW rpg arenas, where you could talk with in arena AI Agents..could have dialog with AI players.

                        Sometimes, I wonder about this Player named Spinsanity. Typical Spinsanity quotes anti-repubican (bush) political quotes; I seriously wonder if this player might be a bot, who knows. Did you create Spinanity, Mythrandir? lol..

                        In fact, it would be fun to duplicate some of the various personalities we see frequent the TW Zone. Like you get these wankers who go into pubs with their warbirds and just utter these words...very simple logic:

                        their vocabulary...

                        if they kill you, they say this...
                        "ez" "owned' "pwned" "lol" ...etc

                        if they die:

                        "luck" "laggot" "laff" "lies" ..etc

                        if the miss: "eat"

                        Just an example, but goes to show you some players in these game aren't much different than a bot.

                        Anyhow the bottomline to making this all possible, is we need an open source Continuum client or reversed engineer SS client with many added features and the ability for us bot developers to easily test and write bot code.
                        I think in the end distributed processing bots is the way to go, to help the SS server do its primary duty.. just focus on thee packets..etc.. not spreading your SS server too thin.

                        I know this Greminliner is working on ASSS (A small subspace server) for UNIX but I think only suppoer Continuum versiona 0.39... i think he was working on a UNIX Continuum client.

                        The main problem is if open source SS clients are out there, there would be idiots that would use it for cheating and undermine the whole point of the SSCx system. But remember there is some programmers out there that would never think of going to this low level of cheating. To me that would be completely stupid.. yeah Continuum TRAINER edition.. it would be boring after awhile.. we keep coming abck to this game cuz there is challenge at a level playing field and we make online friends.

                        Comment


                        • #57
                          Dude, every time you mention ASSS or any type of SS development, you always fuck up Grelminar's name.
                          jasonofabitch loves!!!!

                          Comment


                          • #58
                            The first step to making bots a reality is for PriitK to create an API or something along those lines. All the map processing/taking damage/etc should be processed by the API. It should have the same basic commands (left right forward reverse bullet bomb etc) and some way to read data off the "screen" (ie, check to see if player x is on the screen, or if theres an nme on radar). Once that's done, it'll be up to people like us to write the actual AI for the bot.

                            I don't think its realistic to write an "unbeatable" bot. It would take a flawless AI which can learn perfectly and thousands of hours of dueling to a reasonably good skill level. To reach an "unbeatable" level would require a couple thousand more hours A much more realistic expectation is a bot which can beat 50%-75% of pub players. Throw in some basic aiming and dodging techniques against low level players and it will be an interesting fight.

                            I'm actually really interested in this... hope someone creates an API sometime in the next year or two... hopefully by the time that I'll be taking courses on AI =)

                            Comment


                            • #59
                              TWcore has class methods that do much of what you say. Also, if you get a bot with good intelligence then I would say it would be similar to giving a fairly normal player insanely fast reflexes. It is possible to make a bot be able to beat all but the strangest play styles.

                              Also, it idea behind genetic algoithisms seem fairly easy to code, but if someone knows of a good site that explains neural network type AI, many thanks.
                              People who are rather more than six feet tall and nearly as broad across the shoulders often have uneventful journeys. People jump out at them from behind rocks then say things like, "Oh. Sorry. I thought you were someone else."

                              Comment


                              • #60
                                Originally posted by Jason
                                Dude, every time you mention ASSS or any type of SS development, you always fuck up Grelminar's name.
                                Ah sorry Gremminar, so sorry, just find it hard to remember how to spell that name and was too lazy to look it up. Your right, thanks for pointing that out Jason.

                                The main problem one of the TW 10 rules states that any BOT client is considered cheating. So do anything like this would be a bannable offence.

                                Perhaps, if beforehand you let the TW staff know that this IP address might use a experimental AI BOT client. And never use it in events without approval by staff...

                                Like if I had such a AI BOT client and went into a private arena with some friends to test it out, that would be doing no harm.

                                What I wrote above might be the only legal way to go about it. Just to throw such a client in pubs would be rude and breaking a rule, which I would never do.

                                Comment

                                Working...
                                X