Welcome to HABAI - Hardware Accelerated Battlefield AI

Give your bots the CPU cycles they deserve. They have earned it !

HABAI Multic0re Drawing

Friendly in game botsBot filling MG positionAnother position filledBots are more intelligentOperation Totalize HABAI 3Extra HABAI chaos (Operation Supercharge)

Hardware Accelerated Battlefield AI (HABAI) improves AI bot performance. At the present time it is only available for the Forgotten Hope mod for Battlefield 2. Support for other mods like AIX2 may follow as as for ArmA2:OA. What does this mean ? For the player it means more intense game play, with bots using and performing better with weapons and vehicles. That means blistering game play with more bullets flying, more explosions, more aggressive AI, more fun ! Mods without servers full of human players can be given a new lease of life. The AI is more difficult to play with as it responds faster. Clans can use this mod to improve training in BF2 with bots.

The mod will also allow easy switching of maps using the in game map voting menu. There will also a be a custom quick start GUI so single player and coop players can get quickly into a multicore accelerated game with the AI.

In game single player/coop map menu
This screen shot shows the in game map chooser (map vote menu).

The mod will also fix the "autobalance.py" Python script provided by DICE as the current version does not balance bots when using more than 96 bots. At the present time the maximum 50/50 team balance can be achieved with 96 bots, with 48 on each team.

Proof of 50/50 96 bot team balance
Yes, there really can be 96 bots balanced 50/50 in Battlefield 2 (plus one, me, the human player).

More bots can be added (up to 255 but that is a theoretical maximum) but one team will always be set at 48. With a fixed "autobalance.py" script balancing should be achievable for more than 96 bots. A solution will also be provided for becoming squad leader as when the maximum number of squads is reached it is not yet possible to become the squad leader. Other fixes and innovations may be developed.

The technical details

HABAI Multic0re Drawing
HABAI sets up a multi threaded environment for Battlefield 2

As the AI has a seperate CPU core all to itself the engine does not scale down AI performance. DICE have stated that their engine does indeed do this when resources are limited ...

Tobias_Karlsson_(DICE) wrote:"Battlefield [...] is a real time system, which means that all subsystems have a very limited amount off time to perform their calculations [...] The AI system is time sliced, that means that all the major [AI] systems can abort, break, or postpone their calculations if they run out of time."

Quoted from "An Introduction to AI in Battlefield 1942" [Battlefield 2 AI is an almost identical system], Tobias Karlsson, Digital Illusions CE AB, p4, 2003-11-07.

This is done by splitting server (AI/bots) and client (graphical) operations between cores (CPU affinity) on a single machine with a multicore CPU. This is currently working but was not easy to achieve because various server options are sometimes poorly documented and sometimes don't work as expected. More so the Battlefield 2 engine architecture, especially the operation of the AI, is not widely understood (I thank Void here for his help, see his ESAI ).

My testing shows much improved frame-rates ... for example there are no slow downs when there are lots of AI in one area. Benchmarks prove that there is an improvement. The important figure in the following tables is the "Avg" (average) number for FPS - Frames Per Second. The benchmarks were all taken on the same Forgotten Hope level, Anctoville, as all 48 bots of one side spawn in a single area. This is where AI slow down often occurs as well as framerate glitches. Benchmarks taken on Quadcore Q6600 and Nvidia 9800GT machine.

Fraps benchmark for a game started using the in game server creator.

Frames, Time (ms), Min, Max, Avg
1485, 60000, 15, 42, 24.750

Server and client on single core.

Frames, Time (ms), Min, Max, Avg
1657, 60000, 17, 60, 27.617

Server and client on seperate cores effectively making BF2 "multi-threaded".

Frames, Time (ms), Min, Max, Avg
2713, 60000, 0, 61, 45.217

This improves AI performance as well as keeping the framerate in the graphical client as high as possible.

CREDITS

Thanks to the Forgotten Hope team for their high quality mod and for supporting AI. Thanks to Forgotten Hope single player fans in the FHSP forum section and to Project Reality for bringing clarity to Battlefield 2 modding. Thanks to djinn for moral support. Thanks to Void for AI enlightenment.

Image RSS Feed Latest Screens
AIX2 HABAI squad join with max squads HABAI covered on BFSP - Page Excerpt HABAI covered on BFSP - Full Page
Blog RSS Feed Report abuse Latest News: Returning to work on the mod !

6 comments by DJ_Barney on Feb 25th, 2014

Hello. It's been a few months but I've been happy to get some time to work on the mod.

I played a game of Forgotten Hope St. Vith started entirely in the client with 64 bots. The FPS often goes down to ~20 and below.

