Final Frontier Plus v1.9 - Beta!

TC01

Deity
Joined
Jun 28, 2009
Messages
2,216
Location
Irregularly Online
I've released a beta of Final Frontier Plus 1.9. To install it, just unzip it on top of your Beyond the Sword/Mods directory (you need a copy of 1.84 already installed).

As discussed in the spy ships thread this begins the process of adding BTS-style espionage/spies back into the mod. It also adds a new civilization, Interstellar Intelligence (also known as the Watchers, as suggested by Imp Knoedel), with a Stealth Ship as their unique unit and an Intelligence Center as their UB.

The current implementation of II mostly follows Imp Knoedel's suggestions, but I made a couple changes. For one thing, I used this leaderhead of Miranda Lawson (from Mass Effect 2) rather than pulling a leader from Civ; frankly, I didn't think any of them had quite the right aesthetic for space. Or, to put it another way, I figured a fictional member of a paramilitary intelligence organization from another setting did have the right aesthetic

The current changelog for 1.9 Beta 1 looks like this:

1.9 Beta 1 Changelog:
-Added a ninth human colony, Interstellar Intelligence, an espionage-focused faction, aka "the Watchers", based off a suggestion by Imp Knoedel. Trait grants Improved Stealth to all Light Ships and a bonus to espionage production, at a cost to upkeep.
-Imported sailbotlieh's Miranda Lawson (imported from Mass Effect 2) leaderhead for Catherine Shapiro, the leader of the Watchers. Favorite civic is Police State.
-Added Stealth Cruiser UU for the Watchers; a more expensive Stealth Ship that gets first strikes.
-Added Security Directorate UB for the Watchers; an Intelligence Center that produces more Espionage.
-Added Galactic Infiltration technology to the beginning of the Expansion Era.
-Galactic Infiltration allows the training of the new Spy Ship unit, a spy that can perform Spy Missions but is not 100% invisible; it is only "invisible to most units" ala a Stealth Ship.
-Re-enabled the No Espionage gameoption (that prevents the building of Spies and turns all Espionage into other commerces).
-Added No Spies gameoption that prevents the building of spies, but still lets buildings produce Espionage culture.

I played a test game as the Watchers but haven't really tested the (re) implementation of espionage much-- aside from disabling the "destroy buildings" spy mission I've basically stolen the espionage missions XML straight from BTS. So that may need tweaking too.

The more complex invisibility mechanics discussed here haven't been implemented either, so spies may not work very well in their present form (vulnerable to anything that can see a Stealth Ship).

Any testing would be greatly appreciated! I mostly wanted to get something out while I was still on break and had the time to do so.

Beta 2 will likely include said invisibility mechanics unless someone convinces me it's a really dumb idea, along the destroy building espionage mission implemented correctly, and tweaks and bugfixes and so on. It may also include some espionage-related wonders.
 
Proposed changes looks okay for me. Question is do you intend to change mechanics in other way? I always detested jump/warp lanes as space roads, would it be possible to remove them and put other solution? For example you could treat space as sea, put in blockade missions and jump gate building for system ("airlift" one unit per turn). Obviously this would necessitate increase in ship movement.
Other observations: missiles are to powerful, q squadrons should be broken into bombers and fighters. Destroyers should have higher interception chance. Perhaps weaken bombers but give them +100% vs capital ships? I always preferred squadron/escort/capital ship classification (+stealth/civilian). Other than that I'm glad that somebody still works on this mod.
 
Proposed changes looks okay for me. Question is do you intend to change mechanics in other way?

What I would like to use the next few releases to do is build up feature parity with Beyond the Sword. Missing at the moment are espionage, corporations, and great people, most noticeably. Corporations and GPs may go hand in hand.

I'm not terribly interested in making invasive changes to the base mechanics, unless something is obviously broken. Obviously smaller (balancing) changes and fixes will continue to happen. But I'd like FF+ to be recognizable, more or less, to a Final Frontier player in the same way that BTS is recognizable to a vanilla player.

