Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

4X The Unsurpassed Brian Reynolds' Alpha Centauri thread

Favorite Faction?


  • Total voters
    269

Silva

Arcane
Joined
Jul 17, 2005
Messages
4,782
Location
Rio de Janeiro, Brasil
Yitzi's latest patch (3.5d) is giving me problems on Win10 GOG version of the game - no music, no PRACX high resolution changes, etc. Weird.

Any tips to have it working smooth again?

Edit: Ok, fixed it by installing the most recent PRACX patch over it (v 1.11) and turning the music ON (the patch comes with music off by default.. go figure). Running smooth so far.

Oh, by the way, what is the recommended difficulty setting for the Yitzi's patch? I understand the game gets harder as the AI is smarter. Is going straight for Transcendi suicide or too stressful now?
 
Last edited:

Silva

Arcane
Joined
Jul 17, 2005
Messages
4,782
Location
Rio de Janeiro, Brasil
Ok, back to my Sinder Roze info-warfare campaign...

I've found this table (from here) for Probe Team action percentages. Thought it may be useful:


178.png



RISK 1:
- Infiltrate Datalinks
- Procure Research Data
- Activate Sabotage Virus (“Just stir things up in there”)
- Drain Energy Reserves
- Incite Drone Riots
- Engage Mind Control Probe
- Introduce Genetic Plaque,
- also: subversion of a unit

RISK 2:
- Procure Research Data (if twice in the same base, i.e. “high security interlock”)
- Activate Sabotage Virus (“I have a specific target in mind”)
- Assassinate Prominent Researchers
- Attempt Total Thought Control
- Framing other factions for RISK 1 activities
- also: attempt untraceable capture of a unit

RISK 3:
- Activate Sabotage Virus and specifying any kind of target at the enemy’s HQ
- Activate Sabotage Virus and targeting Perimeter Defense or Tachyon Field in any enemy base;
- Framing other factions for RISK 2 activities

RISK 4:
- Framing other factions for RISK 3 activities
 
Last edited:

Silva

Arcane
Joined
Jul 17, 2005
Messages
4,782
Location
Rio de Janeiro, Brasil
Isn't Yitzi's SMAX patch supposed to incorporate kyrub 's ?

Because I'm midway through my game and the AI doesn't have a single crawler or borehole. Shouldn't it be doing some of those?

Edit: actually, Domai does have a crawler. He is the most powerful faction in the game with 30 bases or so. And have 1 crawler.
 
Last edited:
Joined
May 11, 2007
Messages
1,853,719
Location
Belém do Pará, Império do Brasil
Isn't Yitzi's SMAX patch supposed to incorporate kyrub 's ?

Because I'm midway through my game and the AI doesn't have a single crawler or borehole. Shouldn't it be doing some of those?

Edit: actually, Domai does have a crawler. He is the most powerful faction in the game with 30 bases or so. And have 1 crawler.

No.

Kyrub's patch is SMAC only because he is kind of a purist about that. I don't think he's wrong tho.

If you want a improved AI for SMAX, I suggest trying Thinker Mod.
 

Silva

Arcane
Joined
Jul 17, 2005
Messages
4,782
Location
Rio de Janeiro, Brasil
Wait, but in Yitzi's patch notes it says a version of Kyrub is included.

Nah, he only included some stuff, I think its Kyrub's terraforming AI.
Yeah, it seems just small stuff. Most of Yitzi patch is for bugfixes and moddability. (though the AI seems slightly more competitive to me - for eg: they seem to share tech betwen themselves more, so the difference between the first and last places on the tech graph is smaller now)

But if one wants an improved AI, it seems SMAC+Kyrub or SMAX+Thinker are the best options.

BTW, has anyone tried Thinker AI patch? It seems pretty good, but I've read it breaks the fiction somehow (like, Deirdre making lots boreholes or Morgan never going Free Market). And I love to LARP so, I will probably wait for the author to improve it.
 

Silva

Arcane
Joined
Jul 17, 2005
Messages
4,782
Location
Rio de Janeiro, Brasil
How do you envision Probe Teams, bros? I admit I have annal fixation for them (as I do for all things covert ops). I see them between a Starcraft Ghost (you know, spec-ops dudes in hi-tech sealed suits that look almost like cyborgs) to Sam Fisher-like dudes in sneaky gear, to moles disguised as normal dudes. They could be similar to Shadowrunners too (for those who know the tabletop RPG), specially if we consider they do a variety of missions from intel-gathering to assassination to extractions. Oh, those System Shock 2 psionic agent (I think it was called Black Ops training?) also comes to mind.

