Page 13 of 23 FirstFirst ... 3 11 12 13 14 15 ... LastLast
Results 121 to 130 of 223

Thread: [WIP] GuiltySpark

  1. #121
    Codesaurus Skarma's Avatar
    Join Date
    Apr 2009
    Location
    Columbus, OH
    Posts
    227

    Re: [WIP] GuiltySpark (formerly HaloBot)

    I have no real hands on experience with AI, but this stuff looks complex and crazy to me. Don't get me wrong, there is no wrong way of doing this and it's very interesting. If I were to do AI in a game I didn't have source code to, I would traverse the bsp tree of the map geometry and do ray tracing for path finding and collision detection and let the bot make it's own decisions instead of limiting the options with hard coded values. I'm sure you have a reason for all this though. It is nice to have a unique node graph for different maps. Good seeing progress on this, keep it up!
    Reply With Quote

  2. #122
    Neanderthal Dwood's Avatar
    Join Date
    Sep 2008
    Location
    Wouldn't u like to know?
    Posts
    4,189

    Re: [WIP] GuiltySpark (formerly HaloBot)

    Quote Originally Posted by Con View Post
    bumpu

    This video is unable to be displayed because the YouTube video tags were used incorrectly. Please review proper use of the tags here.
    Now all you gotta do is change the looking vector!
    Reply With Quote

  3. #123
    chilango Con's Avatar
    Join Date
    Aug 2006
    Location
    Victoria, BC, Canada
    Posts
    8,397

    Re: [WIP] GuiltySpark (formerly HaloBot)

    As you can see in the OP, there's still a few outstanding things on the to-do list. It's getting there though. FunctionNodes now accept postfix expressions for parameters.
    Reply With Quote

  4. #124
    chilango Con's Avatar
    Join Date
    Aug 2006
    Location
    Victoria, BC, Canada
    Posts
    8,397

    Re: [WIP] GuiltySpark (formerly HaloBot)

    A little proof of concept:




    The AI system is now fully functioning...it just doesn't support many functions and data sources right now. One function I've added, seen in the AI text file as "!0", prints the parameter given to it. It will print to the AI output textbox in the final version, for now it prints to debug output in VS. The number preceding the ":" is basically a tick indicator for the AI timer. The reason it's random is internal, not really important.

    You can see the parameters actually contain game data sources $4 and $5 which corresponds to the players aim vector. I also have player x, y, and z as sources right now.

    By looking at the debug output, you can see it prints two numbers per tick. That's because the highest priority TaskNode, PRINT_X, is concurrent (*) and so the next highest priority gets executed after. If I removed the "*" then only the task with priority [1.0] would get executed.

    Basically I just need to keep adding data sources and functions now to get this really cookin'. You'll eventually set up priorities based on distance to enemies and such for deciding what method of attack the bot uses for example. Another task might be capturing the enemy flag, but the priority of this task depends on a few things (don't want to concern the bot with capturing when its in the middle of a firefight). Capturing the flag could have multiple subtasks like getting to the enemy's flag, and returning the enemy's flag to your base. The priority of these will depend on whether or not you're holding the flag.

    I'll try to have another update next weekend.
    Last edited by Con; October 25th, 2010 at 02:47 AM.
    Reply With Quote

  5. #125
    Neanderthal Dwood's Avatar
    Join Date
    Sep 2008
    Location
    Wouldn't u like to know?
    Posts
    4,189

    Re: [WIP] GuiltySpark (formerly HaloBot)

    Make it so we can import move positions and use those
    Reply With Quote

  6. #126
    chilango Con's Avatar
    Join Date
    Aug 2006
    Location
    Victoria, BC, Canada
    Posts
    8,397

    Re: [WIP] GuiltySpark (formerly HaloBot)



    The aimbot is done. It's pretty good; it constantly adjusts the lead based on ping and velocity. It does get messed up when they crouch or get in a vehicle, but I'm not too concerned about making it perfect.

    The aimbot is just another FID a FunctionNode can have. It takes parameter player index, so it can always aim at one player or some function of data sources giving a player index. I've also added several more data sources and FID's for your bots to use:

    FID List
    Code:
                PRINT = 0,
                AIM_AT = 1,
                GOTO = 2,
                GOTO_CLOSEST = 3,
                GOTO_ALT = 4,
                GOTO_CLOSEST_ALT = 5,
                MOUSE1 = 6,
                MOUSE2 = 7,
                SLEEP = 8
    Data Source List
    Code:
                PLAYER_X = 0,
                PLAYER_Y = 1,
                PLAYER_Z = 2,
                CAN_WALK = 3,
                VIEW_ANGLE_H = 4,
                VIEW_ANGLE_V = 5,
                CAMERA_X = 6,
                CAMERA_Y = 7,
                CAMERA_Z = 8,
                CLOSEST_PLAYER = 9,
                LOCAL_TEAM = 10,
                PLAYER_COUNT = 11,
                LOCAL_PING = 12,
                CLEAR_SHOT = 13,
                SHIFT_KEY = 14
    I added in that "SHIFT_KEY" data source to show how easily this thing can be exploited for use as an aimbot for the program's user. I wanted to have hot-keys accessible as data sources anyway, but the power of the AI system lets you make an aimbot with the following simple AI text file:

    Code:
    # When the shift key input ($14) is 0, doing nothing has higher priority. However, when shift is held, aim (!1) at the closest enemy ($9)
    [0.5] NOTHING !99(1);
    [$14] AIM !1($9);
    I obviously don't want to add to Halo's aimbot problem. I need ideas from you guys on how to solve this. Should I disallow hot-keys and aiming in the same file?


    The other new data sources and FID's make the bot function at a very basic level now. Here's the aptly-named new001.txt:

    Code:
    *[1.0] GOTO_CLOSEST_ENEMY !3($9);
    [0.5] AIM !1($9);
    *[$13] SHOOT_AT_THEM {
        *[1.0] CLICK_DOWN !6(1);
        *[0.7] SLEEP !8(30);
        [0.5] CLICK_UP !6(0);    
    }
    It always goes to the highest priority task first: GOTO_CLOSEST_ENEMY. That's self explanatory, but note that it's concurrent (*). This means that once it's done executing, it'll move on to the next highest priority TaskNode. In this case, it's either aiming at the closest enemy or clicking to fire. Clicking to fire depends upon the target being visible or not ($13) but it's also concurrent, so it always ends up aiming at the target anyway. Because AIM is not concurrent, if SHOOT_AT_THEM has a lower priority (it's either 0 or 1) then it'll never shoot.

    So about all that does is runs to enemies and shoots at them if they're visible. Not a team player!

    Edit:
    There's a couple other things I should mention. The first is a new addition to the UI called "Use Camera". The little "you" circle in the graph view follows your player coordinates and that's what it uses to place new nodes and such. If so feel like it, you can opt to use camera coordinates instead. This can make placing nodes in difficult places easier, like just inside walls for ladders to work properly. Since it no longer relies on camera coordinates for everything, you can watch it from 3rd person in devcam now.
    Last edited by Con; December 27th, 2010 at 01:18 PM.
    Reply With Quote

  7. #127

    Re: [WIP] GuiltySpark (formerly HaloBot)

    Quote Originally Posted by Con View Post
    Should I disallow hot-keys and aiming in the same file?
    Yes.

    Aimbots are really easy to detect with sight-jacker and it's not hard to ban people from servers so long as an admin is online. If you're playing in a server without an admin and a botter it's easiest to just leave to another server. It's not really a problem anymore.
    Reply With Quote

  8. #128
    chilango Con's Avatar
    Join Date
    Aug 2006
    Location
    Victoria, BC, Canada
    Posts
    8,397

    Re: [WIP] GuiltySpark (formerly HaloBot)

    no shields shotguns on damnation



    Not bad

    It would have won if it spammed grenades like CrazyReaper did. Maybe I'll work on that next?

    Also, source code will be released when it's done.

    Something that just surprised me is that the AI has hardly any overhead at all. Running through the priority calculations and pathfinding every 100 ms plus constant path following only used at most 4% CPU in task manager. Only when you have the graph view open does it go up to ~20% because it has to draw all that without GPU acceleration. Might change that later but I don't think it's a big deal.
    Last edited by Con; December 27th, 2010 at 10:14 PM.
    Reply With Quote

  9. #129
    HA10 Limited's Avatar
    Join Date
    Sep 2006
    Location
    England
    Posts
    7,800

    Re: [WIP] GuiltySpark (formerly HaloBot)

    Very nice indeed, I'm impressed.
    Reply With Quote

  10. #130
    Movie Maker Siliconmaster's Avatar
    Join Date
    Sep 2006
    Location
    NJ (College)
    Posts
    2,192

    Re: [WIP] GuiltySpark (formerly HaloBot)

    Woah- that's pretty darned awesome.
    Reply With Quote

Thread Information

Users Browsing this Thread

There are currently 2 users browsing this thread. (0 members and 2 guests)

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •