PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : erster Quake4 Bot released


trollkopf
2005-12-11, 06:06:57
TinMan hat seinen hervoragenden d3 bot SABot nach q4 portiert :)


http://quake4.filefront.com/file/Sabota8;52204

= SABot - Stupid Angry Bot - A Multiplayer Bot for Quake 4 =
It won't eat, it won't sleep, it absolutely will not stop, until it does something stupid.
Version: Alpha 8 - "I obey these words, written in my head. I think they are spelled wrong."
Date: 2005-12-11
Author: Jarad "TinMan" Hansen
Site: http://www.oakbots.co.uk/forums/viewforum.php?f=7

NOTE: This is an Alpha version.
While theoretically the worst that will happen is the game crashes, I hold no responsibility if your computer explodes in a ball of incandescent fury.

= Known bugs and Limitations =
Well, most of it, I could write a novel.
Having other players connected to a server with bots is untested.
Tourney game type isn't playable, because players are spilt off into their own "instances" so multi 1vs1 matches can take place and the fact that I just haven't looked into it all that much.
Q4DM2 - Sandstorm - Is largely unplayable due to the fact I haven't tweaked the aas file re: terrain.
Q4CTF5 - Xaero gravity - Also somewhat unplayable since bots can't drop down to the lower level with the jumpad that leads directly to the other base.

= Performance =
As a rule you generally want performance over graphics in multiplayer games anyway, and throwing in CPU eating bots means you may want to consider dropping details down a bit.
i.e. High special effects and shadows off, dropping down resolution. Have a look for Quake 4 tweak guides on the net.
As well as experimenting with how many bots your system can comfortably handle.

= Using the Mod =
IMPORTANT: Make sure your Quake 4 installation has been updated to version 1.0.4.

1. Installation: Create a folder inside the Quake 4 folder called "sabot" and unzip the files into it.

2. Loading the mod:
Run the batch file "Load Sabot" in the sabot folder.
Or load quake 4 and choose sabot from the mods menu.
NOTE: You'll be able to tell if the mod has loaded successfully by typing:
gamename
At the console, is should say gamename is "SABot a8".

3. Adding a bot
Start a new multiplayer server
To add a bot bring down the console (via the CTRL-ALT-TILDE (~) keys) and type:
addbot bot_sabot
Note: addbot command works like the spawn command, eg accepts key/value pairs.
Tip: Typing addbot bot_<TAB> will give you a list of bot defs.

4. Removing a bot
Use the console command:
removebot n
Where n is the id of the bot.

= Bot difficulty =
Bots aim accuracy or "drunkenness factor" can be set when bot is added with the key/value "aim_accuracy", higher value = less accurate.
Range [0-4]

You can slow down bots aim a bit with key/value "aim_rate" default is 0.5 with less being slower. Range [0.1-1]

Example:
addbot bot_sabot aim_accuracy 3 aim_rate 0.4

= Teams =
The team of the bot can be specified with the team key/value. 0 = Marine, 1 = strogg Note: autobalance may override this.
You can force bot's to change team via the normal admin menu.

= Customising =
Bots can be customised as they are added (as seen above) or via def file.
The bots read all ui_* key/value like a player.
These include:
ui_name - For the name of the bot
ui_clan
ui_model
ui_hitscanTint

Examples:
addbot bot_sabot ui_name "Fluffy Bunny" ui_model "model_player_marine_tech"

Some of the above setting are in their own character def files, the can be added with:
addbot bot_sabot_tinman
addbot bot_sabot_blackstar
addbot bot_sabot_fluffy
Have a look at the file sabot/def/bot_sabot_characters.def for the examples.

= Playing custom maps =
1. Compiling AAS Files: The AI navigation system in Quake 4 relies on its own map of the level you are playing on. Chances are most multiplayer maps weren't created with this in mind but you can force the engine to compile them. They'll be rough, but will work for the most part.
You'll only have to do this once for each map that doesn't have them.
The console command is:
runaas /mp/mapname
Where mapname is the file name of the custom map.
NOTE: You can use the <TAB> key to complete what you started typing.
NOTE: runaas should be used before creating a server.
The quality of the aas file (i.e. incomplete areas for bot) will depend on how the map author has handled patches and models. See below.

2. Run in non Pure mode - have a look in advanced options and set Pure Server to No when creating the server.