I would love to play a tabletop RPG focused on some Probe Team action.
 

Cael

Arcane
Joined
Nov 1, 2017
Messages
20,579
How do you envision Probe Teams, bros? I admit I have annal fixation for them (as I do for all things covert ops). I see them between a Starcraft Ghost (you know, spec-ops dudes in hi-tech sealed suits that look almost like cyborgs) to Sam Fisher-like dudes in sneaky gear, to moles disguised as normal dudes. They could be similar to Shadowrunners too (for those who know the tabletop RPG), specially if we consider they do a variety of missions from intel-gathering to assassination to extractions. Oh, those System Shock 2 psionic agent (I think it was called Black Ops training?) also comes to mind.

I would love to play a tabletop RPG focused on some Probe Team action.
Like the Sectoids from XCom1 wielding the stun rod from the same game. Although it is probably not the kind of probing you are thinking of.
 

Silva

Arcane
Joined
Jul 17, 2005
Messages
4,782
Location
Rio de Janeiro, Brasil
I would love to play a tabletop RPG focused on some Probe Team action.
Each player have two sheets - one for his Faction and other for his character. The character is assumed to be a Probe Team (Covert Ops) agent of some specialty (hacker, infiltrator, saboteur, assassin, weapons specialist, empath, etc) and each faction will concede specific advantages (Ie: a Gaian agent may have superior Psi training and mindworm control abilities, while a Spartan would have superior combat training and badass weaponry).

The GM sets up a theater of operations based on a planet feature (Monsoon Jungle, Garland Crater, Uranium Flats, etc) with strategic goals set, including topological maps, info on bases, facilities, security, etc.

The players must work together to accomplish missions, as their factions are aassumed to be allies or at least have treaties of friendship, but each will have secret agendas that may or may not put them in conflict. Ie: in a sabotage mission with a Morgan, Lal and Zak agents, the Zak one may have a secret agenda "steal the database before exploding the base", while the Lal agent may have "guarantee the database is destroyed with no copies left" and the Morganite have "Just look for anything that may be worth a profit".

Optional: let players pick what techs their factions start the game with, from a pool available according to the timeline for the game. So an early game would have agents in synth metal vests and impactor pistols, while a late game would have empath transhuman agents in plasma-steel cloaking suits, graviton devices and AI tactical assistants (or the agent could be an AI itself) infiltrating fully autonomous bases with hunter-seeker algorithms and genejack patrols.

Sounds cool, huh?
 
Last edited:

Silva

Arcane
Joined
Jul 17, 2005
Messages
4,782
Location
Rio de Janeiro, Brasil
I remember a discussion I had with a friend some time ago. This friend only played Brother Lal on the basis that he is the more good-willed faction in the game with it's humanitarian ideology and all. I disagreed and argued Brother Lal is actually a fucking hypocrite. See, he is NOT a pacifist, but a peacekeeper. His personality in-game is Erratic, not Pacifist (the Gaians and Morgan are Pacifists, as is the Consciousness in the expansion), so he will gladly smoke your ass at the first disagreement with you, be it due to a social policy he dislikes (like Planned Economy, Fundamenalist govern, Power values), you hampering his expansion as a neighbour, shadowing him on the tech race, etc. He will kill human beings for his ideology/agenda.

I posited that no faction in the game can be considered the "goodie-goodie protagonist/hero" of the game's story. All them are too far on the ideological radicalism scale to fit the role. Even the "humanitarian" one.
 

Cael

Arcane
Joined
Nov 1, 2017
Messages
20,579
I remember a discussion I had with a friend some time ago. This friend only played Brother Lal on the basis that he is the more good-willed faction in the game with it's humanitarian ideology and all. I disagreed and argued Brother Lal is actually a fucking hypocrite. See, he is NOT a pacifist, but a peacekeeper. His personality in-game is Erratic, not Pacifist (the Gaians and Morgan are Pacifists, as is the Consciousness in the expansion), so he will gladly smoke your ass at the first disagreement with you, be it due to a social policy he dislikes (like Planned Economy, Fundamenalist govern, Power values), you hampering his expansion as a neighbour, shadowing him on the tech race, etc. He will kill human beings for his ideology/agenda.

