4.0 and the Future

deanej

Deity
Joined
Apr 8, 2006
Messages
4,859
Location
New York State
Now that the mod platform version of Final Frontier Plus is out, major work for 4.0 can begin. The planned changes are:
-Cloaking AI
-Sensor Post AI
-Merge in Final Frontier Plus
-Update all scenarios
-Add scenarios intended for 3.0
-Random events in the epic game and The Galaxy

As of today, I am starting work on the Cloaking AI and the Final Frontier Plus merge. TC01 is working on the sensor post AI which will be included when it's done (this will be included in Final Frontier Plus as well). Once all that is done, I intend to release a public beta to weed out any bugs/issues with the core mod. About a month after that, I will make the new scenarios and re-engineer (in other words, remake using the current scenario assets to speed up the process) the older scenarios. Then I'll add random events to the epic game and The Galaxy (I might wait on updating The Galaxy until this point to make life easier).

After that, 4.0 will be officially released. I should mention that 4.0 is that last planned version of Star Trek. I will continue to patch to fix bugs and balance issues (especially with the new scenarios) as necessary, but at that point Star Trek will essentially be done and I'll shift focus to my next mod... which all of you following Star Trek now get an exclusive announcement of it!

My next mod is Remnants of Altrea, a sci-fi mod based on Fall From Heaven. The premise is that a fleet sent out in the near future to explore the galaxy encounters a spacial anomaly that sends them far, far away and severely damages the fleet. They crash land on a cold, barren planet with no life* and have to figure out a way to survive and maybe even get home.

*Not quite true, but close enough for this announcement.

Remnants of Altrea is in the early design stages right now. I don't even have a tech tree yet. The civs are the survivors from each ship. The mod has little to do with Star Trek, though I will be borrowing character images for the leader graphics, there will be some references (the flagship is called Voyager, for example), and the barbs are inspired from the Borg (did I mention the planet contains the remains of a long dead civilization?). Oh, and one more thing: just because it's set in a different universe from FFH doesn't mean it doesn't follow the FFH lore (I'll let you guys guess around with that for a while).
 
Nice work! Looking forward to finally playing with speedy Star Trek game!

Anyway, one request (other than old request still pending :) for BUG+BULL that can be used in space-based mod); you should consider Advanced Unit Automations adjusted to this space-based mod. It is by Afforess. It can be found in Modcomps forum. That modcomp plus specific parts of BUG+BULL in Star Trek will help enrich the game a lot!

Before I go, I want to specify what parts that I think is crucial from BUG+BULL and let other parts be tossed out...
  • BULL Actual hover-over Infos in City screen
  • Turning off alternating turn info (it had been a looong time since I played vanilla BtS so I don't remember what is default. So if the default don't have alternating turn views, then forget this one. Dislike that alternating feature so want to turn it off.)
  • Gold Per Turns in main Game screen, not just Financial screen
  • Horizontal grouping of separate unit types from PLE
That's it. No other part of BUG+BULL is necessary for me to comfortably play a mod :).
 
As of today, I am starting work on the Cloaking AI and the Final Frontier Plus merge. TC01 is working on the sensor post AI which will be included when it's done (this will be included in Final Frontier Plus as well).

I've finished writing it- I just need to make sure it runs in-game.

My next mod is Remnants of Altrea, a sci-fi mod based on Fall From Heaven. The premise is that a fleet sent out in the near future to explore the galaxy encounters a spacial anomaly that sends them far, far away and severely damages the fleet. They crash land on a cold, barren planet with no life* and have to figure out a way to survive and maybe even get home.

*Not quite true, but close enough for this announcement.

Sounds cool! I always thought FFH 2 would adapt well to settings other than fantasy.

Oh, and one more thing: just because it's set in a different universe from FFH doesn't mean it doesn't follow the FFH lore (I'll let you guys guess around with that for a while).

It's another universe created by the One, or by one of the angels, or a universe that is just there, apparently not created by the One, that Ceridwen discovers?

Am I close?
 
