34 comments

[ 5.7 ms ] story [ 80.9 ms ] thread
Somehow this feels like the part of the Bible that goes on for verses and verses "And Jeshua begat Joiakim, Joiakim also begat Eliashib, and Eliashib begat Joiada...".

A key difference is this is rather interesting.

My family genealogy would be utterly boring to 99%+ of people.

And this Quake bot genealogy would be utterly boring to 99%+ of people too.

I'm obviously the single person alive (except perhaps my brother) who finds all three interesting.

Edit: typo

I don't find genealogy interesting or such.

But if I was about to inherit a lordship, or a large sum of money, or something like that then my interest would suddenly kindle.

The latter is the whole point of the lineage record, showing the lineage of messiah from king David, from Rahab, from Abraham, from Adam.

Consider doing something similar to this for the various toolchain members: qcc, qbsp, vis, etc. Throw in the decompilers (e.g., deacc/reacc, etc.) for good measure. As a side note, I was curious whether the bots had official QuakeC source available or if it was readily decompileable. IIRC, the Reaper bot intentionally obfuscated itself somehow.

I'm sure you're already familiar with it, but I found The Cutting Room Floor very helpful in my research (e.g., https://tcrf.net/Proto:Quake/Qtest1).

Good suggestion - there were tons of custom tools like extensions to qcc and I've started tracking them down. Expanding to the whole tool chain is a great idea.

I've started an "official release" archive along similar lines (includes qtest1 and many other goodies): https://github.com/Jason2Brownlee/QuakeOfficialArchive

Yeah, QC for most of the mods was available for extensions, only reaper was closed src where authors resorted to decompilers, at least that's the story that I've put together from research.

QC is where I actually learned to program. I'd already done a lot of c and early c++ but the motivation of seeing my changes in the game world were a lot better than anything I could make in my own.
Me too! Turned out learning java/c/cpp at uni was way more boring than coding up quake mods :)
I remember when Frogbot came out, it was pretty amazing.

You could train against it and improve very quickly.

However it also seemed to accelerate boredom with q1 multiplayer for me.

Is there way to figure out properties of these bots? Like which one is smart, which one requires the fewest resources etc..
I was wondering the same. Just anecdotal but Frogbot was the best for me, it could rocket jump in all the right places in Clan Arena.
@Svperstar Do you have any backup copies of FBCA? I'm missing many versions in the archive.
No sorry, I did about 5 years ago.
Reminds me of my Whitespace Corpus in its organization, especially the table in the README. I cataloged all known implementations of the Whitespace programming language, including interpreters, compilers, and programs. I recorded detailed information about each in projects.json, then generate the table and other documents.

https://github.com/wspace/corpus

FortressOne dev here. Noticed quite a few 'TF' bots that I hadn't heard of. Anyone know more about these? Or even just the vanilla bots? Looking for something that can bunny hop mostly.
There's probably four main lineages of TF bots:

* TeamFortress Bot (Forthpick) standalone I think.

* TFBots (Nexus) on the bplayer line.

* Team Fortress Bots (coffee) on the tutor bot line.

* Frik-TF (Martineau) on the frikbot line.

I think the latter (Frik-TF) was the most recent and had the possibility of learning from the other releases.

Intersting there's no Frogbot TF in the mix. Maybe there is and I haven't found it yet...

I'm mainly testing the SP and DM bots, I've not tested any of the TF bots yet, sorry.

Edit: formatting.

Edit2: Coffee's tutor bot based TFBot has a newer 2003 timestamp on files in the zip. Might be the "latest" release.

It's a shame Slipgate Complex isn't still around. That was the original file sharing site for Quake.
I spent weeks diving deep down into the internet archive to build the bot archive. It'a a gift, an invaluable resource!
I'd love to see how far/good bots could get in a deathmatch shooter with reinforcement learning/self play (provided we could strongly and intelligently enforce human level reaction times and keyboards/mouse inputs). Would be really interesting to see if any crazy new strategies/tactics emerge.
I agree with the spirit, but I'm afraid that on a twitch shooter they would fall back into inhuman advantage space, like with superior, perfect aiming.

The important thing to realize is that for Quake bots, being "good" was not always preferred. Some of the early generation bots (Reaper IIRC) were wicked good because they had perfect aim and could easily defeat a human without ever relying on strategy, which was rather poor at the time. They were ok as shooting targets if you tuned it down but terrible to practice real deathmatch.

It took a while for good boys (like Frogbot IIRC) to emerge and provide a good deathmatch experience. And still a lot of them had to rely on manually defined, strategic routes around a map.

I'd love to see bots generating navigation meshes and "juicy" routes on the fly, maybe after analyzing gameplay, but I think Quake bots never got to that point. It was a bit too early.

Indeed. I'd like to think that with very good constraints on things like aiming and timing, you might be able to help foster creative 'gameplay' and discovery of things like map routes, map control etc.
I've thought about this before. Maybe randomize reactions within a range, or apply some kind of focused perception filter with a delay to mimic the focus and processing of the human eye.
IIRC correctly Valve's inhouse TF2 bots mimic target accquisition times, mouse innaccuracy and other things. They had a blog post explaining it around release, but I can't find it.
Thanks, I'll check it out.
For lack of a suitable group of friends to LAN with at the time, I learned how to deathmatch by practicing with Reaper bots. (Oftentimes in the very first level with portals to all the episodes... turns out its a pretty good DM map!) They were difficult opponents, but they were far from perfect.
I'm pretty sure I played with some of these but dont remember the names. Man, I really, really miss the Quake 1 (World) days... what an incredible time that was.
I’d love to see an in depth tournament between all of the bots, something like the GSL
did somebody say fast inverse square root algorithm?
I worked in a company that was making games like this. Copy/past the old game, remove assets and start from there.

There was a hierarchy of ancestors, siblings and descendants. So, when a bug is discovered in a game, it was important to trace back its lineage to fix all relatives affected by it.

Finally my job was to convert all common code into a library so we could have versioned releases and be able to fix bugs just by upgrading the library version.

The copy/past was fast for the very few first games, afterwards was a pain in the ass. When I joined the situation was dire. But , it was an interesting study in evolution, thou.