= Making your own map bot ready =
The aas compiler takes into account brush geometry but not patches or models (func_statics etc). You must block these out with a brush textured with common/monsterclip.
See the quake4 single player maps for examples.
Things will be a lot better if you follow the standard quake 3 "playerclip everything you can" approach.
Also make sure the file aas.def in the sabot pak000.pk4 is loaded with your editor, this means either putting the file in base/def (which will cause problems for single player maps) or loading the editor with the sabot folder set as fs_game, i.e. quake4 +editor +set fs_game sabot
When running bsp/dmap runaas will automatically be run. You'll notice the only aas compiled is the aas32, the rest will be 630bytes empty and you can delete them.

= Feedback =
Visit the SABot section in the OakBot forums:
http://www.oakbots.co.uk/forums/viewforum.php?f=7

= Distribution =
Distribute as you will, just keep the zip unmodified. Sweet.

= Thanks and credits to =
Super ZOMG thanks to Steve "cusTom3" Baker for putting up with my incessant rambling and his herculean efforts at deciphering the aas system and adding jumpad and teleporter reachabilities.
Thanks again to Richard "Son of Sam 2" Potter for his testing. SABot may be crap, but it's less crap because of him.
Cheers John Cricket for throwing up a SABot section off his OakBots forum.
doom3world.org for providing an excellent d3engine modding community. It is excellent.
Raven for the fun continuation to both q2 an q3.

Previous (but still valid) sabot thanks to:
Extreme thanks to id Software for making the Doom 3 engine easily modifiable for a retard like me.
Oh and thanks id for making the script plain text and thus hooking me into making this, and for the nice sdk code.
And for the brilliant AAS navigation system.
Brian from iddevnet for pointing out the runaas command and starting a solution for the usrcmds transmission.
Mega thanks to Steve "Cobalt" Gray for pointing out the (now blindingly obvious) fake client approach, and creating the not so obvious network wrapper.

