FBIs modifiable via BOS commands

FBIs modifiable via BOS commands

Requests for features in the spring code.

Moderator: Moderators

Post Reply
User avatar
Argh
Posts: 10920
Joined: 21 Feb 2005, 03:38

FBIs modifiable via BOS commands

Post by Argh »

Yup, this is one of the Holy Grails: finally having proper control over unit movement, unit health, unit Autoheal and other myriad states through the proper control medium: BOS.

This opens up a whole big can of worms, of course. Starting with the fact that FBIs are apparantly loaded into memory once, when the unit is first built, then consulted from then on whenever a given unit encounters a specific situation, such as damage.

What needs to happen, in my opinion, is that FBIs are loaded into some sort of shared database, which is altered every few SlowUpdates (I'm thinking once per second) with new values based on which units have changed states. Considering that we're already sending script states, unit positions and projectile trajectories per SlowUpdate, I doubt very much that the additional data transmission requirements would be burdensome if the database was kept compact. In an extreme case, where a mod with hundreds of units per side was also having them alter FBI variables constantly due to BOS instructions, I could see this actually causing significant network lag for low-upstream bandwidth users, such as marginal DSL lines (forget 56K, we already know they aren't having an easy time with Spring's data requirements), but I suspect that most DSL and cable users, with average available upstream bandwidth of 15Kb/sec. or thereabouts ... would be just fine.

Making this possible would make tremendous possibilities open before us.

We could have units that heal themselves when severely wounded.

We could have units that could not move when firing, and have timers that didn't allow them to move prior to or after firing for whatever time was required.

We could have units that "gained experience" in really meaningful ways, by giving them new Weapons, upgrading their Shields, giving them AutoHeal, speed increases, etc., etc., etc.

If we could also modify the "template" FBI values used when units were created, we could also make it possible (with some gentle workarounds) to make "unit upgrades" through Factories. If we also made it possible to have units that could be built only X number of times... we could use these workarounds to have true "upgrades" just like any number of other popular RTS game designs.

... and this is just scratching the surface.
User avatar
KDR_11k
Game Developer
Posts: 8293
Joined: 25 Jun 2006, 08:44

Post by KDR_11k »

I'm not sure I understand the technical implementation you're suggesting but I'd say let the unit's "what is my value for..." function check a local change table first, if no change is there the global database is consulted.

Or a unit could have a local copy of its fbi values and change those. Only units with a tag "virtual" (like virtual function) would have such a local copy to avoid unnecessary performance hits.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

We could have units that could not move when firing, and have timers that didn't allow them to move prior to or after firing for whatever time was required.
Wasnt the BOS additiont hat did this readded recently?
We could have units that "gained experience" in really meaningful ways, by giving them new Weapons, upgrading their Shields, giving them AutoHeal, speed increases, etc., etc., etc.
See the WarEvolution thread I think it talked about this, but its definately possible already.
User avatar
Argh
Posts: 10920
Joined: 21 Feb 2005, 03:38

Post by Argh »

A lot of things currently don't work, or cannot work, because the default FBI values overwrite any changes caused by BOS. The BOS addition you're talking about does not actually work, because it gets overwritten on the very next SlowUpdate...
Post Reply

Return to “Feature Requests”