I always detested jump/warp lanes as space roads, would it be possible to remove them and put other solution? For example you could treat space as sea, put in blockade missions and jump gate building for system ("airlift" one unit per turn). Obviously this would necessitate increase in ship movement.

I've thought about shipping a gameoption, or possibly a modmod, that does this, since someone asked about this in the main thread too. I'd consider somehow shipping the following game mode:

-Disable buliding of routes.
-Create trade routes on space to some technologies, the way the Star Trek mod works.
-Increase ship movement; maybe by +1 every era or for certain technologies?

This is somewhat more invasive than gameoptions usually are though, and would be a bit painful to implement. So maybe shipping a modmod would be better. Thoughts?

Enabling blockade is something we could do regardless. There must be a "land blockade" implementation somewhere either here or for Colonization (probably); if there isn't, it should be easy to enable... probably. Maybe we could prevent blockades from working inside another power's borders?

Thanks for your other comments too; I'll consider them when making balance changes. :) I'm probably not going to touch Q Squadrons though.
 
I've thought about shipping a gameoption, or possibly a modmod, that does this, since someone asked about this in the main thread too. I'd consider somehow shipping the following game mode:

-Disable buliding of routes.
-Create trade routes on space to some technologies, the way the Star Trek mod works.
-Increase ship movement; maybe by +1 every era or for certain technologies?

This is somewhat more invasive than gameoptions usually are though, and would be a bit painful to implement. So maybe shipping a modmod would be better. Thoughts?

Yeah, modmod is probably simpler solution. Movement could be something like that:
Destroyer and stealth ship 3/4/5, cruiser 2/3/4, battleship and carrier 1/2/3 etc. Basically each type (alpha, delta, omega) gets +1 movement (civilian ships included), there is already tech which increases movement by one so you will need add another increase or two to previous techs, so the final destroyer will be for example S14 M 7-8.

Are there any plans about changing ships classes? I always thought that carrier ships are pointless, just roll them into capital class. Bomber then get 200% vs capital ships, but have base strength reduced to fighter levels (4/6/9), also reduced in cost to fighter price.
 
Missing at the moment are espionage, corporations, and great people, most noticeably. Corporations and GPs may go hand in hand.

Have you considered my suggestion of following DoC's corporation model?

Enabling blockade is something we could do regardless. There must be a "land blockade" implementation somewhere either here or for Colonization (probably); if there isn't, it should be easy to enable... probably. Maybe we could prevent blockades from working inside another power's borders?

Planetfall has the ability to blockade land.
 
What I would like to use the next few releases to do is build up feature parity with Beyond the Sword. Missing at the moment are espionage, corporations, and great people, most noticeably. Corporations and GPs may go hand in hand.
Great people and espionage are not a problem, corporations on other hand may face serious problems in implementation. Reason is simple - resources in FFP are limited so you will need really increase bonus from them. In BtS from what I remember for example Cereal mills get you +0,5 food per consumed bonus. In FFP on standard map you will be lucky to have 2-3 food resources overall.
While we are on resources themselves, is there possibility of renaming, changing icons and adding some new ones?
Example oil should really get new icon and get renamed to hydrocarbons, iron to common metals, titanium to rare earth metals/elements, uranium to radioactive elements etc.
Perhaps this warrants some discussion?
 
Yeah, modmod is probably simpler solution. Movement could be something like that:
Destroyer and stealth ship 3/4/5, cruiser 2/3/4, battleship and carrier 1/2/3 etc. Basically each type (alpha, delta, omega) gets +1 movement (civilian ships included), there is already tech which increases movement by one so you will need add another increase or two to previous techs, so the final destroyer will be for example S14 M 7-8.

Are there any plans about changing ships classes? I always thought that carrier ships are pointless, just roll them into capital class. Bomber then get 200% vs capital ships, but have base strength reduced to fighter levels (4/6/9), also reduced in cost to fighter price.

Sure, that seems sensible.

There aren't really plans to do anything at the moment, aside from what I mentioned above. :) But I'm not really confident enough in my ability to balance the game to make major changes to the ship classes.

