Merge with BULL?

Would you like to see BBAI come with BULL?

  • Yes, without BULL I might not use BBAI

    Votes: 18 23.4%
  • Yes, without BBAI I might not use BULL

    Votes: 23 29.9%
  • Yeah, but periodic merges would be fine

    Votes: 21 27.3%
  • Whatever, I'm not picky

    Votes: 7 9.1%
  • No! I need BBAI pure

    Votes: 8 10.4%

  • Total voters
    77
I answered yes, but periodic merges. My ideal situation would be that BAI be available with and without BULL, but that is of course the version that is the most work for other people. For me I would find going back to the stupid AI more crippling than having to do without the shinys in BULL.
 
I voted "without BULL I might not use BAI", as that's exactly what I'm doing now.

The speed difference with BULL alone added to BetterAI (omitting the other XML portions of BUG like fancy loggers and troop names) is probably unmeasurable, so gameplay should be identical.

I realize there is a time factor for whoever does the merge, but didn't you (jdog) say that should pretty much be a one-time occurrence?
 
Wowzers! :eek: I haven't even had time to do a real release for BULL yet, so I'm glad to see people are excited about it . . . and using it. :)

BTW, BULL's name is pretty much what you said, jdog, though without that much forethought: BUg dLL.

Let me address one thing about BULL: all the changes are to hover text, so BULL without BUG would have no noticeable performance hit. So far in my limited play the biggest payoff to using BULL is that I need to open the city screen a lot less.

As for BUG's performance issues, I have found that the only measurable aspect is from PLE and our added Plot List graphics. If you turn off all the fancy things (upgrade indicator, promotion glow, mission tag, movement bar), it's no slower than stock BTS. Unit Naming takes no time. If you turn off AutoLogger, it takes no extra time. Again, though, you can use BULL without BUG--you'll just be missing a few new hovers because they didn't exist in BTS (e.g. the :food: hover and some of the hovers on the BUG Finance Advisor).

Okay, with that out of the way, let's get into the technical details. I recently added Minor Annoyance's Global Warming mod to my personal version of BULL, and I did it in such a way that it can be merged in at compiled time. When C++ code is compiled it is run through the C preprocessor that is a language of its own. This language allows you to do conditional compilation: include/exclude code based on a compile-time setting. It's like having an option, but you turn it on/off before you build the DLL.

It looks something like this:

Code:
#ifdef _MOD_GWARM
    ...new global warming code...
#else
    ...old global warming code...
#endif

The effect is that I can flip a switch and compile two DLLs, one with GWMod and one without. I can do the merge once and keep adding features to BULL. I'm going to do the same thing with the Unofficial Patch changes that alter gameplay. Currently BULL has all the UP stuff in it, so I'm technically in violation of our mantra, but not for long. ;)

This was pretty easy with the GW mod because the changes were few and the mod is done. I suspect BAI has far more changes throughout many files, and it's in live development, so it would be a bit more work to do. However, perhaps we can work something out along these lines? I only wish I had done the same thing with all the BULL changes from the beginning.

BTW, how often on average do you do BAI releases? I'll go over the latest releases source files and see how much effort I think this will involve.
 
Yeah, #ifdefs are a very good idea ... BBAI has just over 300 changed sections spread out over 39 files currently, so a non-trivial exercise! They are all clearly commented, a sizeable fraction have the original code in comments as well. Hmmm...

In terms of timing of releases, it varies with all kinds of factors. Maybe every month to month and a half on average? Some pieces take a lot longer to test and work out the kinks on than others of course.

When do you anticipate BULL having its first official release?
 
BBAI has just over 300 changed sections spread out over 39 files currently, so a non-trivial exercise!

:eek: I knew it would be a lot, but wow. BULL currently has 211 in 37 files, but that includes the new functions I've added to CvCity/CvGameTextMgr that I exposed through their CyFoo counterparts and of course some header files.

When do you anticipate BULL having its first official release?

I was hoping to have done it already as I have a good chunk of features for the first release. I'm hoping things settle down IRL within the next week or two so I can push out the first version. Once I get the process set up as I did with BUG, I'd do releases probably every two months or so depending on how many features have been added.
 
I just voted (second option), but I like both mods a lot.

In essence my vote as recorded above could be interpreted that I'm against a standalone version of these mods, but that is not the case. If someone would prefer standalone versions over merged versions, then my vote should not be considered as a no against that option.

While democracy is a very fair and honest form of decision making, in this case I do think the mod creators jdog5000 and EmperorFool have a demonstrated better insight in what each decision would entail. So like good politicians, you have my blessing to ignore the poll results if they're not to your liking! ;)
 
There is another option to ease the merging process: You can use Subversion to apply the differences between two revisions in the same repository to another repository.

To update BULL in BAI, assuming a previous version of BULL had already been merged, do this:

  1. Check out BetterAI
  2. Check latest BULL revision that was merged, say it's 21
  3. Tell SVN to merge r21-HEAD from BULL
This doesn't require any of the preprocessor logic I described above. In fact, even with the preprocessor logic, this is how you would continue keeping the mods in-sync. It works best if the two mods don't modify the exact same sections of code, and I suspect this is the case with BAI and BULL as they address different needs (logic vs. interface).
 
I voted using the 2nd option: "Yes, without BBAI I might not use BULL"

The other mod, BULL, looks really nice and I've been really itchin' to try it out.