I posited that no faction in the game can be considered the "goodie-goodie protagonist/hero" of the game's story. All them are too far on the ideological radicalism scale to fit the role. Even the "humanitarian" one.
Lal is the most underhanded of all the leaders. None of the other leaders is as dishonourable a cunt as he is. All of the other leaders are pretty in your face about their ideologies, and they never bother hiding it. Lal, on the other hand, claims he wants peace and unity, but the first thing he will do if you step out of line of his narrowly defined idea of "peace and unity" is to declare war and kill your people.

That he epitomises the UN (aka., useless nations) is not only ironic, but spot on. In a game over 2 decades old.

Do yourself a favour and smoke the sjw leftwing cunt as soon as you can. For maximum ironic points, get everyone else to join in. Fuck your diplomacy in the eye socket, Lal.
 

laclongquan

Arcane
Joined
Jan 10, 2007
Messages
1,870,158
Location
Searching for my kidnapped sister
Lal is best on highest difficulty.

As for larping. Lal is the emperor of the United World. His agenda is couched in term of democracy and shit, but once you ignore the PR terms, it's pretty clear Lal think himself the champion of HIS morals and HIS cause.

I am no longer thinking he's hypocrite. Not once I start censor the highminded terms he pepper through his speech. If you think of those terms as ummm and aaaah, and eeeehm...
 

Cael

Arcane
Joined
Nov 1, 2017
Messages
20,579
I think Lal is actually a pretty cool guy, its just happens that he seems himself as the one continuing the mission set by the UN and considers himself the Captain's sucessor. Lal is the closest thing to a continuation of the original mission, while the others are all opportunists creating their own private utopias.

He is not a pacifist in the "Let's get on a circle and sing Kumbaya" sense, more of a "Pragmatic Pacifist." He's not a aggressive and belligerant like Miriam, Santiago and Yang, but he's not a pacifist builder like Deidre and Morgan, either.

Don't forget: In "Journey to Centauri", Lal says that yes, he is willing to kill for peace.

I know people see him as the toothless peacenik UN, but Lal actually embodies what a lot of people in the 90s saw as the future UN: Actually pretty toothy.

I get the feel the UN as a faction is supposed to be the "moderate, simple and somewhat blandish" faction. They're the guys that look normal so everyone else can be weird.

He is the "Logical and Reasonable" guy of the Unity crew, and is clearly quite intelligent. Lal is also the guy who cloned his dead wife so he could love her again, so he is definitively moved not just by logic, but emotion too. "Erratic" might be a precise definition.
I don't think so. Even my much younger self, when SMAC first came out, estimated Lal to be a hypocritical asshole. This was long before sjws and their ilk became a bad meme.

Peace is peace. That he would declare war because someone doesn't follow his ideology is not the actions of a peaceful man. Bearing in mind that that someone may also have very good relations with everyone else, or at the very least not at war with anyone. He was the original sjw: intolerant, hateful, deceitful, hypocritical, ruthless and claims titles he has no right to even touch with a bargepole (i.e., compassionate, tolerant, peaceful, etc.).

I find Yang to be less loathsome than Lal, and that is despite all the atrocities that Yang does in-universe (mind-stapling, nerve gas, punishment spheres, etc.). While I despise Yang, my reaction to Lal is visceral.
 
Joined
May 11, 2007
Messages
1,853,719
Location
Belém do Pará, Império do Brasil
I think we just got the answer as to what made Scient such a busy bee for a good while

OpenSMACX 0.1 released

I've released OpenSMACX 0.2 + an initial patcher script (tested on my patched exe + stock GOG). There are now over 300 functions redirected to dll. :)


You're a code wizard, man!

How playable is this?

So, we can change those 300 functions editing the dll only? Are any of these previously hardcoded things?

Btw, what programming language are you using? C++? Java? C#?
 

scient

Augur
Joined
Oct 21, 2008
Messages
203
You're a code wizard, man!

How playable is this?

So, we can change those 300 functions editing the dll only? Are any of these previously hardcoded things?

Btw, what programming language are you using? C++? Java? C#?

Thank you! This is an ambitious project for myself that is a culmination of over 10+ years of analysis on the SMACX binary compared to my more wack a mole patches of PST or SMAC/X. It might take me awhile but planning on sticking through it til the end.