If you're interested in such changes, I'd be more willing to consider them if you made a small concept modmod that we could play around with. Then it can either get merged into a future release, or even if it doesn't the refactored classes are available as an option. :)

Have you considered my suggestion of following DoC's corporation model?

I've considered it, though I haven't really thought a lot about it yet because I'm probably not going to get around to implementing them for a while.

I'm a little against deviating too far from the BTS corporation model by removing executives and headquarters. I also haven't played Dawn of Civilization however, so maybe it's a significantly better way to implement them? I'd probably have to play that mod before deciding.

Your other ideas look interesting, I think. Sorry for not thinking more about them yet.

Planetfall has the ability to blockade land.

Ah, I knew I'd played with this feature somewhere!

Great people and espionage are not a problem, corporations on other hand may face serious problems in implementation. Reason is simple - resources in FFP are limited so you will need really increase bonus from them. In BtS from what I remember for example Cereal mills get you +0,5 food per consumed bonus. In FFP on standard map you will be lucky to have 2-3 food resources overall.
While we are on resources themselves, is there possibility of renaming, changing icons and adding some new ones?
Example oil should really get new icon and get renamed to hydrocarbons, iron to common metals, titanium to rare earth metals/elements, uranium to radioactive elements etc.
Perhaps this warrants some discussion?

Sure; there's a thread I made a while ago for that purpose.

My thought was that the best thing to do with corporations (at least, some corporations) was use them to do something with strategic resources, since those stop helping after you get one of them. My other thought was that we should add other resources (I wrote about nebula resources in that thread, but there are other places we could add more).

The bonuses from corporations would definitely have to be increased though, you're right.

I would at least consider new icons, but someone has to actually contribute them. (My artistic talents are lacking). I'm not so sure about renaming them though.
 
I'm a little against deviating too far from the BTS corporation model by removing executives and headquarters. I also haven't played Dawn of Civilization however, so maybe it's a significantly better way to implement them? I'd probably have to play that mod before deciding.

Oh you definitely should try out DoC, or even better perhaps a certain modmod of it. *nods head at signature* :mischief:
 
I've merged PB Mod to my fork of FPP. It includes a couple of pitboss related bugfixes and significantly improves pitboss experience by enabling use of admin web interface and new turn tracker. They (creators of PB Mod) also developed a lot of extraordinarily useful tools for pitboss hosts, I would recommend everyone who plays pitboss games to check it all out. More details here or here.

Commit log:
Spoiler :
Merged with PB Mod_v5 and fixed one BTS bug/feature.

Merged with PB Mod_v5. Normal pitboss cannot be used anymore, you must
use PB Mod pitboss available
http://forums.civfanatics.com/showthread.php?t=533346 or
https://github.com/YggdrasiI/PBStats. More information about PB Mod is
also available there. Main features are fix for pause/trade screen bug
and admin webinterface for pitboss. It also includes language dependent
OOS bugfix for city naming, empty login screen workaround and espionage
popups on load bugfix.

Units in influence flipped star system won't be deleted when in war with
new owner, but will just be bumped outside enemy borders.


EDIT: I forgot to add that I also changed how team score is calculated. Now tech score is counted only once for team and not per player as before.

I can make a pull request if you want.
 
Sure, a PR would be great. Since I'm assuming you know what you're talking about with regard to the pitboss community, I'm happy to just take that patch. :)

(It won't be a problem that normal pitboss mode is no longer available? I guess given that nobody reported pitboss in FF+ didn't work because BUG until you did, the answer is probably "no").
 
I created a pull request.

(Is there a better way to add new files to the repository than to simply paste them there? I've added quite a bit of files that were not in the repository before as PB Mod changed them, but now specific changes aren't shown because the whole file is counted as change. Maybe it would be better to first commit addition of unmodified BTS files and then commit additional changes? I don't know how did you deal with that before, if at all.)

As for pitboss changes, yes, it's a bit unfortunate that this disables normal pitboss as it messes with default civ features that players simply expect to work. Although, FF+ pitboss didn't really work until recently. :lol:

This new pitboss requires download of additional files (for the host only) and a bit of (sometimes confusing) setup (host only again), so you might add a sentence telling that somewhere where it will be more visible with those two links from my previous post.

That being said, I don't think that this mod is being used much outside of a certain German civ board and the games I host, so this change might be... too much tailored to my own preferences. Most (normal) pitboss games probably use this tracker and most games using this new PB Mod pitboss probably use this tracker. So, first ones are obviously more numerous. (Although PB Mod provides tools for setting up your own tracker easily, but I don't know whether anyone actually uses that.)