But I'm not very knowledgeable on how to combine the two. I need to be able to just simply copy and paste it into my game folder.

I like the KISS method... "keep it short and simple". :lol: I don't like editing files and/or checking versions and compatibility between different mods, and I hate glitches and errors caused by having too many mods mixed into the game, which is why I only use BetterAI right now.

I've used the old interface for a long time now and know how to use it and where to look for most of the game's information. I have no problem continuing to do so. BetterAI is my priority. I rather have better opponents with a less convenient interface than a convenient, stylish interface which helps me play against knucklehead AI's.

Though, if BULL (with BUG included) can be merged with BetterAI, it would be a most welcomed inclusion, in my opinion. I really appreciate all the great work you guys do and would love to use this additional mod if it becomes possible. :goodjob:
 
While changes like BULL and BUG are great for power users, are they that good for someone who isn't a power user?

Ideally UI changes like BULL would have a toggle that could be controlled in the game or session or ini settings (like the CHIPOLTE cheat code). Then it would be a top-notch idea.
 
While changes like BULL and BUG are great for power users, are they that good for someone who isn't a power user?

Ideally UI changes like BULL would have a toggle that could be controlled in the game or session or ini settings (like the CHIPOLTE cheat code). Then it would be a top-notch idea.

I believe the mods do have options to enable/disable its many features.

If not, I may be opposed to adding them to BetterAI. Some things (though beautifully done) don't fit my tastes - such as the changed civ flags and culture colors within BAT which I've observed. I'd rather use the simple, default ones.

I also think some things give away a little too much information to the player. Yeah very competitive, meticulous players could figure things out anyway with a pen and paper using the data available to them on the screen... but I certainly wouldn't - which is why I'll never make it to Immortal or Deity I suppose :lol:.

In that case I feel the mod WOULD "alter" my gameplay instead of leaving it "unaltered". I don't want to be spoonfed too much information. I want the responsibility to have to observe some things on my own.

For example, I should be responsible and scout, rather than see a popup notification, to discover that an AI has just founded another city.

I suppose they're personal decisions I'll make once I use the mod and see what crosses the line or not. Like I said, hopefully there's options to enable/disable most additions to fit all our personal tastes.
 
I feel I may be hijacking this thread a bit into a BULL commercial, so please stop me if this isn't helpful to the vote/discussion. :)

While changes like BULL and BUG are great for power users, are they that good for someone who isn't a power user?

The interface changes to BUG are more about saving time so you don't have to open all the screens to get critical information when it changes. I would say they probably help beginners more than power users because the latter tend to know when it's important to check those other screens and find that info regardless.

With BULL, the major changes are in the city bar hover; I've copied a lot of stuff from the city screen here:

  • Net happy/health so you know how soon you'll need that Market
  • Anger counter so you know how pissed your citizens are about your whipping/drafting
  • Whip/rush-buy/draft cost/overflow so you don't have to click the city and hover over the action buttons in the bottom-right
  • :hammers:/turn ignoring this turn's whip/chop/overflow
  • Trade (w. separate foreign and domestic values)
  • Total commerce
  • Turns until GP birth
  • Turns until border expansion
  • Specialists (normal, free and settled)
  • Building icons instead of names
But the feature that is most beneficial to beginners is the actual effects you'll receive by constructing a building shown in the hover. For example a Market will show +2:) if you have Ivory and Fur and +4.5:gold: if the city is producing 18:gold:/turn.

Ideally UI changes like BULL would have a toggle that could be controlled in the game or session or ini settings (like the CHIPOLTE cheat code).

Just like BUG, each feature is individually selectable using an XML file (if running without BUG) or the BUG options screen.

Edit: BTW, BAT 1.2 removed the terrain and changed culture colors from Improved Graphics. The leaderheads were kept, but I don't know if the flags were kept.
 
Voted nr. 4... I'm going to merge both anyways... :D
 
I voted #1.

In an ideal world (for me) I'd only play with both mods at the same time. As some of you know already, I've already released ACO merged with BBAI, though only with BBAI v0.70 so far, with some help from phungus420. I plan to every now and then merge BBAI with ACO. But if BULL and BBAI combine then that won't be necessary anymore - I'll just direct people to this fine mod.

I think the most important thing is having a simple installation method. Even as a modder now myself, I'm still a bit confused by the method for merging BBAI and BULL and BUG. As long as there is a single zip one can download that has the BBAI+BULL DLL in it and the BUG mod ready to go, I'll be happy.
 
Yeah, BBAI includes the unoficial patch. I'm not sure if it includes Alexman's amphibious assault fix, but I assume it does, if it doesn't jdog must have missed it, and it's supposed to be/will be in there.
 
All useful: so long as they can be all turned off for "default UI mode" (ideally easily -- like with a .ini file flag)[1], then merging mods is a matter of no-harm no-foul. (excluding, of course, increased bug rates to do more code smithing, but ...)

[1] I call a .ini file flag "easy" because it means you can have a BetterAI with no UI changes distribution ... by simply setting the .ini file flag.
 
I voted #2; I much prefer fighting a better AI than simply one with more handicaps it's in favor.
I do see BULL as a possible major time saver.

Oh: on the periodic merging of code branches: As a programmer by trade, this only works if you merge frequently enough. Typically a merger every couple of days is painless. Let a couple weeks go by before a merger and it becomes pretty painful. Let several months go by and forget about it.
 
Top Bottom