TribesNext

Welcome, Guest. Please login or register.
Did you miss your activation email?


TribesNext >  TribesNext.com Forums >  Tribes 2 >  Mods and Customization >  Playing Tribes 2 with 120 bots. « previous next »
Pages: [1] 2 Print
Author Topic: Playing Tribes 2 with 120 bots.
Ragora
Seņor Nugget

Posts: 169

View Profile WWW
September 17, 2013, 03:28:12 PM »
Essentially, I was bored and wondered what would happen if you circumvent the hard coded bot count maximum of 64 in Tribes 2. The result is the video below:

<a href="http://www.youtube.com/watch?v=_hy_9Cq5C5E" target="_blank">http://www.youtube.com/watch?v=_hy_9Cq5C5E</a>

You pretty much just need to patch 5 bytes at 0xA9DD8 of a TribesNext executable to 0x9090909090 which NOPs out the CALL instruction to actually trigger the game halt.
« Last Edit: October 07, 2014, 08:42:08 PM by Ragora »

"Only two things are infinite, the universe and human stupidity, and I'm not sure about the former." - Supposedly Einstein
MetaDrax
Nugget

Posts: 10

View Profile
1: September 25, 2013, 04:37:02 PM »
Thanks for the news.
Maps would require serious rework for handling that many bots, but good news to have for what we do.

http://tribes2bots.yzi.me/forum/
Adding smarter bots to maps for LAN and leisure.
RV maps have vehicles, RI are infantry based.
Most maps support 64 bots for CTF & CNH.
LouCypher
Nugget
Posts: 27

View Profile
2: October 21, 2013, 09:30:20 AM »
Is that address supposed to be an offset? Because it doesn't look right.

0x401000 + 0xA9DD8 = 0x4AADD8 = between functions

Did you get that address from HIEW or something?
Ragora
Seņor Nugget

Posts: 169

View Profile WWW
3: October 21, 2013, 11:28:45 AM »
Is that address supposed to be an offset? Because it doesn't look right.

0x401000 + 0xA9DD8 = 0x4AADD8 = between functions

Did you get that address from HIEW or something?

It's the offset from the beginning of the file in pretty much any hex editor. I'm rather new to all this so excuse me if I wrote that wrong.