Also, I don't think that anyone is actually playing FF+ pitboss games currently, so this shouldn't make problems for anyone. And finally, I plan on making some further contributions to FF+ (I haven't forgot what I said about trying to add new wonders and planet-eating alien civ, etc., but that will certainly have to wait at least one more month) and addition of this PB Mod would make it easier for me as I also plan to host FF+ games.
 
I created a pull request.

Thanks!

Could I get you to push your DLL changes against the DLL repository though, as well?

(Is there a better way to add new files to the repository than to simply paste them there? I've added quite a bit of files that were not in the repository before as PB Mod changed them, but now specific changes aren't shown because the whole file is counted as change. Maybe it would be better to first commit addition of unmodified BTS files and then commit additional changes? I don't know how did you deal with that before, if at all.)

The FF+ repository structure leaves something to be desired, yes. Part of the problem is that it's all a port of a SVN repo I created when I didn't really know anything about version control.

I was initially leery to include Firaxis files with changes I haven't made (especially Firaxis assets and not code). I also wanted to maintain the ability to clone/download FF+ on top of a copy of Final Frontier (more or less), and to keep art assets out of the main repository (to make it easy to turn them into FPK packed files).

I now have a lot more experience with version control in general and git in particular, and I've been struggling to find a good way to manage development of the mod. As I mentioned above, I created a separate repository for the FF+ DLL that does include all of Firaxis's DLL changes (as the first commit), as well as the Boost and Python stuff necessary to build it. The hope was that I could eventually get some automated build system compiling the DLL on every commit, although this looks like it might be... tricky to implement properly. Perhaps if I were a more experienced Windows developer I'd know how to do this sort of thing.

What I haven't done yet, but probably should, is remove the current tracked DLL changes from the civ4ffplus repository and make the CvGameCoreDLL repository a git submodule of the civ4ffplus one.

EDIT: for Python/XML files, committing the vanilla copies first and then your changes to them as a second commit on top of that makes sense to me. :)

As for pitboss changes, yes, it's a bit unfortunate that this disables normal pitboss as it messes with default civ features that players simply expect to work. Although, FF+ pitboss didn't really work until recently. :lol:

This new pitboss requires download of additional files (for the host only) and a bit of (sometimes confusing) setup (host only again), so you might add a sentence telling that somewhere where it will be more visible with those two links from my previous post.

That being said, I don't think that this mod is being used much outside of a certain German civ board and the games I host, so this change might be... too much tailored to my own preferences. Most (normal) pitboss games probably use this tracker and most games using this new PB Mod pitboss probably use this tracker. So, first ones are obviously more numerous. (Although PB Mod provides tools for setting up your own tracker easily, but I don't know whether anyone actually uses that.)

Also, I don't think that anyone is actually playing FF+ pitboss games currently, so this shouldn't make problems for anyone. And finally, I plan on making some further contributions to FF+ (I haven't forgot what I said about trying to add new wonders and planet-eating alien civ, etc., but that will certainly have to wait at least one more month) and addition of this PB Mod would make it easier for me as I also plan to host FF+ games.

Hm, okay, thanks for the information. I'll probably just merge it as is.

Glad to hear you're planning on contributing more to FF+ though! :)
 
Could I get you to push your DLL changes against the DLL repository though, as well?

In process of doing this I found that these and these changes of CvUnit.cpp have been made in the CvGameCoreDLL repository, but not in the civ4ffplus one.

I assume that you want them in both repositories, so I added them to civ4ffplus. I also made a pull request for the DLL repository.

EDIT: for Python/XML files, committing the vanilla copies first and then your changes to them as a second commit on top of that makes sense to me. :)

