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] Print
Author Topic: Playing Tribes 2 with 120 bots.
Liukcairo
Seņor Nugget

Posts: 131

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.

I dunno who checks on what forums, this is also here: http://www.the-construct.net/forums/showthread.php?t=2576
MetaDrax
Nugget
Posts: 7

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://t2bots.conforums.com/
Adding smart bots to maps so y'all can LAN and relax.
RV maps have vehicles, RI are infantry based.
Be sure to play with 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?
Liukcairo
Seņor Nugget

Posts: 131

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 »
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.
Liukcairo
Seņor Nugget

Posts: 131

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.
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.
Liukcairo
Seņor Nugget

Posts: 131

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.
Blakhart
Juggernaught
Posts: 1439

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.
Liukcairo
Seņor Nugget

Posts: 131

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 »
MetaDrax
Nugget
Posts: 7

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://t2bots.conforums.com/
Adding smart bots to maps so y'all can LAN and relax.
RV maps have vehicles, RI are infantry based.
Be sure to play with 64 bots for CTF & CNH.
Liukcairo
Seņor Nugget

Posts: 131

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 »
Pages: [1] Print 
« previous next »
Jump to:  

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