= Final Thoughts =
This may be the first and last version of SABot for q4 (though I've said that in the past for d3), with the new q4 bot community shaping up it doesn't make sense to continue it when the more seasoned lads will eclipse it so totally.
I knew things would heat up in the bot dev world for q4 and I'm real glad to see the collaborative effort that's building up at the OakBot site.
Plus I have wanted to have a bash other mod ideas for a fair while now, for good or worse. So, while I won't have a direct hand in further q4 bot developments, I will at least have a seditious whispering voice in it.

I had always intended to do a quick port of SABot from Doom 3, mainly to get something out for the community (no matter how crap). I had however been halfway through a goal/priority system overhaul so I had to complete and tweak it (which I haven't completed), then with the conversion over to q4 I decided to take advantage of the updated movement/enemy code, which took a while. After breaking the CTF code for the third time and finding problems with my old enemy selection code, I can now say with all the new code thrown in it's better and than the previous sabot. Kinda.
I'm also very glad that the mp performance is way better than d3 (especially the xp) which means a decent amount of bots can be added for a game of ctf.

With Raven having (quite understandable) shifted the scripts for weapons/actors and ai to game code and creating stae macros that kept the system very similar to what it was it would have been very easy for me to shift to full c++. Quoting myself: Having to extend, manage and debug a scripting system for something like ai can get tedious, going with full c++ and an ide, compiler and debugger that's had years of optimisiations and refinements is a big draw.
So why didn't I? As I mentioned
1 I doubt SABot has any long term viability, I'm only just bumping into scripting limitations in this version. And the main reason - I started out learning programming with the d3 ai scripts and I like the idea of having something out there that the newbies can rip into and have a crack at something themselves. You don't allways have to create something striving for the best as long as you are having fun.

I'll shut up now.

Mosjoe
2005-12-11, 09:42:03
Ganz schön Railgun-fixiert, der gute :D Zumindest war das die Waffe, mit der mich der Bot teilweise zur Verzweiflung brachte. Leider ist das Teil wirkich noch ziemlich beta. Meinen ersten Frag hatte ich als der Bot einfach in der Map stehenblieb ohne sich zu wehren. Oft kam es auch vor, dass der Bot gegen Wände lief. Trotzdem machts Spaß und die Sache ist definitiv ausbaufähig. :up:

trollkopf
2005-12-11, 10:08:17
es gibt unterschiedliche bots, nicht alle sind gleich auf eine waffe fixiert , man kann das auch einstellen , oder fertige bots laden:

addbot bot_sabot_
addbot bot_sabot_tinman
addbot bot_sabot_blackstar
addbot bot_sabot_fluffy

paar bots laden , kommt schon mp feeling auf.
tourney mode funktioniert noch nicht.

custom maps funktionieren auch
vorher aas erstellen (bevor der server gestartet wird) über console mit:
runaas /mp/mapname

der mapname muss der richtige sein , nicht der pk4 name , z.Bsp.:

map Phrantic

pk4 file : map_swq4dm1_final.pk4

mapname: swq4dm1.map

runaas mp/swq4dm1

Kladderadatsch
2005-12-11, 10:34:05
thx!
gleich mal testen=)

Fusion_Power
2005-12-11, 15:50:13
Wow, ich hab kein Quake 4 aber ich dachte, Bots sind mittlerweile Standard.

Hatten die Entwickler keine Zeit/Lust für sowas wie nen ordentlichen Bot oder is sowat heut nich mehr "in"?
Ich als 56K Modem-User möchte meine Unreal-Engine-Bot-Jungs nicht mehr missen. ^^
Gut zu hören, das sich ma wieder ein Hobby-Progger ran gemacht hat. Das versüßte mir damals schon bei Half-Life 1 den Tag, seit es den Jumbot gab.

Sagt Bescheid, wenn der Quake4-Bot UT2004-Qualitäten erreicht hat. XD

Odal
2005-12-11, 16:08:38
ich denk mal die hersteller sehen das nichtvorhanden sein von bots als eine art kopierschutz...da ein spiel nur noch durch den MP modus motiviert wenn mans durch hat, und dierser funktioniert online im allgemeinen nur mit gültigem key

ausserdem haben die meisten einen dsl zugang das macht bots nichtmehr so wichtig. ausserdem ist Q4 ja nicht wie Q3A und hat eben noch den SP teil.

Goser
2005-12-11, 19:08:37
Bots wären meiner Meinung nach bei Quake 4 absolut standart sein müssen.
Ich zocke selber extrem viel Quake und da sind bots einfach pflicht.
Schön zu sehen das die com das wieder richtet.

Raven hätte gut daran getan, bei Quake 4 etwas mehr mit der com zusammen zu arbeiten und vor allem alle features aus quake 3 zu übernehmen!

Zum SAbot der war schon für Doom³ genial und gg den zocke ich immer wieder mal ne Runde.

Uni
2005-12-12, 01:17:30
ich denk mal die hersteller sehen das nichtvorhanden sein von bots als eine art kopierschutz...da ein spiel nur noch durch den MP modus motiviert wenn mans durch hat, und dierser funktioniert online im allgemeinen nur mit gültigem key

ausserdem haben die meisten einen dsl zugang das macht bots nichtmehr so wichtig. ausserdem ist Q4 ja nicht wie Q3A und hat eben noch den SP teil.

das sehe ich genauso

looking glass
2005-12-12, 01:42:05
Wens so wäre, sorry, dann hätten sie die Bots nicht völlig rauslassen müssen, sondern per Ankündigung 2 Monate nach Release rausbringen können - der Kopierschutz soll ja schliesslich auch nur den ersten Monat den Abverkauf ohne grosse Schwarzkopien sicherstellen.

Ich find schon, zu einem Spiel wie Q4 gehören Bots.

Gast
2005-12-12, 18:59:57
kann ir einer kurz erklären wie ich den bot installieren und dann einsetzen kann?

Danke...

trollkopf
2005-12-12, 20:01:25
im Quake 4 Verzeichnis einen ordner erstellen , der da heißt: sabot und dort alles entpacken

quake4 starten und über mod sabot laden

multiplayer - lan server starten - pure server aus (advanced options) - dm map wählen (Q4DM2 funktioniert nicht richtig/tourney wird noch nicht unterstüzt)

console öffnen und bots hinzufügen , mit:
addbot bot_sabot

andere bots (unterschiedliche spielstärken)
addbot bot_sabot_tinman
addbot bot_sabot_blackstar
addbot bot_sabot_fluffy


am anfang ist es frustrierend, da sabot der meister der Rail ist und immer trifft , vieleicht mal andere bots probieren.

für inoffizielle maps muss man erst über console die botnav files erstellen , siehe mein post oben

edit:
CTF; TeamDM soll auch gehen

looking glass
2005-12-12, 21:26:08
Ist ja auch noch Alpha der Release.

Fusion_Power
2005-12-13, 22:47:21
Ist der Bot Waypoint orientiert? Bzw. kann man selber Waypoints erstellen für den Bot?
Das war erst das Salz in der Suppe damals, z.B. bei Half-Life 1 ^^
So konnte man den Jungs selbst richtig was beibringen in den Maps. XD

looking glass
2005-12-13, 23:34:57
Hat Trollkopf doch schon hier geschrieben, "runaas" ist das Stichwort, soweit verstanden.

Fusion_Power
2005-12-15, 17:29:41
Klaro. Mir war nur nicht offenslichtlich obs ne Auto-Funktion ist beim "Waypointen" neuer Maps oder ob man jeden Punkt selber setzen kann. ^^