One python file was added, but its function was changed completely, so I don't think it's necessary in this case, but I'll do so in future cases.
 
As for pitboss changes, yes, it's a bit unfortunate that this disables normal pitboss as it messes with default civ features that players simply expect to work.

Well, I'm responsible and disapointed about this at the same time. ;) The problem roots in the seperation of Pitboss Python files and Mod files.
Code:
pythonDir = os.path.join(gc.getAltrootDir(),'..','Python','v5')
execfile( os.path.join(pythonDir,'PbAdmin.py'))
(Extraction of Assets/Python/Pitboss/PbAdmin.py)

This allows us to updates Python code on the server even if the game is password protected. (I.e. to change the map of running games.)
If you known a portable solution how to place/find the external python files without AltrootDir let me know :)
I've give up my search for such solution because most Pitboss hosters know how to use the Altroot argument.


This new pitboss requires download of additional files (for the host only) and a bit of (sometimes confusing) setup (host only again), so you might add a sentence telling that somewhere where it will be more visible with those two links from my previous post.

Yes, the setup is fiddling :-(
I had planned to simplify the creation/startup of the Pitboss games with a CLI python interface. This was discarded because nobody but us uses the PB Mod (until you arise) and the bash start script works fine enough, too.

Moreover, I think most issues can't be solved by the Mod itself. It's not easy to handle all bugs of the Civ4 Pitboss Server and only a few people worldwide are interested to dig in and read a few pages of information about this technical stuff.

That being said, I don't think that this mod is being used much outside of a certain German civ board and the games I host, so this change might be... too much tailored to my own preferences. Most (normal) pitboss games probably use this tracker and most games using this new PB Mod pitboss probably use this tracker. So, first ones are obviously more numerous. (Although PB Mod provides tools for setting up your own tracker easily, but I don't know whether anyone actually uses that.)

Our problem with civstats was that it was not developed, doesn't support Mods and games with #players >18. As we already stared the development of the PB Mod it was only a small step to wrote a public available tracker.
If other modders drive their own version of the webfrontend is unknown for me, too.
 
Well, I'm responsible and disapointed about this at the same time. ;) The problem roots in the seperation of Pitboss Python files and Mod files.
Code:
pythonDir = os.path.join(gc.getAltrootDir(),'..','Python','v5')
execfile( os.path.join(pythonDir,'PbAdmin.py'))
(Extraction of Assets/Python/Pitboss/PbAdmin.py)

This allows us to updates Python code on the server even if the game is password protected. (I.e. to change the map of running games.)
If you known a portable solution how to place/find the external python files without AltrootDir let me know :)
I've give up my search for such solution because most Pitboss hosters know how to use the Altroot argument.

I'm afraid I probably don't know enough about pitboss games to come up with a way around this (or indeed, understand the problem), unfortunately.

It looks like (poking at the PR), that getAltrootDir returns gDLL->GetPitbossSmtpLogin()? So I'm assuming this is some way to sneak the alternate root dir argument into Civ 4 via the SMTP login information.

Could you not just condition on this being empty, or something? Like, surround the lines you quoted above in a conditional, and if the altrootdir is empty (or whatever), use normal Civ 4 pitboss? Or, would it not be empty in normal pitboss because it would actually contain valid smtp login information? I guess it probably would... huh.

