|
|
|
Member 105 posts
Registered: Apr 2017
I've done some more work on this AI bot. You can find it hereIt now supports DM4, ZTNDM3, Aerowalk and DM2. It will attempt to play on all maps but don't expect much of a challenge on unknown maps. Although it has kicked my ass on Shifter because of its evil LG and because I suck at the map. While I'm not a fan of DM2 I did like the challenge of trying to create a bot that can play the map. It's a difficult map for a bot to play because of all the doors and platforms. And the fact that there's no LG means a bot can struggle to be challenging for a human. Its best map is DM4. Its worst is DM2 despite being able to move around the map better than me it still struggles to beat me. I guess we humans are just too tenacious!
Member 805 posts
Registered: Mar 2006
I've done some more work on this AI bot. You can find it hereConvenient file sharing on the web, without registration. Simply upload files and share the URL. The files will expire automatically 1 week from now. Not exactly a good place to host something other than 007 stuff! https://tinyurl.com/qwbrasil - QuakeFiles
Member 105 posts
Registered: Apr 2017
Yeah I know. But the idea was that I would update more frequently but it seems nobody is interested in bots these days and so I didn't bother to upload further changes.
I'm still tinkering with the bot and so I'll do another update later. And if you know of a better website for sharing files that doesn't require me to register then let me know.
Member 105 posts
Registered: Apr 2017
There's an update hereI've improved the bot's DM4 and DM2. Also added basic DM6 support. Any DM2 players out there that can give some feedback on how to make the bot more challenging on DM2?. The thing moves around the map much better than me and can probably aim as good as me and yet I still keep kicking its ass.
Member 230 posts
Registered: Jan 2006
What do I need to test this out and what to type in console?
Member 105 posts
Registered: Apr 2017
Hi Moon,
You can place the progs.dat file into the folder named qw that should already be present in your main quake folder. If there's already a progs.dat file present then move it or delete it if you don't need it. The progs.dat file is only ever used when playing quake offline.
I've heard that nquake users can have problems because their progs.dat file is stored in a .pak file and nquake will always use that by default. So if this is the case then you can make a folder in your Quake folder called Humanoid and place the progs.dat file there. Then add "-gamedir Humanoid" to the command line in the Windows shortcut properties. So it should look something like - "Quake/Quake.exe -gamedir Humanoid". Ignoring quotes.
The bot should appear when you first enter a map. If not then use the console command Addbot.
The bot also supports spectator mode so you can add a second bot and watch them fight it out.
Member 215 posts
Registered: Feb 2011
Here is how I got it to work with nquake/ezquake.
1- Make a folder under nquake (or whatever your root is called) called humanoid. For example c:\nquake\humanoid. Not c:\nquake\qw\humanoid, that didn't work. 2- Download the file, rename it to qwprogs.dat (not progs.dat, that didn't work) and copy it to c:\nquake\humanoid. 3- Start ezquake as normal. I tried with -gamedir humanoid but that didn't work for me. 4- Before connecting to a server or loading a local map, type /gamedir humanoid in console. 5- Then do /map dm2. 6- Voila! The bot joins after a couple of seconds.
I only played a quick game and noticed it has very nice RJ and bunny hopping. Didn't pay attention to strategy but did notice it sometimes faces sideways in the middle of a fight. One time I got it a bit "stuck" in a corner at tele exit where it was trying to fall down to big/platforms, but I shot it while still at tele exit and it was hugging the wall as if it was still trying to go down to platforms.
Biggest problem is I tried the /Addbot command after the first bot joined, and it said "lordlame entered the game". Not a good name for a bot... But then I tried another and it was called locust, so it redeemed itself there.
Great work overall!
Member 105 posts
Registered: Apr 2017
Thanks, BD! Currently the bot's strategy on DM2 is to try and take all the megas and stay stronger than its opponent so then it can keep on attacking. If it's weaker than its opponent then it will run away.. I considered giving the bot the boring tournament strategy of camping RA Mega until the opponent attacks and then escaping through the teleporter and immediately going to the the YA cage at Tele and camping there until the opponent appears, then escaping through the teleporter and going back to RA Mega. But honestly I rarely play humans on DM2 because of that strategy. It's boring to be a victim of it and also boring to carry it out. The bot needs to be challenging but also fun to play. If it uses boring tactics then nobody will want to play with it.. There's a few humans out there that also suffer from this problem. But as the old saying goes - "Don't blame the player, blame the map."
Member 230 posts
Registered: Jan 2006
It was a nice change to regular frogbots, which I play quite often. Noticed it sort of stuck at gl near pillar on ztndm3 at some points. Did not notice any misbehaviour on Aerowalk. Only played dm4 once and yeah it's dm4. First time I changed map to dm4 it did not join. I had to change map to aero then back again then it joined. Would be nice to able to lower the bots shaft "aim" though. Promising.
Member 105 posts
Registered: Apr 2017
If the bot becomes too challenging on the LG maps then I'll definitely look into reducing its LG skill. I may make it so that you can choose from a selection of characters with varying skill levels. Perhaps even base them on real players!. As of now my main focus is to make the bot more challenging overall. This is after all why I started the project. The old frogbot just wasn't challenging enough. Although it could play some maps quite well, it sucked at my favorite map - DM4.. When/if I get the bot to be more challenging on DM2 then I'll go back to improving it further on the other maps and then I'll add a skill setting if it ends up being too good. There's lots of room for improvement on Aerowalk and ZTNDM3. I'm confident I could make it kick ass on those maps.
Member 32 posts
Registered: Sep 2016
Not tested the bot, but often bots have instant reactions, reducing reaction time to some human value, if possible, would be good. Also reducing how fast it can aim, like a upper limit on rotation/aim. Many bots do instant 180 shots or turn around to face you in an instant.
Member 105 posts
Registered: Apr 2017
Not tested the bot, but often bots have instant reactions, reducing reaction time to some human value, if possible, would be good. Also reducing how fast it can aim, like a upper limit on rotation/aim. Many bots do instant 180 shots or turn around to face you in an instant. It was one of the main objectives when creating Humanoid was to make it aim gradually like a human. The original Frogbot would also aim gradually so it's not that big of a deal. Although the original Frogbot rarely had to do a flick shot because it never lost track of its opponent. It was a wall hacker!. Humanoid will do flick shots only when necessary and they're not instant. Most of the time it will aim slowly.
Member 105 posts
Registered: Apr 2017
Okay I've made Humanoid's LG more human by giving it a 250ms response time. You can verify this by playing it on POVDMM4 and strafing left and right to see the delay in its LG. I'll reduce the delay if you feel it's a little too easy. Personally I suck with LG and POVDMM4 and so I can't verify how good or bad it is compared to a human. The aim is to make Humanoid play like a Div 1 human player. I've also improved its DM6 and DM2.. I may make a Div 3 bot later with a crap LG and have it position itself differently on the maps to compensate for its crap LG. So basically it'll play similar to me. New upload is here
Member 230 posts
Registered: Jan 2006
Thanks aqlj Played some games and the bots lg is "better" I think. On average the bots lg % is lower, which is more human-like, good. At least at my level.
I have noticed that the bot sometimes get stuck going in n out of teles both on dm4 and on Aero. Is it by design? Sometimes the bots starts camping at certain places, when low on health?
Minor annoyances: (works in frogbot) "Timeup" command does not seem to work properly. If it's on 3 min timeup sets timelimit to 0, at least that is what is printed on screen. After a match, before reloading the map, is it possible to be able to type other map name to change map?
Member 105 posts
Registered: Apr 2017
I was watching some good POV players earlier and I noticed that they constantly wave their LG slightly left and right in the hope of getting in sync with their opponent's strafing. I should look into recreating that at some point. I've also noticed the bot will sometimes get stuck for no apparent reason. I recently fixed an issue relating to the bot picking up dropped packs and so I'm hoping this was the cause of the bot getting stuck. The bot uses different tactics on each map. On some maps I've told it to camp if it's in the lead. On DM2 I've told it to attack if it's stronger than the opponent and run away it's weaker. On DM4 it should always attack if it's losing but it will first try to get as healthy as possible before doing so.. So if you're in the RA area and refusing to leave because you're winning then the bot will first grab the LG, green armor, grenade launcher and wait until it has topped up its health before attempting to attack. On ZTN the bot's tactics is to be very random but I'm currently rewriting its logic for that map. It can be fun to play when it's being random but it'll never be consistently good. That would be like trying to be good at chess by moving the pieces around randomly. I can't recreate your "timeup" issue. Perhaps you didn't wait for the commands to load..
Member 1 post
Registered: Sep 2020
Novice player here - Humanoid wiped the floor with me on DM2 - good practice though Nice job!
Member 105 posts
Registered: Apr 2017
Novice player here - Humanoid wiped the floor with me on DM2 - good practice though Nice job! The plan is to make it even tougher on DM2 and so you may want to hold onto that version of Humanoid until you've leveled up!.
Member 105 posts
Registered: Apr 2017
Uploaded a new version hereI've totally rewritten the bot's ztndm3 strategy. It no longer does stuff randomly and instead it now does everything for a reason.. Also fixed a few bugs that would sometimes cause the bot to stop responding. (Edited 2021-03-11, 10:31)
Member 230 posts
Registered: Jan 2006
Member 230 posts
Registered: Jan 2006
Tried it a little on ztndm3 and one thing that stood out at some games was that it did not attack even if I was in the lead! I had to go and find it once or twice. Stairs up to rl at ya at one instance If it is in the lead it usually camps at ga corridor which I do not find that fun but maybe that is what people do these days? I guess I need to practice my quake hunting skills...
Member 105 posts
Registered: Apr 2017
On ztn its current strategy is mostly to attack if strong and run away if weak. If you trap it in Quad Low then it will eventually try to escape but only if it can survive being hit by a rocket. So what's probably happening is that it's constantly having to wait for more health and armor.
I've tried different strategies with the bots and making the bot be overly aggressive and attacking regardless of status is quite boring because it's just too easy. But perhaps I'll add a setting so then players can learn the pros and cons of different levels of aggression for themselves.
While I'd like to make the bot play at a div 1 level I'm not sure if people actually enjoy playing opponents at that level. I can definitely see a time when it'll be impossible to escape the RA area on DM4. That won't fun at all!..
Member 230 posts
Registered: Jan 2006
I think you should stick to your initial idea of making a div1 bot or at least a bot that challenges you and your skill level. Anything to keep you motivated I guess Regarding strategy, would it be possible to code so that different substrategies kicks in at certain scenarios? Maybe even have some randomness like if a certain scenario happends in game it randomly chooses between a set of substrategies? Maybe this is what is already happening? I'm no coder but from what I have heard over the years the QuakeC is not so great for coding bot-stuff. True/False?
Member 105 posts
Registered: Apr 2017
Yeah it'll often ask a few questions before deciding on whether to attack or not. For example - the bot may be stronger than the opponent in terms of health and armor but the opponent may be in an area where there's lots of armor within reach and so the bot may hold off on attacking. A good example of this is if the bot catches you in the Low RL area on DM2 and you have no armor and so you jump over the platforms and go into Big, the bot won't chase you if it only has 100 armor because it knows you're about to grab 150 armor. And yeah, there's still some randomness needed in certain situations. If trapped the the bot will randomly choose from several escape plans.. Back in the day QuakeC didn't have arrays and so programming a waypoint system was very difficult. Humanoid doesn't use waypoints and so it hasn't been a problem at all. Programming a bot using my method gives me 100% control and I can literally make it do anything. In fact the main reason why I started the project was because I wanted a bot that could do the wall slide or the fake drop at the YA area on DM4. By the way - I think I spotted the issue with it camping at 'GA Corridor'. It's sorted!
Member 230 posts
Registered: Jan 2006
How is it going, any progress?
Member 105 posts
Registered: Apr 2017
Hi Moon!, I'm currently deep in Aerowalk and making progress. And I did fix another issue that would sometimes cause the bot to stay in Quad Low on ZTNDM3. Latest version is here
Member 150 posts
Registered: Nov 2006
If this bot proves to be an improvement over frogbots or the ones used in servers, any chance it could be implemented and replace frogbots that come with nQuake and servers bots? Just a suggestion...
Member 105 posts
Registered: Apr 2017
Ola, Mat! I suspect it won't support enough maps to make it a good replacement for frogbots. Although I don't have any problems with releasing the source if Meag wanted to try and turn Humanoid into an online version. Although there's a risk that Humanoid will no longer be Humanoid after the process. There's a major temptation to take shortcuts when programming bots. We want them to be challenging and yet it takes forever to program a challenging bot. So the temptation is to just say "Screw it, i'll give it the ability the fly around a map dropping atom bombs onto its enemy.". By the way - latest version of Humanoid is hereI've fixed a few issues where the bot was getting lost on Aerowalk. And I've made it a little more eager to keep taking the RA.
Member 150 posts
Registered: Nov 2006
Since it has limited map support, maybe not replace but have both. So for a more real experience a user could pick humanoid and if a map is not supported pick frogbots.
Member 105 posts
Registered: Apr 2017
That seems doable, Mat!..
I think the idea behind online bots was that people can play the bots when there was no other human players around. But I'm not sure if it works as intended because whenever I saw somebody playing a bot online I just assumed it was because they want to play bots and so I didn't bother to join their server. My approach was to go online and wait in standby mode for somebody to join. Unfortunately the game isn't so active these days and so it's taking longer and longer to get a game against a human player. I think in future the only option may be to play offline bots. So spending time turning Humanoid into an online bot may ultimately be a waste.
Member 230 posts
Registered: Jan 2006
Hi, the bot is great so far. I have been playing ztndm3 and aero. Only thing I noticed on Aero is that it sometimes get stuck just above windtunnel at the right wall. I also seen it one time behave a little strange at lg above stairs when I came from high rl and attacked it with lg. It seemed to get stuck at the wall and it was not facing me. Maybe it was only trying to escape down the stairs? Looked kind of strange though.
Looking forward to next version...
|
|
|
|