As you can see in the map of St. Vith above (courtesy of Forgotten Hope dev team) the map is has quite a complex layout. I suspect this is why the frame rate is very low with the AI on this map. Other levels are not this bad even without the dedicated server. The AI is having to do a lot of path finding around obstacles on the navmesh which puts more strain on the CPU. Running the AI on the dedicated server solves all that by handing off all the AI stuff to another CPU core. On that point ...

I noticed in the dedicated server readme.txt this; "Only run one instance of BF2 per physical CPU with Hyperthreading disabled". I assume "BF2" means the server seeing as this is in the server readme. I'd been running the server on two cores. I think this may explain some server crashes I've had before. So forcing the server to one core should help with that.

So with the client connecting to a dedicated server on the same machine the FPS is 99% of the time @ 60 fps on St. Vith ! Even reducing the bots in a client only game to 48 in total the FPS is @ ~48. Playable, but 60 fps is much more immersive.

So there's a few problems to fix now.

Running an identical copy of FH Coop Patch C files on the server gives ...

1. Sometimes missing shell change sounds in tanks.

2. Double fire sound on some German tanks.

3. Inability to become squad leader.

These are all problems that arise when running with the dedicated server. They do not happen when starting a game entirely in the client without the dedicated server. So there are some fixes needed in the server files. I think the sound problems can be fixed. The squad problem might be more tricky.

I'm also going to work on a GUI to make starting games easier. It will be much like the GUI within the client for starting client only games but will have more features like showing the full "mini" map as found on the FH website (if FH devs will allow me to distribute them). I'm considering coding this in C++ but might choose some kind of scripting language.

OK, thanks for reading if you got this far and on with the development !

Downloads RSS Feed Latest Downloads
HABAI Testing Release

HABAI Testing Release

Mar 17, 2014 Script 4 comments

This download provides the ServerSettings.con file and a description of how to go about setting everything up to allow acceleration of bots in Battlefield...

HABAI testing release for ArmA:OA

HABAI testing release for ArmA:OA

Sep 12, 2012 Singleplayer Map 7 comments

The idea here is to encourage testing of the ArmA2:OA set up and development of creative ideas for making the ArmA2:OA AI game as fun as possible. This...

Post comment Comments  (0 - 10 of 50)
jesbro123
jesbro123 Apr 25 2014, 4:05pm says:

Will this work with the new Forgotten Hope 2.46 update?

+2 votes     reply to comment
bleeh1223
bleeh1223 Apr 19 2014, 10:25pm says:

how can i install this on AIX2 ?

+1 vote     reply to comment
EITY10
EITY10 Mar 22 2014, 7:21am says: Online

How to install it?
(btw i want to play singleplayer not multiplayer)

+1 vote     reply to comment
1982gonzo
1982gonzo Mar 18 2014, 3:08am says:

Awesome work :) Thank you guys so much

+1 vote     reply to comment
Thaiawe
Thaiawe Mar 17 2014, 8:23pm says:

Can this work in other mods besides Forgotten Hope 2?

+2 votes     reply to comment
DJ_Barney
DJ_Barney Jun 10 2013, 10:38am says:

Development for this mod is on hold. I really want to continue with it but have to take into account some other concerns at the moment. Hopefully I'll be able to go back to developing this, otherwise I'll consider passing my work onto someone else who can continue with this mod.

+2 votes     reply to comment
Guest
Guest Feb 25 2014, 5:27pm replied:

Back again. See latest news.

+1 vote     reply to comment
DJ_Barney
DJ_Barney Jun 10 2013, 10:36am replied:

Yes, it should be as long as it does not depend on the Commander. It would need some kind of timer on it to provide balancing, just like any other weapon.

+1 vote     reply to comment
TheManwithafan
TheManwithafan Jun 11 2013, 2:41am replied:

That was a long time until answer.
Could you show me how to do that?

+1 vote     reply to comment
DJ_Barney
DJ_Barney Jul 23 2013, 2:12pm replied:

I've not worked it out yet. You could ask on Bfeditor.org

+1 vote     reply to comment
Post a Comment
click to sign in

You are not logged in, your comment will be anonymous unless you join the community today (totally free - or sign in with your social account on the right) which we encourage all contributors to do.

2000 characters limit; HTML formatting and smileys are not supported - text only

Icon
Battlefield 2 Icon
Platform
Windows
Developed By
DJ_Barney
Contact
Send Message
Release Date
TBD
Mod Watch
Track this mod
Share
Style
Genre
Tactical Shooter
Theme
War
Players
Single & Multiplayer
Embed Buttons

Promote HABAI on your homepage or blog by selecting a button and using the HTML code provided (more).

HABAI
HABAI
Statistics
Rank
2,969 of 22,195
Last Update
5 months ago
Watchers
93 members
Addons
1
Files
1
News
5