If the above is accurate (which it may not be, I've never tried to play pitboss), the way I'd probably want to solve this is by making the "altrootdir" string actually look like something like: "altroot=$path" rather than just "$path", and then you can condition on the existence of "altroot" in the DLL. But I don't actually know if that would work.
 
(Merged the aforementioned changes!)

This reminds me that I really wanted automated building of the DLL in some kind of CI system... I wonder how difficult that will be to set up using AppVeyor.
 
While Espionage is now a bit more useful, I still think Police State is a little too weak. Imo you should move the extra happiness from state value that Planned Economy provides over to it, which would also make more sense realistically speaking as a Police State would of course have great interest in spreading its ideology among its population.

Also Technocracy has too many effects and is a bit overpowered, especially when compared with Democracy with which it shares the ability to rushbuy, which is an overlap that imo shouldn't exist. I suggest you remove rushbuying from Technocracy and improve its other bonuses by 5% each. Democracy can have its happiness bonus decreased by 1 to make up for being indirectly buffed.
 
I've considered it, though I haven't really thought a lot about it yet because I'm probably not going to get around to implementing them for a while.

I'm a little against deviating too far from the BTS corporation model by removing executives and headquarters. I also haven't played Dawn of Civilization however, so maybe it's a significantly better way to implement them? I'd probably have to play that mod before deciding.

It's a huge improvement over the original system. Especially for scenario-type mods, but I strongly beleive it would be much better for FF too than the original BtS one.
Intuitive, fits perfectly to the game, and requires much less micromanagement from the player.

Btw the corporation model is from Sword of Islam, by embryodead.
Leoreth adapted it for DoC, and I also recently did it for RFC Europe.
 
So I have been modifying my version quite a bit, but ran into a roadblock when trying to implement my three new suggested buildings. I am unable to find where the game determines whether a building that increases the population limit should have the additional pop consume food or not. I compared every single line of the Habitation System entry with that of the Moonbase, and couldn't find an XML tag responsible for it. Just setting bMoon to 1 doesn't do anything in that regard, my extended Moonbase building still provides food yield. I also looked a bit through Python and the DLL, but haven't found anything relevant yet. A little help please?

I guess the only thing left to do for me until that is resolved is implementing corporations.

Spoiler :
In case you are interested in what changes I made so far:

I adjusted the bombardment rate of all units so it actually increases with upgrades as it makes no sense for an Omega Battleship to be exactly as good at bombarding planetary defenses as its weaker predecessors. Now for instance an Alpha Battleship lowers defenses by 16%, a Delta Battleship 24%, and an Omega Battleship 32%. I did something similar with collateral damage, and made some other minor adjustments to some units and buildings. The Sensor Station can now carry one squadron, has a strength of 4, and is invisible to most units.

Someone commented that most wonders are rather lackluster, and I agree with them, so I changed most of them, making them both more expensive and effective. The Universal Foundry now gives a free tech for example.

I also made significant changes to most policies. I didn't like how so many effects are shared by several policies (e.g. Pacifism, Mechanized Workforce and Industrial Economy all giving a +% bonus to production, or both Utopia and Green Economy giving a -% Commerce Penalty), so I now made sure that all effects, both positive and negative, are unique, except for free units which is still shared by two Doctrines, the military default policy and Police State. Pacifism now grants +1 Commerce per planet but also gives a lot of war weariness in addition to the extra unit cost, Industrial Economy gives +1 Production per planet and Mechanized Workforce gets to keep its now unique bonus to production. Green Economy now has a penalty to production instead of commerce but also receives a bonus to Influence (Beautiful pristine planets attract tourists and researchers so it shouldn't really be lowering commerce, and in fact boost influence, however this comes at the cost of lower industrial output because of environmentally friendly production practices). Utopia is now a sort of anti Free Market of the Vanilla game, taking away one trade route in each system, while Planned Economy doesn't allow trade with other factions at all. This is because people in an utopian society care more about their own well-being than exporting valuable stuff to other planets or systems for abstract profit, and a fully planned economy (I assume under the guidance of high tech artificial intelligence) needs to be a closed system without outside influence to properly predict and fulfill future needs.

Incidentally I tried to spice up the Government policies as well by making Democracy provide extra happiness for each non state value (Democracies encourage having diverse opinions) while Police States give unhappiness for each non state value (seeing as they want every citizen to embrace the one true state ideology). However that XML tag seems to be bugged in Final Frontier: Whether I enter 1, or 2, or -1, or -2 or 5, when I check the policy ingame it shows some ludicrously big number, like +234578000 Happy per Non State Value. Any explanation for that?

Once I am done with corporations and the three buildings I wanted to add, I will see about what I can do with the DLL in order to merge my Enhanced Culture mod to make Influence more valuable.
 
Top Bottom