os79 said:
you should consider Advanced Unit Automations adjusted to this space-based mod
Seems easy to merge in. I'll consider it, but I'm wondering if the different nature of Borders caused by settling on solar systems would cause the border patorl automation to act strangely.
os79 said:
BULL Actual hover-over Infos in City screen
Turning off alternating turn info (it had been a looong time since I played vanilla BtS so I don't remember what is default. So if the default don't have alternating turn views, then forget this one. Dislike that alternating feature so want to turn it off.)
Gold Per Turns in main Game screen, not just Financial screen
Horizontal grouping of separate unit types from PLE
What are actual hover-over infos and alternating turn info? Gold per turn is already there, unless you mean the total commerce that's split between gold, science, culture, and espionage with the sliders. Not sure what you mean by the last one but I think you mean the grouping on the interface when a stack is selected? I'll look at it, but I'm not sure how easy any specific feature is going to be.
TC01 said:
It's another universe created by the One, or by one of the angels, or a universe that is just there, apparently not created by the One, that Ceridwen discovers?
I'll just say that there's a thread Kael wrote in the lore forum that specifically hints at what I'm doing with this...
 
Seems easy to merge in. I'll consider it, but I'm wondering if the different nature of Borders caused by settling on solar systems would cause the border patorl automation to act strangely.

Then don't bother with border patrol, Hunt automation is good enough for that type of thing. We will see how it plays out :).

What are actual hover-over infos and alternating turn info? Gold per turn is already there, unless you mean the total commerce that's split between gold, science, culture, and espionage with the sliders. Not sure what you mean by the last one but I think you mean the grouping on the interface when a stack is selected? I'll look at it, but I'm not sure how easy any specific feature is going to be.

Hover-over, see the pic below...

View attachment 256942

Gold per turn, see the pic

View attachment 256944

Horizontal grouping of same unit types, see the pic below.

View attachment 256945

These are what I meant.
 
I'll just say that there's a thread Kael wrote in the lore forum that specifically hints at what I'm doing with this...

There are three threads by Kael in the Lore forum, at least that I found with my quick search. They are:

The Layers of Hell: Maybe
Bestiary of Erebus: Maybe
Design: Religions: Probably not it

The section from the Layers of Hell guide that might support my theory is this:

Ceridwen's vault is the largest and has no size at all. It is what binds all the hells together, and them with Erebus. It is not what’s on either side of the doorway, but the space between, the doorway itself.

Though there are no physical bounds to her world there are shadowy gaps within it, places between worlds. The laws of nature are not fixed within these worlds, that which is set in the laws of creation is mutable here. By drawing from these places, pulling them into creation these laws can be bent. Fire can be made to move and leap, the dominions that were once subordinate only to the gods can be commanded by men.

Esus may be the god of deception, but Cerdiwen is the queen of secrets. Even her highest angels are only privy to tiny parts of the vast web of portals and hidden spaces that make up her world. It is known that she has countless passages into Erebus and the hells, but most suspect that she travels between many more worlds. Perhaps even beyond those created by the gods of Erebus.
 
Yep, that's it. Needless to say, the magic system is going to be supporting both magic and technology.

@os79: Gold per turn shows up on my end. Most of the hover info does too - did you want me to specifically add the overflow? I'll look through the files and see if the grouping changes are easy to transfer.
 
Yep, that's it. Needless to say, the magic system is going to be supporting both magic and technology.

@os79: Gold per turn shows up on my end. Most of the hover info does too - did you want me to specifically add the overflow? I'll look through the files and see if the grouping changes are easy to transfer.

Well, I will wait for 4.0 to come out. I don't play this mod since 2.0 because of slowness. So I will wait for 4.0 release and specify what I want for a patch, if needed. Otherwise, good luck finishing up 4.0 :). I'm a Trekkie fan myself (more ST:TNG guy but love orignial, DS9, Voyager and 1-10 movies. Dislike Enterprise and latest Star Trek movie).
 
Really liking 3.25, one thing I have noticed is that if I start from enterprise by the time I have 50 light 2 units the ai is stuck researching the many cool techs of the early era and are fielding a few light 1 units. If I start from tos era the ai keeps up much better. Not really a complaint, and I'm sure it would be impossible to get the ai to build their infrastructure properly early enough, just an observation.
 