This is 100% playable with the patcher script I just released. Before it was kind of cumbersome to get everything up and running. I'm still looking for ways to streamline and smooth the process so people can start using it to play which in turn will lead to more testing and bug reports. Let me know if you need any help or have feedback. There is a copy of the compiled dll in the release section of GitHub if you don't feel like dealing with compiling the source.

I've confirmed that there are no compatibility issues with applying the dll patcher on top of an existing GOG install or the latest version of my unofficial patch's exe. There is one regression with my patch where I've implemented the vanilla code but haven't applied an equivalent fix: "[BUG][MOD] Giving FREEPROTO factions (Spartans) undocumented retool strictness ability when learn necessary tech". I've been trying to give the code as light a touch as possible with changes that deviate from original game logic. I couldn't remember the rational for this fix at the time so I wanted to refresh my memory. In the end, after finding the original thread discussing this change I think I will re-implement it along with a more detailed explanation in the README. Eventually, I might implement a compiler macro that would allow someone to compile the dll with or without less obvious bug fixes. I've thought about reaching out to the game creators at some point to see if they wanted to weigh in. Maybe when the project is further along.

This should work in theory with Yitzi's patch for SMACX as well as PRACX. However, I haven't gotten around to testing compatibility. There will likely be regressions or changes to how Yitzi's patch works because I'm pretty sure they made changes to functions that overlap ones I'm redirecting. I have that as a TODO item at some point. PRACX I think should be easy to validate, Yitzi's patch not so much. I have to create a map of their changed code to internal functions then ensure overlap doesn't break anything when code gets redirected to dll. I've made a map for my patches but it's not as easy with someone else's.

Yep! You can totally change any of existing function's code on Github, recompile the dll and the patched game will now use new code. The patcher script is just creating jumps to dll and doesn't actually change anything. Existing code inside the binary that I haven't decompiled yet will use the modified function (if that makes sense). Ex: Let's say you wanted to give all Colony Pod's 10 movement because lolz. You would add something like following to top of speed_proto():

if (protoID == BSC_COLONY_POD) {
return 30; // desired movement * 3 for on roads -> 10 * 3
}

Now, all Colony Pod's should have base speed of 10 regardless of what is set in alphax.txt. Another example could be to create a new ability inside alphax.txt (would require minor tweaks to alpha.h/alpha.cpp to parse it) that you then use inside speed_proto() to make some change. Note, any changes like this will cause an imbalance between multiplayer games unless you were both using the same changes.

L34ldcQ.png


Yes and no. I know a big request has been to remove caps on things like bases and units. Those limits still exist for now. I cannot move those structures out of existing game memory until all references to them have been decompiled. I have completed pretty much all the start up functions that parse the games text files. Those structures have been moved to dll.

The project is in C++, same as the original game. The patcher script is python 3.
 
Last edited:

scient

Augur
Joined
Oct 21, 2008
Messages
203
scient let me be able to pan the camera using the middle mouse button.
Yeah, that could definitely be a future enhancement. Is it part of PRACX? You should shoot DrazharLn a message. He might be able to implement it if it's not already. It will likely be awhile before I get to breaking down internal Window classes needed to make this happen. I'm prioritizing game code over internal engine classes.
 

scient

Augur
Joined
Oct 21, 2008
Messages
203
Is there a way to script portions of the alphax file into the faction files so that the modifications overwrite the main rules but only for that faction? So that, for example, Peacekeepers could build farms in 2 turns, or the Hive would pay no maintenance energy for a creche, or general things of that nature?

That's a really cool idea. Yes and no. All the structures for the game "rules" tied to alpha/x.txt and faction files are 100% done. If you have a look at alpha.h you'll be able to see all the rule structures and player is how the game references faction specific settings. To do what you propose, you could add rule structure overrides into player struct. Then, you would just add some parsing to read_faction() to read everything in. This is all do-able in projects current state. The no part is actually utilizing these new overrides. In the case of farm turns, the primary function I haven't done yet (action_terraform) so there would be no way to use the new parsed data. The same goes for creche, the function that handles maintenance energy would have to be done.

Does that make sense?

My focus has been on these type of game functions with priority going towards map, base and unit (Veh) code. So long before the game is completely decompiled, you should be able to implement something like this. But probably couple years from that state.

emVt9FL.png
 
Joined
May 11, 2007
Messages
1,853,719
Location
Belém do Pará, Império do Brasil
Thank you! This is an ambitious project for myself that is a culmination of over 10+ years of analysis on the SMACX binary compared to my more wack a mole patches of PST or SMAC/X. It might take me awhile but planning on sticking through it til the end.

