project reality header
Go Back   Project Reality Forums > Developer Blogs > Mats391
05 Feb 2023, 00:00:00 (PRT)
Register Developer Blogs Project Reality Members List Search Today's Posts Mark Forums Read

Rate this Entry
Breaking the seat limit
Posted in: Coding
Posted 2020-09-26 at 19:08 by Mats391

The seat limit of 8 players per vehicle was assumed to be hardcoded for a long time. However, it turns out that it just never got really tested properly. After looking at the code and giving it a test, we found out that the real hardcoded limit is 10 players per vehicle. Those who already read the v1.6.3 update highlight will know that we broke that too and this DEV Blog will talk about some of the challenges that we had.

The first big issue and main reason why the seat limit was assumed to be hardcoded, was the control binding. Normal BF2 only has controls for switching to seats 1 to 8, but if those 8 seats were filled, you would enter the normally unreachable seats. While that would work for normal gameplay, it would make testing seats nearly impossible. With v1.6 we added new server side capabilities to hook and interact with the engine through Python code. [R-DEV]AlonTavor used these to change the F8 key binding to cycle you to the next open seat instead of switching to seat 8. This will only work on dedicated servers.

Next up was COOP. The AI module does not like any vehicle with more than 8 seats and crashes instantly on map load. This could have been avoided by creating copies of every vehicle for coop mode. Luckily the crash was fixable through some binary editing, so coop players can enjoy the same amount of seats as everyone else.

With these two issues out of the way, BF2 would support up to 10 seats per vehicle without any further changes. The limit of 10 comes from the client side HUD showing the seat positions and names of players in the vehicle. The code for that has no out of bounds check and would start accessing part of the memory it should not touch which results in a crash. Even if the seats would not show up on the HUD, it would still result in a crash. We fixed this by injecting an overflow protection through the Launcher. However this also means the normal HUD will not work for any seat above 10.

That brings us to the next step: Making a nicer HUD for used seats. While non-essential for this to work, it ties everything together. As the BF2 HUD only supports 10 seats, we started making our own HUD that gets controlled by the Launcher. For that we count the amount of currently occupied seats that do not have a seat dot in the HUD and show this number as the passenger counter in the bottom left. We decided to use this counter even for vehicles that do not go past 10 seats to ensure consistency and easy recognition across all vehicles. As such only the vehicle crew gets position dots for their seats. The crew is roughly defined as pilot/driver, co-pilot/co-driver and any gunner.

At last the only thing left to to do was to go through all our vehicles, figure out how many seats it should have and then add them. Since some vehicle got created with the assumption that there would never be more than 8 seats, we even had to change some vehicle models to add more.

Passenger numbers in v1.6.3(in game values may have changed since list got updated):

Land vehicles:

Air vehicles:

Sea vehicles:
Views: 63297 | Comments: 46

« Previous Entry  |  Main

Total Comments: 46
  1. Old Comment
    This was really awesome update. Concrete services
    Posted 2022-09-16 at 11:22 by Sambam Sambam is offline
  2. Old Comment
    These updates are appealing to me. I eagerly await more advancements. Regards to my playmate at [URL=""][/URL]
    Posted 2022-10-01 at 03:53 by ampva301 ampva301 is offline
  3. Old Comment
    thanks for sharing the update, I'll keep it in mind while playing. [URL=""]towing near me[/URL]
    Posted 2022-10-03 at 13:16 by abbyrconley abbyrconley is offline
  4. Old Comment
    Luckily the crash was fixable through some binary editing, so coop players can enjoy the same amount of seats as everyone else.

    Davidson | [URL=""]r value[/URL]
    Posted 2022-10-12 at 04:05 by davidson davidson is offline
  5. Old Comment
    Thank you for informing me of the update; I'll keep it in mind when playing. | [URL=""]Sheetrock tape[/URL]
    Posted 2022-11-08 at 23:57 by ampva301 ampva301 is offline
  6. Old Comment
    I am loving this MOD! Joe
    Posted 2022-11-10 at 15:43 by jgrrrv1 jgrrrv1 is offline
  7. Old Comment
    I actually did not know that you could create another version of a game, this is really cool and I would love to try it. I love working with computers and different types of equipment. I have found that a great resource to learn about other types of equipment is this website.
    Posted 2022-11-10 at 15:46 by jgrrrv1 jgrrrv1 is offline
  8. Old Comment
    glad I came across this, very cool [URL=""]click here[/URL]
    Posted 2022-11-14 at 20:38 by abbyrconley abbyrconley is offline
  9. Old Comment
    Love the forum. Thanks for having me. James - Gutter Service Fort Collins & Carpet Installation Arvada
    Posted 2022-12-23 at 17:37 by jeezyd jeezyd is offline
    Updated 2022-12-23 at 17:43 by jeezyd
  10. Old Comment
    Can't wait to explore the whole forum.
    Posted 2022-12-23 at 17:42 by jeezyd jeezyd is offline

All times are GMT. The time now is 04:15.