I think you're emphasizing military more than the AI. I could increase the cost of early military techs if it's a problem, though (probably should do that for Warp 7 anyways).

Good news: I have just compiled a DLL merged with Final Frontier Plus! Now the XML/Python merging can be done. The only DLL change left is the team research nerf for The Galaxy.

TC01, how does the Alien civ spawn from inhabited planet goody work? I was thinking of using it with non-Borg, non-Mirror universe civs to allow them to spawn.
 
TC01, how does the Alien civ spawn from inhabited planet goody work? I was thinking of using it with non-Borg, non-Mirror universe civs to allow them to spawn.

It doesn't at present.

Well, that's an overstatement, but still.

There is a tag bNewCiv in CvGoodyInfo that causes code at the end of CvPlayer::receiveGoody() to pick a random civ flagged with the tag bAlien that's never been in the game, pick a random leader for it that's never been in the game, and then creates it.

The code is completely untested. There are no civs flagged to spawn this way in FF+, or for that matter in Star Trek's Inhabited Planets. There isn't even an Inhabited Planets goody that would do it yet (actually, there is, but it isn't tied to any handicap, so it doesn't ever happen).

Spoiler C++ to spawn civs :
Code:
	if (GC.getGoodyInfo(eGoody).isNewCiv())
	{
		int iNumTries = 50;		//(There aren't 50 civs in the game, so this should be plenty.
		for (int i = 0; i < iNumTries; ++i)
		{
			CivilizationTypes eCiv = (CivilizationTypes)GC.getGame().getSorenRandNum(GC.getNumCivilizationInfos()-1, "Goodies!");
			if (eCiv != (CivilizationTypes)GC.getDefineINT("BARBARIAN_PLAYER"))
			{
				if (GC.getCivilizationInfo(eCiv).isAlien())
				{
					if (goodyCanSpawnCiv(eCiv))
					{
						PlayerTypes eSlot;
						for (int iPlayer = 0; iPlayer < GC.getMAX_PLAYERS(); ++iPlayer)
						{
							PlayerTypes ePlayer = (PlayerTypes)iPlayer;
							if (ePlayer != NO_PLAYER)
							{
								if (!(GET_PLAYER(ePlayer).isEverAlive()))
								{
									eSlot = ePlayer;
								}
							}
						}
						LeaderHeadTypes eLeader = (LeaderHeadTypes)goodyGetLeaderForCiv(eCiv);
						GC.getGame().addPlayer(eSlot, eLeader, eCiv);
					}
				}
			}
		}
	}

Code:
//	Utility to check if a prewarp civ has ever been active before spawning them
bool CvPlayer::goodyCanSpawnCiv(CivilizationTypes eCiv) const
{
	for (int i = 0; i < GC.getNumLeaderHeadInfos(); ++i)
	{
		if (GC.getCivilizationInfo(eCiv).isLeaders(i))
		{
			if (GC.getGame().isLeaderEverActive((LeaderHeadTypes)i))
			{
				return false;
			}
		}
	}
	return true;
}

	//Utility to get a random leader for the new civ
int CvPlayer::goodyGetLeaderForCiv(CivilizationTypes eCiv) const
{
	for (int i = 0; i < GC.getNumLeaderHeadInfos(); ++i)
	{
		if (GC.getCivilizationInfo(eCiv).isLeaders(i))
		{
			return i;
		}
	}
}
 
I really think the costs are OK... I had spread quite large, normally I'm only a level of military tech ahead. It was also a marathon game, too. Maybe allow tech trading earlier than isolinear chips or if we could get the ai to expand faster. I only played three games, and the one I wrote about I had about 1/4 the galaxy as my own. The other games I was just slightly ahead, not overwhelmingly.

I'm just used to the ai ganging up on me with units and tech but that didn't happen yet.
 
It doesn't at present.

Well, that's an overstatement, but still.

There is a tag bNewCiv in CvGoodyInfo that causes code at the end of CvPlayer::receiveGoody() to pick a random civ flagged with the tag bAlien that's never been in the game, pick a random leader for it that's never been in the game, and then creates it.