It feels magnific to me. I think this could really be holy grail to SMAC(X), just like OpenXcom was to X-COM.

This is 100% playable with the patcher script I just released. Before it was kind of cumbersome to get everything up and running. I'm still looking for ways to streamline and smooth the process so people can start using it to play which in turn will lead to more testing and bug reports. Let me know if you need any help or have feedback. There is a copy of the compiled dll in the release section of GitHub if you don't feel like dealing with compiling the source.

Interesting, I should totally give it a spin when I have some time. Would love to help with bug-testing.

I've confirmed that there are no compatibility issues with applying the dll patcher on top of an existing GOG install or the latest version of my unofficial patch's exe. There is one regression with my patch where I've implemented the vanilla code but haven't applied an equivalent fix: "[BUG][MOD] Giving FREEPROTO factions (Spartans) undocumented retool strictness ability when learn necessary tech". I've been trying to give the code as light a touch as possible with changes that deviate from original game logic. I couldn't remember the rational for this fix at the time so I wanted to refresh my memory. In the end, after finding the original thread discussing this change I think I will re-implement it along with a more detailed explanation in the README. Eventually, I might implement a compiler macro that would allow someone to compile the dll with or without less obvious bug fixes. I've thought about reaching out to the game creators at some point to see if they wanted to weigh in. Maybe when the project is further along.

Retool strictness ability? I remember Spartans didn't pay extra for prototypes, is there something more to it?

This should work in theory with Yitzi's patch for SMACX as well as PRACX. However, I haven't gotten around to testing compatibility. There will likely be regressions or changes to how Yitzi's patch works because I'm pretty sure they made changes to functions that overlap ones I'm redirecting. I have that as a TODO item at some point. PRACX I think should be easy to validate, Yitzi's patch not so much. I have to create a map of their changed code to internal functions then ensure overlap doesn't break anything when code gets redirected to dll. I've made a map for my patches but it's not as easy with someone else's.

What about kyrub's AI Patch? I think he built it on top of yours. That one is a big hit here, due to Codex being kind of vanilla purists. Hmmm... talking about that, you think it would be hard to make a "SMAC within SMAX" mode using your code? Essentially, SMAC, but with some features of SMAX, like the fixed energy maintenance.

Why you think PRACX is easier?


Yep! You can totally change any of existing function's code on Github, recompile the dll and the patched game will now use new code. The patcher script is just creating jumps to dll and doesn't actually change anything. Existing code inside the binary that I haven't decompiled yet will use the modified function (if that makes sense). Ex: Let's say you wanted to give all Colony Pod's 10 movement because lolz. You would add something like following to top of speed_proto():

if (protoID == BSC_COLONY_POD) {
return 30; // desired movement * 3 for on roads -> 10 * 3
}

Now, all Colony Pod's should have base speed of 10 regardless of what is set in alphax.txt. Another example could be to create a new ability inside alphax.txt (would require minor tweaks to alpha.h/alpha.cpp to parse it) that you then use inside speed_proto() to make some change. Note, any changes like this will cause an imbalance between multiplayer games unless you were both using the same changes.

Oooh, that's cool! So the dll overrides the alphax.

Did you say... creating new abilities? Now that is SUPER-cool!


Yes and no. I know a big request has been to remove caps on things like bases and units. Those limits still exist for now. I cannot move those structures out of existing game memory until all references to them have been decompiled. I have completed pretty much all the start up functions that parse the games text files. Those structures have been moved to dll.

Hmmmm... I see. It makes sense, not finding out all references first could backfire badly.

Talking about caps... what about the one big flaw of the game, which we have never been able to change? Namely... the number of factions. We have all been wanting to play a 14-faction SMAX game for quite a while, now. Its the biggest flaw in the game, and one of which we have never found a way to mod out.

If I remember right, I think someone (you? Yitzi?) said that the value for that was a 8-bit integer, where the eighth number was for the native life, just like how Civ2 had eight civs, with the eight being the barbarians.

Of course, I suspect the game would require graphics changes in order to account for extra faction slots in a number of situations, like selecting factions in a game, the diplomacy tab, the Planetary Council interface...

The project is in C++, same as the original game. The patcher script is python 3.

C++? Aaaah man. I was kinda hoping for C Sharp myself. I don't know a thing about C++.
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom