Page 1 of 1
When will bots get a brain?
Posted: 09 Aug 2014, 00:24
by novationx
:/
As we all know by now the game has a small playerbase (yes its already a lot better since latest updates/demo

) so some fun gamemodes are just left alone because nobody wants to join an empty server and nobody wants to wait until finally some players have joined...It's normal.
So a good solution or a start would be "bots" because they make the waiting more fun/bearable.
BUT, currently bots are simply brainless. They run in water/offzone. They dont grapple. They dont slide. They dont dodge. They dont zigzag. They only run in straight lines... They are stuck... Its just absolutely no fun to play against a bot.
The minute you think a bot is doing smth normal, it decides to make an impossible shot on you.
My Counter Strike Condition Zero in 2002 had bots and when I launched a new map I got a progressbar : "Teaching the map to the bots."
After 1 minute the bots were 100x smarter then what we have now in ShootMania. And this is 12years later
All I'm trying to say is that bots could be a welcome improvement when a lot of servers/modes are empty. It gives us the chance to test out modes (even when there arent enough real players ) & it makes the waiting for real players easier.
Please move this a little bit up your priority list. Thank you

Re: When will bots get a brain?
Posted: 09 Aug 2014, 11:12
by plopp
novationx wrote:My Counter Strike Condition Zero in 2002 had bots and when I launched a new map I got a progressbar : "Teaching the map to the bots."
After 1 minute the bots were 100x smarter then what we have now in ShootMania. And this is 12years later
How much sliding/grappling/dodging/zigzaging did these bots do?
I think it's harder than you think to make "smart" bots in a game like this.
I admit it would be fun if they were a bit better though.
PS. Did you get an early copy of cz?

Re: When will bots get a brain?
Posted: 12 Aug 2014, 01:23
by Wabbitface
They also only shoot you perfectly in the center of your hitbox, which means when they see you partially behind cover, they don't even try to hit what is visible.
That's one thing and another is of their fascination with jumppads. "Ohhh a jumppad, I better use it, Ohhh a jumppad, I better use it again, Ohhh...."
As players, sound is our wallhack in the game, at least give the bots some sort of realisation of when you are closeby and make them change their movement to make themselves harder to hit from your position. This is one of the areas in which you can change their difficulty.
But hey bots took ages to get into the game, and after most recent updates they improve but only by a little.
Re: When will bots get a brain?
Posted: 25 Aug 2014, 12:48
by Acclement
I had the same problems while devolping Bots for my TitlePack...
I had to create special Maps that are easy no navigate even without busters and stuff.
It is kinda sad that they don't even run, or realize "OH i got shot from behind maybe turn around?".
They get stuck easily and do not even realize it.
I am not saying, that they should use everything like a Pro Player would do, but they should have alteast some awareness of their surroundings.
If anyone is interested in my Mode or how i implemented the Bots:
http://forum.maniaplanet.com/viewtopic. ... 00#p226800
Re: When will bots get a brain?
Posted: 25 Aug 2014, 14:57
by novationx
So you're limited in your mapping which results in "worse maps".
Again a good arguement to improve bot behaviour. Ty
Also, I have absolutely no clue how you improve bot behaviour. I dunno if its hard or easy... but even small improvements would be already awesome.
"dont stuck a bot in a spawn"
"let them avoid water & offzone"
"let them take jumpers"
"teach them to zigzag"
Again, this looks "easy" to me, so I suggest it, but maybe its very hard. Anyways... any improvements are surely welcome

Re: When will bots get a brain?
Posted: 26 Aug 2014, 12:44
by Acclement
Here is what i did to increase the "awareness" of them:
Initialization:
Code: Select all
_Player.Driver.AggroRadius = 100.;
_Player.Driver.DisengageDistance = 200.;
_Player.Driver.Accuracy = .9;
_Player.Driver.Agressivity = 100.;
_Player.Driver.Fov = 100.;
_Player.Driver.ShootPeriodMin = 100;
_Player.Driver.ShootPeriodMax = 500;
_Player.Driver.ReactionTime = 200;
_Player.Driver.RocketAnticipation = True;
_Player.Driver.Scripted_ForceAimInMoveDir = True;
_Player.Driver.AttackFilter = CSmPlayerDriver::ESmAttackFilter::AllOpposite;
As players, sound is our wallhack in the game, at least give the bots some sort of realisation of when you are closeby and make them change their movement to make themselves harder to hit from your position. This is one of the areas in which you can change their difficulty.
I don't know if I unterstood you correct but here is what i did:
Code: Select all
else if(Event.Type == CSmModeEvent::EType::OnShoot)
{
Shoot(Event);
PassOn(Event);
}
else if(Event.Type == CSmModeEvent::EType::OnNearMiss)
{
NearMiss(Event);
PassOn(Event);
}
else if (Event.Type == CSmModeEvent::EType::OnHit) {
if (Event.Victim == Null || Event.Shooter == Event.Victim) {
Discard(Event);
} else {
//For Bots
if (Event.Victim.Armor - Event.Damage > 0) //Player still alive
{
if (Event.Victim.Driver != Null) // Victim is a Bot
{
ForceTarget(Event.Victim, Event.Shooter);
}
}
...
Code: Select all
Void ForceTarget(CSmPlayer Bot, CSmPlayer Target)
{
if (Target.SpawnStatus == CSmPlayer::ESpawnStatus::NotSpawned) return;
if (Bot.Driver.ForcedTarget != Null)
{
if (MathLib::Distance(Bot.Position, Bot.Driver.ForcedTarget.Position) > MathLib::Distance(Bot.Position, Target.Position) || (Bot.Driver.ForcedTarget.SpawnStatus == CSmPlayer::ESpawnStatus::NotSpawned))
{
Bot.Driver.ForcedTarget = Target;
}
}
else
{
Bot.Driver.ForcedTarget = Target;
}
}
Void Shoot(CSmModeEvent _Event)
{
//Some constants you can change the way you like
declare Real MaxRange = 50.;
foreach (Player in Players)
{
if (Player != _Event.Shooter && Player.Driver != Null)
{
if(MathLib::Distance(Player.Position, _Event.Shooter.Position) < MaxRange)
{
ForceTarget(Player, _Event.Shooter);
}
}
}
}
Void NearMiss(CSmModeEvent _Event)
{
// Catch invalid events
if (_Event.Victim.Driver == Null) return; // Victim is not a Bot
if (_Event.Type != CSmModeEvent::EType::OnNearMiss) return; // Wrong event type
if (_Event.Shooter == Null || _Event.Victim == Null || _Event.Shooter == _Event.Victim) return; // Invalid players
ForceTarget(_Event.Victim, _Event.Shooter);
}
Sad but true, I did not find a way to let them move "zigzaging" or improve their navigation...
But at least they realise that someone is shooting them

Re: When will bots get a brain?
Posted: 28 Aug 2014, 14:33
by Dommy
Nice work Acclement
I got an idea to expand your functions to library, so all modes can benefit from it, what do you think?

Re: When will bots get a brain?
Posted: 16 Sep 2014, 09:52
by Acclement
domino54 wrote:
I got an idea to expand your functions to library, so all modes can benefit from it, what do you think?

Here is what I did:
https://www.dropbox.com/sh/ua5kz39n0q50 ... o1HBa?dl=0
The Navigation of the Bots is still poor....
Re: When will bots get a brain?
Posted: 16 Sep 2014, 11:43
by novationx
Why is it our job to do this...?
( but Thank you for doing this ofc )