The code is completely untested. There are no civs flagged to spawn this way in FF+, or for that matter in Star Trek's Inhabited Planets. There isn't even an Inhabited Planets goody that would do it yet (actually, there is, but it isn't tied to any handicap, so it doesn't ever happen).

Spoiler C++ to spawn civs :
Code:
	if (GC.getGoodyInfo(eGoody).isNewCiv())
	{
		int iNumTries = 50;		//(There aren't 50 civs in the game, so this should be plenty.
		for (int i = 0; i < iNumTries; ++i)
		{
			CivilizationTypes eCiv = (CivilizationTypes)GC.getGame().getSorenRandNum(GC.getNumCivilizationInfos()-1, "Goodies!");
			if (eCiv != (CivilizationTypes)GC.getDefineINT("BARBARIAN_PLAYER"))
			{
				if (GC.getCivilizationInfo(eCiv).isAlien())
				{
					if (goodyCanSpawnCiv(eCiv))
					{
						PlayerTypes eSlot;
						for (int iPlayer = 0; iPlayer < GC.getMAX_PLAYERS(); ++iPlayer)
						{
							PlayerTypes ePlayer = (PlayerTypes)iPlayer;
							if (ePlayer != NO_PLAYER)
							{
								if (!(GET_PLAYER(ePlayer).isEverAlive()))
								{
									eSlot = ePlayer;
								}
							}
						}
						LeaderHeadTypes eLeader = (LeaderHeadTypes)goodyGetLeaderForCiv(eCiv);
						GC.getGame().addPlayer(eSlot, eLeader, eCiv);
					}
				}
			}
		}
	}

Code:
//	Utility to check if a prewarp civ has ever been active before spawning them
bool CvPlayer::goodyCanSpawnCiv(CivilizationTypes eCiv) const
{
	for (int i = 0; i < GC.getNumLeaderHeadInfos(); ++i)
	{
		if (GC.getCivilizationInfo(eCiv).isLeaders(i))
		{
			if (GC.getGame().isLeaderEverActive((LeaderHeadTypes)i))
			{
				return false;
			}
		}
	}
	return true;
}

	//Utility to get a random leader for the new civ
int CvPlayer::goodyGetLeaderForCiv(CivilizationTypes eCiv) const
{
	for (int i = 0; i < GC.getNumLeaderHeadInfos(); ++i)
	{
		if (GC.getCivilizationInfo(eCiv).isLeaders(i))
		{
			return i;
		}
	}
}

How easy would it be to make it select the leader from available leaders to that civ?

A couple other things: did you do anything with the text? I tried to compare the two Final Frontier defaults in Beyond Compare but got a useless sea of red. Also, when do you plan to have plugins out? Having Inhabited Planets and the space stations/resources ones out would be helpful. I think I'll download the full version so I can compare the overrides in CvAI.
 
How easy would it be to make it select the leader from available leaders to that civ?

It does already. I meant to say "random leader from civ leaders". Here's that function from the code I posted.

It would be easy to edit and add additional checks, though, under the for loop around leaders.

Code:
	//Utility to get a random leader for the new civ
int CvPlayer::goodyGetLeaderForCiv(CivilizationTypes eCiv) const
{
	for (int i = 0; i < GC.getNumLeaderHeadInfos(); ++i)
	{
		if (GC.getCivilizationInfo(eCiv).isLeaders(i))
		{
			return i;
		}
	}
}

A couple other things: did you do anything with the text? I tried to compare the two Final Frontier defaults in Beyond Compare but got a useless sea of red.

God-Emperor did some things with the default text files I believe. I don't think I did- I believe all my text is in new files.

Also, when do you plan to have plugins out? Having Inhabited Planets and the space stations/resources ones out would be helpful. I think I'll download the full version so I can compare the overrides in CvAI.

Well, Wormholes and Space Stations will be out by Sunday at the latest. (Space Resources is a seperate plugin).

I'm going to work on Inhabited Planets now, might either be posted tonight or tomorrow morning. Resources will probably be after the other two.
 