After locating this in IDA, I found the offset that could be used in a hex editor (I used Bless' go to offset function) as it seems IDA's and Bless' locations were not matching.

« Last Edit: October 21, 2013, 11:32:45 AM by Liukcairo »

"Only two things are infinite, the universe and human stupidity, and I'm not sure about the former." - Supposedly Einstein
LouCypher
Nugget
Posts: 27

View Profile
4: October 21, 2013, 03:32:09 PM »
It's the offset from the beginning of the file in pretty much any hex editor. I'm rather new to all this so excuse me if I wrote that wrong.

After locating this in IDA, I found the offset that could be used in a hex editor (I used Bless' go to offset function) as it seems IDA's and Bless' locations were not matching.
I opened Tribes2.exe in HIEW and did a Goto A9DD8 and it took me to
Code:
.text:004AA9D8                 call    PlatformAssert__processAssert
So I'm wondering (without testing) if changing the JGE @ 0x4AA9C8 to a JMP wouldn't accomplish the same thing.

I don't use hex editors much. I've pretty much fleshed out an IDA database with comments and labels gleamed from comparing it to really old Torque source code, and when I want to patch something I do it in memory after using the Assemble function of OllyDbg to see what bytes I need to change.
Ragora
Seņor Nugget

Posts: 169

View Profile WWW
5: October 21, 2013, 04:54:30 PM »
I mostly just did by searching for the error message displayed and going through to figure out what triggers that error in specific and NOP'd out said call. I'm not entirely too great with assembly to do much more.

"Only two things are infinite, the universe and human stupidity, and I'm not sure about the former." - Supposedly Einstein
LouCypher
Nugget
Posts: 27

View Profile
6: October 22, 2013, 08:16:32 AM »
I once thought about making a T2 video to Smashing Pumpkin's cover of "Clones", using a ton of bots.

There's probably more you could patch to increase the limit besides just NOPing out the call to processAssert that would make it more stable beyond 120 (which might just be a limit of your machine).

I'm also curious what would happen if someone else tried to connect to your server that wasn't a local player, and how their unmodified client would react.
Ragora
Seņor Nugget

Posts: 169

View Profile WWW
7: October 22, 2013, 11:35:17 AM »
I've had a friend try it on his own machine the day I did it. Another friend and I was able to connect and play for a little bit but it crashed shortly after we were all in. This was probably due to choice of map, though, as I noticed I that RainDance was one of the maps that wouldn't crash when ran with 120 active bots rampaging everything. Others would induce a crash.

"Only two things are infinite, the universe and human stupidity, and I'm not sure about the former." - Supposedly Einstein
Blakhart
Juggernaught
Posts: 1507

View Profile
8: February 26, 2014, 08:34:29 AM »
This is pretty neat but how many bots have nothing to do? I mean there's only so many tasks go around, and only so many escorts for tasks such as gen raping and capping and so on and so forth.
Ragora
Seņor Nugget

Posts: 169

View Profile WWW
9: February 26, 2014, 08:54:56 AM »
This is pretty neat but how many bots have nothing to do? I mean there's only so many tasks go around, and only so many escorts for tasks such as gen raping and capping and so on and so forth.

Most of the bots are fighting each other over taking turns with the inventory stations, as outlined in the video. There'd likely have to be a modification built specifically to handle this much AI activity properly. This is assuming that the game is actually stable enough to operate with that many bots. The only known safe configuration is Classic on RainDance with 120 bots, potentially on a Linux machine as well with either WINE 1.4 or WINE 1.6.

If the bots weren't clustering around inventory stations and were actually out in the field, you won't simply have an idle bot. You'll just have obscene amounts of bots performing the same task at once, such as defending the flag.
« Last Edit: February 26, 2014, 08:59:02 AM by Liukcairo »

"Only two things are infinite, the universe and human stupidity, and I'm not sure about the former." - Supposedly Einstein
MetaDrax
Nugget

Posts: 10

View Profile
10: April 02, 2014, 12:46:26 AM »
I have been playing around with the idea, and I still believe that simple map changes will be the only real thing needed after patching the CALL instruction. Granted, I still don't know how to do that or what is needed to.

Lagg's V3 bots can do more tasks than the original bots, which means it's quite easy to give new and different objectives to all the new bots past 64. Specifically, the numerous vehicle flying/handling objectives can be easily filled by the new bots.

The problem is that V3 bots don't have the ability to use multiple Vpads efficiently, if at all without other things breaking, so scaling a map like Katabatic to 120 bots with more vehicle usage wouldn't work. It is possible to have more bots doing specific foot patrol routes, sniping, deploying lots of items (pulse sensor map coverage), mortar and missile tasks. Some clever use of tasking can have bots act as mid-field flare deployers to cover bot shrikes and tanks.

The other major problem is that V3 bots eat up more CPU, and it's already getting choppy on Katabatic RV with 64 on a stock i7 2600k. Tribes 2 doesn't make good use of multi-cores, so 120 bots would be unplayable from the CPU stutter. Would likely need any i7 OCed to 5+ ghz to get somewhere playable.

120 bots without getting clogged up or stuck near invs can be solved with more invs (spaced specifically), spawn weights and zones, MPB usage, but will eventually hit critical mass for maps never designed for 64 players.

The good news is maps remain serverside.

http://tribes2bots.yzi.me/forum/
Adding smarter bots to maps for LAN and leisure.
RV maps have vehicles, RI are infantry based.
Most maps support 64 bots for CTF & CNH.
Ragora
Seņor Nugget

Posts: 169

View Profile WWW
11: April 04, 2014, 03:25:25 AM »
You simply get a hex editor, such as XVI32 and go to the address 0xA9DD8 in a TribesNext RC2A executable. Starting at 0xA9DD8, you are to overwrite the next five bytes with 0x90 in order to NOP out that call instruction. You know it worked when you can have at least 65 bots without the game giving you an error that looks something like:

FATAL-ISV
Out of Dynamic Graph Connections

If you don't get this error, you are limited to however many bots the game can efficiently handle without being unstable. 120 bots seems to be okay on some maps but a lot of maps will crash. It's recommended you run a mod that has a more efficient corpse and item cleanup. Meltdown 2 for example keeps X corpses active and once you reach that threshold, it starts deleting the oldest corpses first.

Though as I have noted, this was really only tested on Linux box that's running the game via WINE. There may be slight inaccuracies in how WINE is handling the game that's making this work at all. This can probably be tested with the Linux version of the game as the same patch could probably be applied, albeit at a different location from 0xA9DD8.
« Last Edit: April 04, 2014, 03:38:19 AM by Liukcairo »

"Only two things are infinite, the universe and human stupidity, and I'm not sure about the former." - Supposedly Einstein
Ragora
Seņor Nugget

Posts: 169

View Profile WWW
12: July 31, 2014, 11:31:01 PM »
I apologize in advance for the double and necro post but I finally looked back into all this again and realized why the information I gave initially was wrong. The location I gave initially was a file offset. This should work if you don't want to patch the executable manually:

memPatch("004AA9D8", "9090909090");


"Only two things are infinite, the universe and human stupidity, and I'm not sure about the former." - Supposedly Einstein
MetaDrax
Nugget

Posts: 10

View Profile
13: August 02, 2014, 06:49:13 PM »
Handy.

Currently looking at new-er Lagg code, but it doesn't run as problem free as I'd like. CPU stutter and device buffer overruns are a lil too common to get something enjoyable.

http://tribes2bots.yzi.me/forum/
Adding smarter bots to maps for LAN and leisure.
RV maps have vehicles, RI are infantry based.
Most maps support 64 bots for CTF & CNH.
Ragora
Seņor Nugget

Posts: 169

View Profile WWW
14: August 04, 2014, 09:30:31 AM »
Handy.

Currently looking at new-er Lagg code, but it doesn't run as problem free as I'd like. CPU stutter and device buffer overruns are a lil too common to get something enjoyable.

It'd require further patching to eliminate the instability. The patch I gave just removes the 65+ bot count error.

"Only two things are infinite, the universe and human stupidity, and I'm not sure about the former." - Supposedly Einstein
Pages: [1] 2 Print 
« previous next »
Jump to:  

irc.tribalwar.com / #TribesNext Powered by SMF 1.1.19 | SMF © 2005, Simple Machines