View Full Version : HL2DM bots...
Pierre-Marie Baty
21-02-2005, 19:16
guess what ;) ...
they work! :D
pnyxxpress
28-02-2005, 21:04
How about providing the run down how to do this. I'm moving to a rural area and I've been looking for this mod.
Thanks..
All my bots do is to press primary attack with the grav gun occasionaly trying to attack me, but they haven't picked stuff up.. so I have to dropped stuff near them so they can fire things at me and hit me :P
I don't think we can get very far without some weapon code for bots.
Pierre-Marie Baty
01-03-2005, 03:47
it's a matter of time, pony... give the coders a few weeks and I bet a HL2DM bot is out then :)
Grav gun code, cheesy ? Hah, don't tell me that will stop you! :D
Still nothing for us to play with ?
How are the bots comming along PMB?
Pierre-Marie Baty
18-03-2005, 09:11
Well, I was expecting someone would have ported botman's HPB template to Source... it's straightforward... but since nobody seems to be doing it, maybe I gotta do that myself :|
Is it just me or is everybody else extremely busy ? Not that I'm not myself, anyway... :|
I'm just to technical impaired, I guess. ???:(
Maybe if somebody wrote a nice guide or tutorial, I would manage (I hope) But if somebody just released an working bot, it would be even better. Nothing fancy you know. Just some stupid bot is good enough for me ;)
"Is it just me or is everybody else extremely busy ? Not that I'm not myself, anyway..."
I've been busy working on a game, but I've got some more freed time now that Brothers In Arms is done. I'm currently working on a super secret project that's Half-Life2 related that will be similar to a project I had on my old planethalflife.com website.
Stay tuned. :)
botman
Pierre-Marie Baty
18-03-2005, 17:41
I'm currently working on a super secret project that's Half-Life2 related that will be similar to a project I had on my old planethalflife.com website.Hahaha, said that way, I really, really wonder what it could be :D
hehe.
I have my bot source working with HL2 although I haven't got the latest up yet. I need to do that soon, I'll have a lot of free time for a while.
Here we go, I did it :P (my latest source that works with hldm2)
http://filebase.bots-united.com/index.php?action=file&id=259
"Hahaha, said that way, I really, really wonder what it could be"
It's probably not what you think it is.
botman
Here we go, I did it :P (my latest source that works with hldm2)
Thx man.
hey anyone compiled the bots yet i would love to try them out :D
You would have probably heard about it if someone completed a bot for HL2DM.
No news = no bot.
botman
There is still no weapons code out there that allows bots to figure out what weapons they have/ammo etc, (botman: can you rant this to everyone in hlcoders for us? :P )
I mean, the bot template with the latest SDK assumes the user enters the weapon the bots should use as a cvar in the console, which is certainly not the way it should be done as a final bot..
any news in this department ??
"any news in this department ??"
I had talked to Alfred and others at Vavle about this before. I think that they believe that the latest SDK includes everything someone needs to create a bot for any Steam engine game. I haven't had the time (or the desire) to look at this stuff in depth in the last 6 months, so I can't say for certain if Valve is correct and people just aren't seeing how this should be done, or if things have been left out and Valve is too busy working on other stuff to care about it right now.
botman
FrostyCoolSlug
24-04-2005, 19:46
i've been looking into the 'example' bots that valve provided with the SDK, seems very crude..
*Bot runs forward*
*Bot hits wall*
*Bot turns*
*Repeat*
a HL2DM bot may be a long way off because of this, i wouldn't mind having the Counter-Strike bots as an example of creating a nav mesh, even something simplistic, that will get bots running around..
Looks like its waypoint city for developers again though :/
Heyyo,
Botman.. busybots: source!?!?!? 8D
or is it plugins?? OOHH!! OOHH!! *faints* :P
I've posted a request about the HL2 weapons for bots in hlcoders list, lets hope I get some useful info.
Fisch.666
06-08-2005, 15:44
Hi!
!Here we go, I did it :P (my latest source that works with hldm2)
http://filebase.bots-united.com/index.php?action=file&id=259
Is a compiled plugin from this source available for download? I ask this because i don't know how i can compile this source on my linux box. :|
Thanks in advance for your reply!
There is for windows but it is out of date, I also don't have a clue on how to compile it on linux :p My linux machine hasn't been up for a while so I can't try myself right now
Fisch.666
10-08-2005, 23:29
Ok, thanks for your reply and this info. :)
BeaverMon
14-08-2005, 20:44
So do we actually HAVE a bot for HL2DM that will play Deathmatch and Team Deathmatch? 8D
no, because I haven't heard from any that have managed to get weapons to work yet.. and valve aren't exactly helping
no, because I haven't heard from any that have managed to get weapons to work yet.. and valve aren't exactly helping
Officialy - it's true, but...Some our colleague from other board figured out the problem with weapons (he used some his-own method to get the info he needed ;) ) and he promised to publicity the info he has when he will release 1.0 version of his mod he is currently working on (right now it's at 0.7). Pierre was looking a bit at the result of his work, and can confirm it. :)
Fisch.666
15-08-2005, 21:55
Hi KWo,
thanks for this great news!!! Can you post the link to this thread in the other forum? Thanks again!
No - I can't . This our colleague wants to do it by him-self, but in right time (he just told me that 1.0 version of his mod will be released during few weeks, so stay tuned ;) ).
Pierre-Marie Baty
16-08-2005, 00:50
What KWo refers to with this "alternate method" is, strictly speaking, hacking into places in memory we shouldn't be allowed to. Although this may lead to a functional bot framework, it should not distract us from our objective of getting a real interface for bots by Valve.
Please, bump the HLcoders mailing list on this issue !
Please, bump the HLcoders mailing list on this issue !
That won't help. Valve is actually trying to LIMIT what can be done through plugins to prevent people from creating all kinds of crazy gameplay plugins that just confuse new customers (i.e. people who are just now buying Counter Strike: Source).
The more Valve opens up the plugin interface, the more confused customers contact Valve complaining about how they couldn't figure out why this one server that they connected to was doing all this crazy stuff.
botman
lol, seems rather arrogant of valve to limit plugins because of this (not saying I don't believe you botman!) Valve == evil
Thats a pretty stupid thing to do, maybe they could put up some kind of filter to leave out servers running those mods?
They have to face the fact that on its own Counter-Strike, ect are not that entertaining after a while.
Thats where server-side mods come in and change up the gameplay in interesting ways.
Look at TFC and the NeoTF server mod, wether you hated it or not it added a unique and fun gameplay change rather than "grab flag, cap, grab flag, cap".
If anything these server side mods are one of the reasons why they stay popular for so long.
As for anyone who says "just make your own mod"...
How many people want to play a mod with only a few changes to gameplay? Not only that the player/server count just won't be there.
But when has valve listened to its customers anyway?
As far as I know r_3dsky is still a cheat cvar despite it giving a large performance increase and causing no unfair advantages.
Instead complaining about evil Valve (it directs You to nowhere), just wait patiently for publicing the info by our colleague from other board he took from Valve code. He even has the strucures of data, so it has everything (I think) You will need to code bots for CS:S (and probably for other mods, too).
Stay tuned. ;)
Pierre-Marie Baty
21-08-2005, 16:43
...and at the next game DLL update, everything will break! Oh boy... I'm so tired :(
Here You have guys the info I've got as a reply to this what Pierre wrote:
my code scans for things dynamically so the offests are automatically found. It only breaks if the code changes a serious amount.
CS:S DM has been using the same offset signatures for almost 3 months (that's more than 10 updates) :)
Because he is really busy since he is working on 3 forums as a main moderator-admin and on 3 projects, he is full time student and has a job - that's why he even can't write the reply him-self here for this moment.
We just need to wait... :)
Bluesman
10-09-2005, 23:39
We just need to wait... :)
[/size]
And we waiting...
Sorry - I can't push him every day if we will wait long time yet or not. You can ask him Your-self. :P
Bluesman
30-09-2005, 00:21
We just need to wait... :)
[/size]
Yes...we just need that 8D
The problem is - last time Bailopan is working as only one developer with 3 big projects - AMXMODX , CSS : DM and SourceMod. Other people left him alone (SniperBeamer, PM OnO to) - so for one man is too much work on 3 projects pararelly - that's why all things go slowely now. When I asked him last time about possibility to share result of his work , because some people at BU still are complaining (:P ), he told me so: "Find me someone to help or stop complaining". He needs realy good coders, because working on HL2 code without HL SDK is really difficult and because of this also the code of sourcemod and CSS : DM is much complicated (because based on disasembled HL2 code). So I can folllow him - "find someone to help him or stop complaining the sources of his work aren't released". :P
He doen't want to release his surces until they will be really good to release.He doen't want to release his surces until they will be really good to release.
If You know guys someone as a good coder wanting work on SourceMod and CSS : DM - please ask him if he wants work for these mods with Bailopan and report it me.
I am still surprised by the low amount of Source bots...
The lack of source bots is a direct result of the server plugin interfaces lacking some very critical functionality that is needed to make a fully functional bot.
My bots play HL2DM just fine, but with the limitations of the server interface they are lacking in some areas, and valve continues to ignore our requests for the added functionality.
KWo, can you get Bailopan to take a few minutes to post about how(and if) he got around these limitations? That's what I'm interested in more than downloading his bot.
Here's a thread with info on what is missing, and is the primary reason there are no fully functional 3rd party bots.
http://forums.bots-united.com/showthread.php?t=4026
and here's some screens of my unreleased hl2dm support for my bots.
http://www.omni-bot.de/e107/forum_viewtopic.php?4.375
Cyberwaste
03-10-2005, 23:41
Hello everyone!
Dr. Evil I saw the screenshots ..would it be too much to ask for a compiled alpha release of your hl2dm bot? Me and other people I know have been waiting a long time for this. I presume it's playable offline.
Thank you!
They can only use 1 weapon, and they spawn with it. There's not enough server plugin functionality to do any searching for items and stuff. And if you set their weapon too often the game bombs running out of entities, cuz the geniuses at valve had the SetActiveWeapon function or whatever its called create a new weapon every time you call it. And theres no way to get their current weapons(that I know of)
Wow, I didn't think it was _that_ bad.
But knowing valve it'll never get fixed, hell, theres still a bug in hlds which will let you read any file on the server provided you have rcon access.
Heyyo,
Did you guys read the new steam update?
After Lost Coast is released, we'll be working on getting some new content for both Counter-Strike: Source and Day of Defeat: Source, along with an update to the SDK, out the door. More info coming on that next week.
It does say update for the SDK... should we pray that it's better functionality for bots?
I just sent another large post to the mailing list. Here's hoping for some sort of response. Please show support if you're on the list.
Iced_Eagle
06-11-2005, 05:58
Hey, I just thought I'd post the important emails that is going in the HLCoders list in case people didn't catch it.
Original email by DrEvil
I read recently that after Lost Coast is released there will be an SDK
update on the way. I'd like to ask that the missing functionality necessary
for server plugin based bots please be added as well. There is a good sized
community of bot coders that have strong desire to make bots for HL2, as we
could do with HL1. The server plugins are the only real way that is
possible, but there is some critical stuff missing from the currently
available bot functionality in order to make a fully functional bot.
A while back I got as far as I could creating a HL2DM bot, and it was
playable, but due to missing functionality it was very primitive in many
ways. Here is my list of things that are missing from the server plugins
that are pretty much necessary for a fully functional bot. HL2 has pretty
much crippled what was once a large and thriving community of bot authors
for HL1, and our attempts to ask for the missing functionality have been
largely ignored. So I ask and detail again requests on behalf of myself and
the rest of the Bots United community at
http://forums.bots-united.com/index.php? (index.php?)
Stuff missing for full bot functionality
* 1) *Check if a bot has a certain weapon or item. A bool
IBotController.HasWeapon(const char *) would be nice, as well as a
HasItem(const char *) that mods can implement for custom non-weapon
equipment(kevlar vests, helmets...)
* 2) *Access to an entities velocity? This is critical for some weapons to
calculate proper leading. I'd rather not hack around this by getting the
position each frame and calculating this myself, though I will if I have to
I suppose.
* 3) *Access to any entities position/orientation/velocity. Seems right now
we're limited to players, but any decent bot is probably going to want to
have perceptions of projectiles/grenades/dynamic map props for avoidance and
such.
* 4) *Access to any entity in general. I suppose we can blindly loop through
the edict list, but an interface to CGlobalEntityList would be so much
better. Perhaps not direct access, but an interface that wraps read only
accessors to entity flags, entity properties mentioned in #3, and other
useful info.
* 5) *IPlayerInfo.ChangeClass would be nice. Empty by default, but at least
provides an interface for future mods to implement. More mods than not will
likely be class based.
* 6) *Can we have access to trace_t.GetEdict() ? It's wrapped in #if
defined( ENGINE_DLL ). Is it safe to define these in a plugin?
* 7) *Minor nitpick, is there a reason IBotController and IPlayerInfo
returns angles/vectors by value as opposed to const & ?
*8 )* We need access to ammo values without switching to the weapon. Perhaps
IBotController.GetWeaponAmmo(const char *weaponname, int &_curClip1, int
&_curClip2, int &_maxclip1, int &_maxclip2). The reason there are 2 is to
support weapons that use different ammo types for their alt-fire. Other
stuff like max ammo, max clip size, ammo per shot I suppose are normally
constants so I don't suppose we need access to them if we know the mod. Also
what would be useful is IBotController.GetAmmo(const char *ammoname, int
&_current, int &_max), to get the total amount of ammo the bot has, not
counting what's in the weapon clips(or counting I guess it doesnt matter).
*9)* How to choose the model for a bot? How about spraypaint?
Things wrong with the current bot functionality
1) IPlayerInfo.SetActiveWeapon is pretty useless. It creates a new weapon
every time its called, whether the bot has it or not. Crashes the game with
too many entities before long. My bot has to be limited to 1 weapon for this
reason. IMO this function should not create a weapon, it should return bool
if the bot has the weapon and was able to equip it. False if not. This would
give some of the functionality of #1 above. Preferably a HasItem would be
added instead though that queries for the presence of weapons or items. Mods
can extend it to allow querying of custom stuff.
2) CBotCmd.weaponselect is useless. It doesnt represent a constant value,
but instead appears to represent an the index of an entity in the master
entity table or edict list, which we don't have access to querying, or
finding out which a particular bot has.
3) No access to velocities
4) No access to anything other than players, and missing a bunch from that
access.
Things I would love to see
1) virtual const Vector IPlayerInfo::GetVelocity();
2) virtual const char *IPlayerInfo::SetModelName();
3) virtual const int IPlayerInfo::GetArmor();
4) virtual const int IPlayerInfo::GetMaxArmor();
5) virtual bool IPlayerInfo::ChangeTeam( int iTeamNum ); // just changed the
return value for success/failure.
6) virtual bool IPlayerInfo::ChangeClass(int _classId); // or classname
7) virtual bool IBotController::HasItem(const char *_name);
8) Merge IPlayerInfo and IBotController interfaces. They return the same
struct anyways. (GetBotController() & GetPlayerInfo())
typedef CUtlVector<int> AmmoList; // indexed by an ammo enum/id, holds ammo
counts
9) virtual bool IBotController::GetAmmo (AmmoList &_ammo);
// In this case, the AmmoList can be indexed by fire modes. Most mods
probably have 2 max, but for extendibility purposes, dont limit it.
10) virtual bool IBotController::GetAmmoForWeapon(const char *_weaponname,
AmmoList &_ammo);
11) An EntityInfo interface, similar to PlayerInfo, accessible from any
entity by either its index or edict. Wraps access to mostly CBaseEntity
stuff. Should contain the following.
const Vector GetLocalOrigin();
const Vector GetAbsOrigin();
const QAngle GetLocalAngles();
const QAngle GetAbsAngles();
const Vector GetLocalVelocity(); // object space
const Vector GetAbsVelocity(); // world space
const Vector GetMins();
const Vector GetMaxs();
const char *GetClassName(); // think this might exist already in the edict?
int GetHealth(); // for objects with health
int or edict_t GetParent(); // for objects that can be carried. Flags,
weapons, etc...
int GetEFlags();
int GetWaterLevel();
12) Change IPlayerInfo.SetActiveWeapon to bool
IPlayerInfo.SetActiveWeapon(const
char *_name, bool create); The bool return value for success/failure, and
the create parameter to control whether its created if the player doesn't
have it.
13) Make CBotCmd.weaponselect useful in some way. Maybe another accessor
that fills in a CUtlVector<int> with the bots weapons, and these ints can be
used in weaponselect. Though I imagine that this parameter can be ignored in
favor of #12.
There's probably more but these are the main things now. All these additions
shouldn't take long to add. The key here is that not only do us bot authors
need them to do bots, but it would be great if the functions could actually
be implemented in the Valve mods such as HL2DM, DOD:S and CS:S(yes there are
still many people wanting to do CS:S bots despite an official one). Most of
the functionality would be the same, it would probably just be the
ChangeClass/ChangeTeam/Ammo function implementations that will differ per
mod, with most simply being a wrapper function for other functions that
already exist.
To whom it may concern at Valve, can someone please add the missing
functionality for complete bot support? At the very least can we get some
sort of response this time? It has been frustrating to be completely ignored
when previously asking for help with these bot matters. If it is not in
valves time or budget to add these changes, would valve consider integrating
them into official mods if someone else did it?
Thanks
DrEvil
www.omni-bot.com (http://www.omni-bot.com/) <http://www.omni-bot.com (http://www.omni-bot.com/)>
Response by VALVE:
Life has been very busy with Lost Coast and other projects. I am going to chase this request up internally. We actually have bigger plans for a bot SDK, that is why I hesitated with my answer.
This is also the first time I saw this request, please feel free to email this questions directly in the future to ensure they get our attention.
- Alfred
Woot! :D Can't wait for the Bot SDK!
Heyyo,
Sounds awesome. :)
Maybe they plan to release like, a very basic bot structure that has basic waypointing.. kindof like HPB bot but for the source engine. If so tha'd be cool. Odd how he says that it's only his first time seeing this request though.. but maybe other employees saw it...
[EDIT]
wow, just noticed but 3,998 have viewed this thread... goes to show you how many are still eager to try n' find a working HL2 3rd Party Bot. ;)
Pierre-Marie Baty
07-11-2005, 02:03
Yeah... as we say... Will see.
It's been the fourth or fifth time we complain to hlcoders, and it's the first time we get a response. Let's wait and see. :/
stefanhendriks
07-11-2005, 09:18
Would be nice indeed. Perhaps i might get into (HL2) bot coding then...
Anyhow. Lets just wait and see as pmb said.
Iced_Eagle
11-11-2005, 00:44
From: http://developer.valvesoftware.com/wiki/Main_Page
Source SDK Beta Approaches
Wed November 9th, 2005
Very soon we'll be beginning a beta of the next version of the Source SDK, which will be run in a similar way to how the Steam UI beta was run. When the beta is ready to go we'll have a page here on the VDC that lists the new features available, along with a place to report problems.
Hey guys,
1) The first post in this thread was in Feb. - a long time ago. What has valve provided in almost a year?
2) Take a look at botmans' post in this thread about how valve is now in the business of LIMITING what plugins can do!
3) Why wait when we have something now that gives us virtually (pun intended!) anything we want/need, and works wonderfully great?
Metamod Source is way cool!
It is a much better Metamod for Source!
Here, this might get you a Little more interested:
http://www.sourcemm.net/?go=docs&doc=coding
"SourceHook is the engine used to intercept function calls, much like Metamod. The difference with SourceHook is that it can intercept any virtual function in any class that, at compile time, you have the header for."
!!!
I have installed Metamod Source on my server with a basic plugin and it has been totally stable. I don't care if it has to patch memory on the fly. It does it well and it works!
I don’t’ know Metamod, Metamod Source, the HL1 Or the HL2 sdk well enough to really say but it looks to me like…
Someone who knows Metamod well, knows the hl2 sdk well could port something like podbot to Source, with out a terrible amount of trouble.
There are a few things I need for my server right now like no head shots on humans, extra nades, team balance, etc.. I am working on learning Metamod Source and hl2 sdk asap…
I think we need a forum on BU for MM Source to help everyone get familiar with it over here. With the experience of some of the people here we could have some awesome great stuff for Source soon…
http://www.sourcemm.net (%0Ahttp://www.sourcemm.net)
Feedback???
Pierre-Marie Baty
27-11-2005, 09:00
Maybe you're right. But I'm still thinking there's hope at Valve.
Iced_Eagle
02-12-2005, 04:10
Maybe you're right. But I'm still thinking there's hope at Valve.
I agree... They did say they were working on a Bot SDK, and also there should be a code portion to the beta SDK soon... Probably within a month..
I would rather wait for VALVe to provide official support, then do the SourceMM way and have to rewrite a lot of code later... By the time you get a stable 1.0 of a bot, there might be official support already out there... This means that your bot would run on 100% of all updated servers, and not just those with metamod...
Last I checked, and even asked the MM guys, MM will not provide the functionality that we are missing to implement fully working bots. Intercepting function calls is not what we need to do.
stefanhendriks
15-06-2006, 15:10
Perhaps it is an option to write a bot framework which is capable of being 'transformed' into 'true hl2 bot sdk' code once (if) it is released...
So basicly have some thin layer. Bah, i am brabbling and having no time at all.
I'm just some guy that has this account for asking questions about bots, so don't bother asking me anything. I just play games. If anyone has a link to download bots for HL2DM or DOD: S, that works well, can you please email me with the link.
Bluesman
06-05-2007, 23:52
I'm just some guy that has this account for asking questions about bots, so don't bother asking me anything. I just play games. If anyone has a link to download bots for HL2DM or DOD: S, that works well, can you please email me with the link.
HL2DM bots:
---------------
http://rcbot.bots-united.com
http://www.hurrikhan.net/
DOD:S
--------
Sorry, it doesn't exist any bots for DOD:S (at least I haven't heard of any bot for this game)
Bluesman
08-05-2007, 21:24
DOD:S bots...
http://forums.bots-united.com/showthread.php?t=4609
I remember You told me You could help to answer at least to some questions dr. Evil had concerning to CS:S bots (we miss the mostly the thing with managing weapons under CS:S; the full list of questions is here (http://forums.bots-united.com/showthread.php?t=4026)). You told me You can help after CS:S DM 1.0 is released. I 've seen You skipped 1.0 version and now there is some beta 2.0 available, so is this the good time I can ask about the help for CS:S bots or not? Or You just don't have time to elaborate anything even if You are the only person who can help us?
Regards
KWo
The source code is available with 2.0. If someone has a specific HL2SDK or CS:S (or CS:S DM) question for me they can ask it on our Source forums, or in our IRC channel.
---BAILOPAN
The CS:S DM is available here (http://forums.alliedmods.net/showthread.php?t=57227). The source of CS:S DM is here (http://svn.alliedmods.net/viewvc.cgi/sourcemm/sm_cssdm/?root=dvander).
The SourceMod forum is here (http://forums.alliedmods.net/forumdisplay.php?f=52).
I hope someone can find something usefyl to move on the work on CS:S bots. :)
stefanhendriks
13-08-2007, 08:49
I haven't plouged through the source yet. As long as bots can select a weapon, it will be 'enough' i think to make something useful? I mean, afaik it is possible to let bots join a team, walk around, look around (?). So all that is left is weapon management?
Heyyo,
Slavax has been working on the RCBot2 code, and he added some code like bots try to randomly switch weapons, and I believe you can hear them fail to select a proper weapon slot by the beeping too actually, lol.
http://rcbot.bots-united.com/forums/index.php?showtopic=1041&hl=
I believe that's his latest work. Check around the sourcecode to see if you can see some of the stuff he's done.
But yeah, technically, you can still get the bot up and running just fine with any mod, it's just being able to make a very efficient bot that knows if their weapon's empty, or to switch to a better weapon and such is the current problem.
I've built, and revised my waypoints for the official HL2DM levels as well to help out and get things flowing a little better.. RCBot2 still kinda turns wide, so they get stuck at random times...
I know vALVE said for DODS they'd help the makers that made DOD1.3 bots to port their bots to source and such.. but I'm sure that's more of a hollow promise at this rate.... mainly since they've ignored any plea to help out the bot coders.
I'm also still kinda curious as on how Dr. Evil is doing with OmniBot, and his little memory hack work-around.. haven't heard any news on HL2DM, so I think he dropped it..
stefanhendriks
13-08-2007, 16:30
From what i see from the rcbot2 , is that the code does not look complete, perhaps on purpose. Neat code though.
Also, it looks like the bot selects a weapon by just its name. I have to look further into this to be sure what is going on. But from the looks of it, it looks nice.
I do not see anything that holds data of the bots weapons though; that is a pitty imo. (or i did not look enough, if anyone else is looking, please fill me in).
I'm not doing any memory hacking, and in fact specifically don't want to do any memory hacking. I've been trying to push valve into extending the SDK with the necessary changes. They are dragging their feet though as usual.
You can get a basic bot working rather easily, as I did with Omni-bot. I didn't feel it fit to release at the time though, given the limitations of the bot sdk. Essentially the only way to get them to use different weapons is to give them the weapon yourself, which is essentially cheating. That in itself isn't a disaster so much as the fact that giving them a weapon creates a new weapon every time you call it, causing you to run out of entities if you get them switching weapons too often. On top of that there's no access to ammo information, so you they don't know when they are out of ammo and stuff. It's just an all around half-assed bot interface that they seem to want to avoid extending and won't accept my requests to do it for them.
It was playable to some degree. It spawned with a random weapon and runs around and would shoot at you.
stefanhendriks
14-08-2007, 21:58
Probably because mod makers are more 'important' than bot makers; Valve will not set a bigger priority concerning the issues around bot creation (for plugins).
In other words, they don't give a damn.
Heyyo,
Sad reality yes... I remember one vALVE employee said he was going to look into it like, a year ago, and never said anything again..... I think we should all just spam Gabe Newell's Email addy.. I think from the Lost Coast commentary he said it was gaben@valve.com .... what do you say guys? we should keep trying, cause I doupt valve's going to be rebuilding a whole new engine anytime soon and just keep upgrading the SourceEngine as they did with the Source2 Engine.
stefanhendriks
14-08-2007, 22:51
Yeah, that could be a sollution. :)
I wish more people would keep bugging valve on the mailing list. I regularly bug the Mike Durand guy, and have asked if they would let me do it and give the code to them but I have yet to get an answer to that.
stefanhendriks
15-08-2007, 08:39
I was signed up at the valve mailing list, but i got so flooded, i signed myself out. Perhaps not a wise thing to do, but times change and so do interests in bot development.
First i'd have to get all stuff compiling again, need to install Visual Studio 2003 again, only got VC6 and VC2005 express. The later one requires me to download stuff, which i already have in VC2003.
Anyhow, i do encourage to get this going, but i can't participate fully, so i will not pretend to solve this problem myself. ;-)
Black_Hunter
29-08-2007, 04:01
whats abaut sourcemm, the dev team can code some functions for bots or not? talk to the sourcemm team...
SourceMM:
http://www.sourcemm.net/
Forum:
http://forums.alliedmods.net/forumdisplay.php?f=56
I'm pretty certain function hooking and such will not provide us with the access and information we need in a manner suitable for using across many source games. I've been in contact with the Valve guy, and things are looking positive in this area. That's all I will say for now.
stefanhendriks
01-09-2007, 11:35
who is 'the valve guy' ? ;-)
The only person from valve that gives the hlcoders list much attention(Mike Dussault)
The Storm
18-05-2008, 16:52
Anything new around ? :)
Heyyo,
Yeah, I'm still curious too if we can maybe get a developper preview there Dr. Evil? ;)
stefanhendriks
07-07-2008, 16:33
Looks like we just have to just get things going , even if it means hacking? Perhaps when we 'show' that it is impossible to do it the right way, we might get more mandate to push Valve to change their interface.
Or, perhaps DrEvil has some very very very good news? ;)
Heyyo,
Looks like we just have to just get things going , even if it means hacking? Perhaps when we 'show' that it is impossible to do it the right way, we might get more mandate to push Valve to change their interface.
Or, perhaps DrEvil has some very very very good news? ;)
Yeah.. Dr.Evil... dev preview? any chance? I want to see how the official third party bot support is coming along. :D
Hey guys. I'm working with Tony who works on SDK stuff for Valve and we are working out the new and improved bot interface stuff. Currently I'm working on TF2 with the new interface. I have them playing CTF and CP maps, engy bots building everything so far, in a couple days worth of evening work. The new interface will allow server plugin bots for DOD:S, CS:S, and any other mod that implements the appropriate accessor for their mod.
TF2 Teaser Pic (http://picasaweb.google.com/jswigart/OmniBotCoding/photo#5224247300283350834)
Minh-Lo-Hwang
19-07-2008, 23:56
One Word: Yay! :)
Bluesman
20-07-2008, 00:33
One Word: Yay! :)
Two words! Great News!! :)
Heyyo,
Hey guys. I'm working with Tony who works on SDK stuff for Valve and we are working out the new and improved bot interface stuff. Currently I'm working on TF2 with the new interface. I have them playing CTF and CP maps, engy bots building everything so far, in a couple days worth of evening work. The new interface will allow server plugin bots for DOD:S, CS:S, and any other mod that implements the appropriate accessor for their mod.
TF2 Teaser Pic (http://picasaweb.google.com/jswigart/OmniBotCoding/photo#5224247300283350834)
Dr. Evil.. I love you.... in a heterosexual way of course. ;)
That's a few words I had to say. :D
Btw Dr. Evil.. if you could indulge me, do bots properly recognize what a teleporter is, and do they use them properly? I remember back in I think it was Natural Selection, there wasn't a proper way to setup bots recognition of teleporters so it was all random....
Also, are you using the same template as OmniBot for it that you were trying to use before, or is it all new? and one more if I may.. are the spy bots just as deliciously... evul as the ones from foxbot? :P
I have them building all the buildables already, and I'm in the process of getting them to actually use the teleporters. They used teleporters nicely in Foxbot, and they will again this time around. I haven't gotten to the spy abilities yet. I've only spent a grand total of a few hours for about 3 nights supporting what I have so far. Luckily with the way Omni-bot is set up, I'm re-using a majority of the Team Fortress code I wrote for Fortress Forever and ETF. I'll probably work through each class and get each ones specific abilities supported. I already have pipe trap code written that will be re-usable for TF2, and other than that The scout double jump, spy sapper and invis behavior are the main tasks.
Heyyo,
I have them building all the buildables already, and I'm in the process of getting them to actually use the teleporters. They used teleporters nicely in Foxbot, and they will again this time around. I haven't gotten to the spy abilities yet. I've only spent a grand total of a few hours for about 3 nights supporting what I have so far. Luckily with the way Omni-bot is set up, I'm re-using a majority of the Team Fortress code I wrote for Fortress Forever and ETF. I'll probably work through each class and get each ones specific abilities supported. I already have pipe trap code written that will be re-usable for TF2, and other than that The scout double jump, spy sapper and invis behavior are the main tasks.
Excellent news indeed. Foxbot and OmniBot are fun times, so this should be great! :D
I for one look forward to a good release, beta or otherwise. I'm already subscribed to this thread and a few others. :)
stefanhendriks
20-07-2008, 21:46
More words:
GREAT!!! Do you have a source-code template? :D
edit: I know you have some source codes on your site, but i mean the one who works with CS : S and such ;) Don't wanna push, but this is exciting news indeed.
I don't have anything for CS:S right now. At the moment developing this requires a custom engine.dll(that goes in the source sdk base 2007\bin folder), and custom dlls for TF2, and running TF2 as a mod. At some point in the future this new bot interface stuff will be rolled out to the public in an update. Right now he has mostly been adding accesors to mod side data for TF2. If you can put together a list of CS:S specific data you are going to need to access I can push for that to get added. Same for anyone who knows DOD:S pretty well. By mod specific data I mean information specific to the mod itself, such as TF2 accessing the buildables for an engineer, the disguise status for spy, etc.
Generic information, such as accessing ammo and weapon information has all been added, so a very basic bot such as for HL2DM would be fully possible with just the new vanilla bot interface.
Using the old bugzilla post as an example:
http://developer.valvesoftware.com/cgi-bin/bugzilla/show_bug.cgi?id=16
#1,2,5,8,10,11,12,13 have all pretty much been addressed.
#3 and 6 naturally require some accesors(through a generic interface) be added to individual mods based on the requirements of the mod. Here's an example.
pluginvariant val, empty;
if(pInfo->GetCustomInfo(TF2::TFPLAYERINFO_EDICT_SENTRY, val, empty))
{
pMsg->m_SentryStats.m_Entity = HandleFromEntity(val.Edict());
if(val.Edict())
{
IEntityInfo *pSgInfo = EntInfo((edict_t*)val.Edict());
if(pSgInfo)
{
health = pSgInfo->GetHealth();
maxHealth = pSgInfo->GetMaxHealth();
}
if(pInfo->GetCustomInfo(TF2::TFPLAYERINFO_SENTRY_LEVEL, val, empty))
{
level = val.Int();
}
if(pInfo->GetCustomInfo(TF2::TFPLAYERINFO_SENTRY_AMMO_SHELLS , val, empty))
{
shells = (val.Int()>>8) & 0xFF;
maxshells = val.Int() & 0xFF;
}
if(pMsg->m_SentryStats.m_Level > 2)
{
if (pInfo->GetCustomInfo(TF2::TFPLAYERINFO_SENTRY_AMMO_ROCKET S, val, empty))
{
rockets = (val.Int()>>8) & 0xFF;
maxrockets = val.Int() & 0xFF;
}
}
}
}pInfo is a greatly expanded playerinfo interface. There is also a new IEntityInfo interface that allows a bunch of information to be accessed for entities in general, and not be limited to just player info.
Information specific to the mod will need to be supported and added for access via these GetCustomInfo paths.
stefanhendriks
21-07-2008, 11:19
So basically what you're saying is that the new bot framework has to be released from Valve's side and all will be exposed as we'd like it to?
When would that be? (eta release date?)
As for CS: S .
Weapon info is already known as you told us. So all i need to know is:
- carry bomb yes/no?
- has hostage used yes / no (pointer to pEdict or something)
I think CS : S is basically a simple mod. I can't think of anything special just now for that. Perhaps other bot developers have an idea?
Also, how is bot handling now? I mean, you're using the plain plugin code delivered by Valve i suppose?
Are You planning guys, to make the bot for HL2/CS : S/TF2 etc as a standalone dll or as a metamod-source plugin?
The Storm
21-07-2008, 15:06
After the new bot interface is released I'm planning to make the bot as server plugin using the valve system. :)
stefanhendriks
21-07-2008, 15:29
When the official interface exposes the needed functions, there is no need to use another layer (ie metamod-source). So i think it is most likely bots will be made for the valve / source interface.
Honestly I can't even guess when this might be rolled out to the public. I believe Tony might want to have as complete as possible first pass at events/accessors for all supportable valve mods before trying to push it through the system. If we know Valve we know that time tables can't really be predicted. I'll try to push Tony into adding these accessors. CS:S seems simple enough that those can be added easily. In the meantime, if you know anyone around this forum who knows DOD:S very well I would appreciate if they can put together a list if custom accessor data they might need. I haven't played much DOD:S myself.
Btw, one more thing I should mention. The extended bot interface is specific to Orange Box engine. Tony has told me Valve has no plans to put these sdk updates into the old engine. This means that only mods/games based on the Orange Box engine will benefit from the extended bot interface. So far DOD:S has been ported to Orange Box, and CS:S is in progress afaik, naturally TF2 was born in Orange Box. I'm told they plan to update HL2DM to Orange Box as well, probably last.
Anyways, the quicker we get a list of needed accessor information to Tony the sooner he can have his part ready at least. Then it's just a matter of waiting on the changes to get through whatever Valve vetting process he has to push it through.
Also, how is bot handling now? I mean, you're using the plain plugin code delivered by Valve i suppose?
It's pretty much the same as it has been using the bot interface. There's just more functions added to get information we need, and a new IEntityInfo interface that you can get information from arbitrary non player edicts.
stefanhendriks
22-07-2008, 16:11
yes, i have heard as well that CS : S will be ported to the Orange Box version of the source engine. If that is the case, it is of no use to code for the normal Source engine or whatsoever.
How about a teaser?
http://www.youtube.com/watch?v=MHHEetn64Vo
Awesome news! I'm gonna have to get off my butt and get back to some bot coding for Source.
botman
Bluesman
25-07-2008, 19:49
How about a teaser?
Thanks! :)
Thranduin
06-08-2008, 12:17
Hello guys,
I'm just following this thread for some time now.
I'm searching the SDK for some possibility to connect my CS-Bots (currently working with the 1.6 version).
So what I haven't got throughout the thread: is there already some kind of interface the bot could be connected to? (i know that not all functionalities are given). And if yes, where can I find it?
thanks a lot for your answers
regards
Bluesman
10-09-2008, 01:32
How about a teaser?
Got some more teasers? ;)
Bluesman
29-09-2008, 22:37
More news from DrEvil:
http://www.omni-bot.de/e107/news.php
And a new teaser, Omni-bot in Team Fortress 2 - Demo-man:
http://www.youtube.com/watch?v=40XYSjkWphs
Can I ask how to gain access to this interface? (Is it made by valve ?)
Edit:
Actually no need,
see here:
http://wiki.alliedmods.net/Entity_Properties#Enumeration
use :
"CBasePlayer" and "m_iAmmo" for (int*) Ammo List
TF2 Ammo lists:
starting values in round brackets
ammo list index in square brackets
Scout
[1] Scatter gun (32)
[2] Pistol (36)
[3] ? (100)
Sniper
[1] Sniper Rifle (25)
[2] Auto Rifle (75)
[3] ? (100)
Soldier
[1] Rockets (16)
[2] Shotgun (32)
[3] ? (100)
Demoman
[1] Grenades (16)
[2] Stickies (24)
[3] ? (100)
Medic
[1] ?Syringe Gun? (150)
[2] ?Syringe Gun? (150)
[3] ? (100)
HWGuy
[1] Minigun (200)
[2] Shotgun (32)
[3] ? (100)
Pyro
[1] Flame (200)
[2] Shotgun (32)
[3] (100)?
Spy
[1] ? (20)
[2] Pistol (24)
[3] ? (100)
Engineer
[1] Shotgun (32)
[2] Pistol ? (200)
[3] Wrench ? (200)
e.g.
int *CClassInterface :: getAmmoList ( edict_t *edict )
{
static unsigned int offset = 0;
if (!offset)
offset = findOffset("m_iAmmo","CBasePlayer");
if (!offset)
return NULL;
IServerUnknown *pUnknown = (IServerUnknown *)edict->GetUnknown();
if (!pUnknown)
{
return NULL;
}
CBaseEntity *pEntity = pUnknown->GetBaseEntity();
return (int *)((char *)pEntity + offset);
}
unsigned int CClassInterface :: findOffset(const char *szType,const char *szClass)
{
ServerClass *sc = UTIL_FindServerClass(szClass);
SendProp *pProp = UTIL_FindSendProp(sc->m_pTable, szType);
if ( pProp )
return pProp->GetOffset();
return 0;
}
use
"CBaseEntity" and "m_iTeamNum"
to get the team index (int)
vBulletin® v3.7.1, Copyright ©2000-2009, Jelsoft Enterprises Ltd.