It does already. I meant to say "random leader from civ leaders". Here's that function from the code I posted.
In that case, I'll do it from XML and see what happens.
God-Emperor did some things with the default text files I believe. I don't think I did- I believe all my text is in new files.
Yes, he did, but not as much as I though - most of my problems were the fact that "Final" and "Finaler" look very similar when used in text file names when you don't look carefully.
Well, Wormholes and Space Stations will be out by Sunday at the latest. (Space Resources is a seperate plugin).

I'm going to work on Inhabited Planets now, might either be posted tonight or tomorrow morning. Resources will probably be after the other two.
Great! It'll be helpful when merging the python and putting the new XML tags in.

One thing I forgot to mention: I'm thinking of getting rid of the "Star Trek Version" string in the About this Build screen and making that the BtS version again as a readme/changelog is probably sufficient to tell people what version they have. I don't know if anyone ever used that anyways.
 
The SDK and XML merge is complete and the python merge is 50% done. A couple of other notes:
-I just noticed that the starting 10 gold done by python can be done in Civ4EraInfos.xml with no ill effect. As such it's being moved there.
-The Alliance UW effect will be moved to the SDK if I can figure out how to do that, as it forces upgrade prices to be done entirely in python otherwise.
-The team research option is still not done... have to figure out how to do it.

EDIT: I might also want to move the animals kill cities code to the DLL as well. It's the only thing in onUnitMove other than the movement sounds.
 
I've released the 4.00 beta; here are the changes thus far:
-AI will cloak to pillage, use ranged units, and heal
-Merged in Final Frontier Plus mod platform version
-No more hardcoding in the SDK
-Merged in Inhabited Planets from Final Frontier Plus
-Removed bAlwaysKeep (no longer needed - use iConquestProb instead)
-Removed bOnlyOne (replaced by bOnePerSystem)
-Starting gold is now applied in Civ4EraInfos.xml, not python
-The AI will build sensor posts
-The Vaadwaur start in the current era (no longer hardcoded to Enterprise)
-Added bUpgradeDiscount tag to Civ4BuildingInfos (for Alliance unique wonder)
-The code for animals always razing cities has been moved to the SDK
-Alien Vessel: 2 strength
-No more extra BuildingClass entries

http://www.atomicgamer.com/file.php?id=87247
You need Star Trek to be already installed; this does not replace 3.25.

At present there's a known bug that I can't track down: a few turns in, you'll get a message that a bunch of civs have been destroyed, none of which were on the map for that game.
 
How easily can the unitinfos file be added? I've got a lot of custom units and want to know if I need to start over or not. Looking forward to this!

UPDATE: The speed of this mod is AMAZING... PERIOD.

I do have a question; is the research rate still modified using the XML gamespeedinfo? Thanks! I'm not sure if it's intentional or not, but when I start a game my research rate in the starting era is +1600 or so (if I set my research rate to zero I make 1600 gpt)...
 
How easily can the unitinfos file be added? I've got a lot of custom units and want to know if I need to start over or not. Looking forward to this!

UPDATE: The speed of this mod is AMAZING... PERIOD.

I do have a question; is the research rate still modified using the XML gamespeedinfo? Thanks! I'm not sure if it's intentional or not, but when I start a game my research rate in the starting era is +1600 or so (if I set my research rate to zero I make 1600 gpt)...

Yes, now you know why I kept saying how slow Star Trek still was.

The research rate is a bug that I haven't figured out how to fix yet- it's because yield override calculations in the DLL aren't being done until the first turn. The code should probably be made a function that is called from both CvCity::doTurn and CvPlayer::initCity (or something like that).

I added a lot of new tags to the UnitInfos XML, but none of them are required, so if you want to copy over new units you shouldn't need to add them in. They do things like define the minimum eras that they can spawn as barbarian units, define the movement sound, define units as starbases or missiles or other space stations that don't spawn missiles... if you need any of that, you will need the new tags, documented here.

Is the Final Frontier Plus World Builder included? or can it be?

Yes, it was included in 3.0, so yes.
 
Top Bottom