One of the challenges of coding is simply figuring out the best methodology/programs to use, perhaps it would make sense, the next time you speak to the existing coders, to just find out what methodology they use (decompile/edit/recompile, or disassemble/edit/reassemble, or simply disassemble to figure out what's going on and then use a hex editor) and what programs (decompilers, disassemblers, tracers, etc.) they use to do it. A rough guide to which lines are used for which mechanics (at least what's known) wouldn't hurt either, although care might need to be taken to avoid anything that could cause a legal problem due to being usable for copyright infringement*).I wouldn't know enough to ask intelligent questions or understand the answers - I'm not completely useless on technical stuff, but it's way, way outside my interests. I'll try to steer those guys here to talk to you instead. I did link this thread when I wrote Draz, though he's more interested in learning how than able to, last I know of. He'll probably pick up more in university, as that's the sort of thing he's studying.
*Fortunately, SMAC/SMAX in the original (pre-GOG) sale seems not to have a EULA, so fair use principles should avoid legal problems with the rest of it. :danc:
-Allow more than seven factions at once. (This is the most popular change request I hear over and over, going back years.)
I'd say that fixing bugs should take precedence over most mods, but the mods that I marked as high priority are there for the most part because they're going to be usable to fix what many (including myself) would consider to be serious gameplay/balance issues, and so might be more important than relatively uncommon bugs.
One I forgot til now:Just to expand on that, Kilkakon and I had a discussion privately around two nights ago. Custom bioscans would also be pretty cool. :)
-Flygon's custom citizens display in the base screen (There's a thread here, and scient swore he was looking in to it when he fell out of touch...)
I sent Draz a link to this thread, although he's more of a "wants to learn". He actually tried to sign up yesterday, but wants to hold out for openID 2.0. Didn't say whether he'd looked at the thread.
So I suppose you think I should follow up on Kyrub with a link to this thread? He probably hasn't seen my last PM yet.
scient, I was in touch with until a few weeks ago, but currently have no way of contacting until he fixes his Skype and/or checks by Shs forums. No idea if he ever got his IRC straightened out.
I think the 7 faction cap should be priority number one over any tweaks. All the major bugs have all been licked with the exception of teaching the AI crawler use and more boreholes.
It seems obvious -if not to the bug-fix crew, and with all gratitude and respect to them- that there is a VERY strong demand for some mods...
Yitzi asked upthread how the SMACX exes were modified. In post #117 here (http://apolyton.net/showthread.php/181950-Fixing-SMACX-Bugs?p=5535948&viewfull=1#post5535948) scient provided links to the programs he used. Reading the entire thread (http://apolyton.net/showthread.php/181950-Fixing-SMACX-Bugs) (if you have several hours to spare) will give you an idea of the effort that went into scient's patch.
I've made over 20,000 EC from farming worms before. No need for a multiplier.
BTW, when scient decompiled, what language was SMAX written in? I am wondering if the code was easy to follow.
Impaler's been a SMACer since ten years before the game was invented, but he's not a coder, man.
The two suggestion I made were to a degree informed by my understanding of code though, these are both things that can be done within the constraints of dis-assembly because they are singular math functions, a multiply for planet pearls (worm cash) and an exponent for tech cost.
Also with regard to exceeding 7 factions. I don't think that's going to be possible, faction count is such a fundamental assumption of the games UI you would have to rewrite a ton of it
The two suggestion I made were to a degree informed by my understanding of code though, these are both things that can be done within the constraints of dis-assembly because they are singular math functions, a multiply for planet pearls (worm cash) and an exponent for tech cost.
I'm not sure that assembly can handle exponents other than via looped multiplication.
This strays into my area of expertise a little, so you guys tell me if my logic works here:Also with regard to exceeding 7 factions. I don't think that's going to be possible, faction count is such a fundamental assumption of the games UI you would have to rewrite a ton of it
Now that I think of it, you're probably right; it shows up not only when making the game, but also with infiltrator/pact brother info and the communications. So a more-than-seven-factions mod, while no doubt popular, is probably not going to happen with the possible exception of if someone wants to rework the relevant parts of the UI to something far simpler (and uglier), which might allow a more-than-seven-factions mod.
This strays into my area of expertise a little, so you guys tell me if my logic works here:Also with regard to exceeding 7 factions. I don't think that's going to be possible, faction count is such a fundamental assumption of the games UI you would have to rewrite a ton of it
Now that I think of it, you're probably right; it shows up not only when making the game, but also with infiltrator/pact brother info and the communications. So a more-than-seven-factions mod, while no doubt popular, is probably not going to happen with the possible exception of if someone wants to rework the relevant parts of the UI to something far simpler (and uglier), which might allow a more-than-seven-factions mod.
It's pretty safe to assume that everyone's machine these days can handle over twice the resolution, yes? It wouldn't save our hypothetical mod coder all the soul-crushing no-doubt tedious work, but the simplest mod to the UI is to add a second row of leaders to the council screen under the first - possbly the function key screens, too. It wouldn't be hard to make room. A lot of piddling crap would still have to be tracked down in the code still, but what I'm suggesting would be a minor redesign that probably wouldn't even call for my services drawing anything. It's definitely doable should a coder/decompiler be willing and have enough time to attend to the details, yes?
I do acknowledge the soul-crushing, no-doubt tedious, work I'm proposing for someone else...
I know scient is familiar with some of that; I made up a set of negative resource icons for him almost four years ago, now, that's never, to my knowlege, gotten used -yet. I couldn't say how familiar for sure, just that he either knew what code or was very confident. He knew exactly what he wanted and how he wanted it arranged, anyway...
My impression was that the UI part was pretty straightforward; know the screen coordinates, know the coordinates in the graphic file. Couldn't speak to the rest - I never finished learning BASIC back in the day, though I know the basics. ;)
Yitzi asked upthread how the SMACX exes were modified. In post #117 here (http://apolyton.net/showthread.php/181950-Fixing-SMACX-Bugs?p=5535948&viewfull=1#post5535948) scient provided links to the programs he used. Reading the entire thread (http://apolyton.net/showthread.php/181950-Fixing-SMACX-Bugs) (if you have several hours to spare) will give you an idea of the effort that went into scient's patch.
I'd also like the AI to actually use PSI Gates.
alpha.txt/alphax.txt is a wonderful tool. But there are some important (often balance-affecting) variables which theoretically could be in there (thereby enabling mods) but aren't. I'm wondering if any of the more programming-capable members of this forum would be interested in taking on the project (preferably for both SMAC and SMAX).
-Include variables for ecological mechanics (this is a big one, because it's potentially so important to the game):
-Starting clean minerals (i.e. base is 16)
-Clean minerals given per fungal pop (i.e. base is 1)
-Clean minerals given per "magic facility" built (i.e. base is 1)
-Clean minerals given per major atrocity (i.e. base is -5)
-The bonus ecodamage from mirrors, condensers, and boreholes (base value is 6, 4, and 8 respectively.)
-Change the formula for upgrade costs, with more variables:
-Cost per mineral line of the new unit. (base is 10)
-Cost per added weapon cost (base is 10)
-Cost per added armor cost (base is 10)
-A variable that determines how far apart bases have to be from each other, and whether diagonals count. (Base value is they need a distance of 2, not counting diagonals.)
-For each facility, entries that determine common effects (labs boost, psych boost, economy boost, mineral boost, drones suppressed.)
-Allow zero-movement units (probably at a cost decrease or defensive bonus.)
Just to quote this first post idea again:
The general idea to mod alpha.txt usage is actually quite good because it should be relatively simple to do. Simple means it does not require a lot of time to do, probably, so I could actually try a few changes.
1) we need to use unused/unfonctional entries in alpha.txt
However, the more complicated you make the condition (special flags doing this or that), the harder it is to put it in the code.
Personnally, I am fond of new units value formulas, the original system is quite inflexible.
These things are examples of what I think (without looking in the code) should be relatively easy to achieve.Now that I have more of a sense of how things work, whether diagonals count for minimum base distance might actually be tricky (default apparently is actually that diagonals do count). The following are the only ones that were mentioned that I can find that I think might not be feasible:
I suggest either shipping a copy of a modified alphax.txt or having the values default to normal, for compatibility's sake. :)
Personally, I would love to see more units.pcx slots, by having them extend to the other columns (that would really get my morale going for modding! :D).
That and stopping the AI pester every single time a unit is moved into range for peace, once a turn is enough.
I've actually started working on it, but if you want to coordinate just send me a message.Oh, you are on it, Yitzi. Very well! No need of my interference then, the perfect scenario.
The following are the only ones that were mentioned that I can find that I think might not be feasible:No idea how/where.
-The AI modification if cross-species cooperative victory is disabled; you're the expert on AI, though. (That said, I think it might be better just to house-rule that bit anyway.)
-Diagonals for minimum base distance.This I think I can help with.
-Monolith buildingNeither.
-More social engineering optionsSadly, this is quite complex, as it requires AI changes and changes in interface.
-More than seven factionsNEVER.
Oh, you are on it, Yitzi. Very well! No need of my interference then, the perfect scenario.
Quote-Diagonals for minimum base distance.This I think I can help with.
Sadly, this is quite complex, as it requires AI changes and changes in interface.
NEVER.
Personnally, I would wage including a variable from the hidden formula that manages sudden worm appearance. This is quite important for any modding of Green policy, worm farming etc. The game is extremely biased against anybody who owns a lot of worms already... Poor conception.
Isn't there a unit limit bug that needs to be fixed before you can even think of increasing number of players?
By default, the game has nine slots for unit graphics, in units.pcx, one per row. Native units have graphics for each level of veterancy, by going along the columns. What I would like is to have values above 8, which allow use of the other columns rather than just the first. Sure this would give some overlap with higher level natives, but this way more flexiblity is given to modders so they can have more custom units.QuotePersonally, I would love to see more units.pcx slots, by having them extend to the other columns (that would really get my morale going for modding! :D).
I'm not sure what that means.
By default, the game has nine slots for unit graphics, in units.pcx, one per row. Native units have graphics for each level of veterancy, by going along the columns. What I would like is to have values above 8, which allow use of the other columns rather than just the first. Sure this would give some overlap with higher level natives, but this way more flexiblity is given to modders so they can have more custom units.
While we're on the topic, I might as well give the list of what I'm planning to add in the first batch, together with the default values (it also is followed by (inactive) and a sequence of numbers and letters; that's for my own personal use when modding and I just haven't bothered to remove it):So is it possible to make these active and make them required in alphax.txt?
8 ; Bonus borehole ecodamage (inactive) (0094A180)
6 ; Bonus mirror ecodamage (inactive) (0094A184)
...
So is it possible to make these active and make them required in alphax.txt?
This would enhance modding, e.g. I already see a lot of application in fine-tuning ecodamage.
How'sabout I sticky this thread for wish-list requests and discussion of same? Ought to be handy to have a place for that and keep it consolidated...
This is way off the track, but would someone, anyone, please please PLEASE find a way to crack the (antique and proprietary) .cvr format most of the units are saved in so they can be modified?A while ago, I contacted as many people as possible about if they had any information about the format. I didn't really get anywhere, beyond the whole Caviar viewer.
How impractical would it be to jigger that sucker to count up automatically, so I don't have to keep canceling base foundings to go look up what the number is up to now?
Is this still the patch wishlist thread?
What about modifying random events such as Prometheus outbreaks, power surges or meteor showers? Not necessarily their functions but their names, probably or game text, or maybe the facilities/projects that negate their effect?
Not sure if this has been mentioned before, but would it be possible to have a unit require two techs?
Also, what about fixing prototyping? I’m given to understand there are minor issues with it and modding new units into alpha(x).txt.
Finally, I’d like to tinker with the tech tree but there’s only 2–3 unused techs in SMAX.
Figured as much, at least regarding 1 and 3. I know you can get around it by skilfully manipulating the tech tree so that the two techs in question enable a third that also seems like an adequate predicate, and then screwing around elsewhere to fix imbalances introduced by having jumbled the tech tree. Or, alternatively, by opening potentially new paradigms (Sea Formers→DocFlex; Formers→None; most basic terraforming options→Ecology), but neither is usually feasible without a lot of forethought, and even then there’s no guarantees.
As for 2, IIRC, pre-designed units with components you technically lack can be built (which is a good thing) but building them counts as prototyping all components thereof… even the ones you lack. e.g., Stock probe teams use the speeder chassis so building them counts as prototyping the speeder chassis, but not only without the tech required, but also without having to pay the premium associated with prototyping. At least, that’s been my experience. I’m not sure if that was what one of the forum veterans was talking about, or if his was another unrelated issue regarding prototyping and stock units. I’ll try to hunt down the thread later.
Actually, for something like Sea Formers, there is a work-around: If you set the prerequisite of a pre-made unit to Disable (or just haven't learned its tech yet), I think you can still build it if you have all the necessary techs to custom design it. Although that asterisk before the name might be necessary, I'm not sure.
I'm not sure that would be considered a bug, since you are in fact building something with those components.
Actually, for something like Sea Formers, there is a work-around: If you set the prerequisite of a pre-made unit to Disable (or just haven't learned its tech yet), I think you can still build it if you have all the necessary techs to custom design it. Although that asterisk before the name might be necessary, I'm not sure.
I swear that I tried that and it didn’t work. I’ll hazard a guess and say that I probably screwed something up somewhere, or maybe I was editing the wrong alpha(x).txt again. (Note to self: stop modding at four in the morning.)I'm not sure that would be considered a bug, since you are in fact building something with those components.
The successful prototyping of a component you don’t have is not so much a bug as it is one of the flaws in the workaround Firaxis fell afoul of when ‘giving’ the probe team 2 movement. TBH, they really should’ve just added a flag or value to give an extra movement point instead of the kludge of re‐purposing the speeder. The lack of the additional cost to prototype that component though?
Is there such a lack of additional cost? If you prototyped the probe team module already (with an infantry or foil chassis) and then want to build the predesigned version, isn't that going to still have a prototype cost?That’s just it, pre‐designed units automatically and freely prototype all their components. If you cannot build the Probe Team, then building a unit with the speeder chassis incurs the prototyping cost. Once you get access to the Probe Team though, the speeder chassis is automatically prototyped because, despite what they look like, the default Probe Teams actually use the speeder chassis.
Is there such a lack of additional cost? If you prototyped the probe team module already (with an infantry or foil chassis) and then want to build the predesigned version, isn't that going to still have a prototype cost?That’s just it, pre‐designed units automatically and freely prototype all their components. If you cannot build the Probe Team, then building a unit with the speeder chassis incurs the prototyping cost. Once you get access to the Probe Team though, the speeder chassis is automatically prototyped because, despite what they look like, the default Probe Teams actually use the speeder chassis.
This isn’t that much of a concern with most units, but can be exploited in the stock game. It can easily get worse if you add more pre‐designed units, especially higher end ones.
I wonder, what would the warfare aspect of the game looks like if the following rule would be implemented:
Air units are unable to destroy land units. Air units can merely reduce land units' strength to 10% in the field and to 50% in base or bunker. What if some artillery routines can be leveraged to achieve this? Should probe teams be exception from this rule is an open question.
For example, I always play with chopper chassis reduced to 3 basic speed
And in accordance with the principle 'counter before the threat' Air Superiority (along with predesigned SAM Rover) is available at Syntetic Fossil Fuels. Cloudbase Academy postponed till Advanced Spaceflight.
Speaking of "counter before threat", I'd move the satellites around so that the orbital defense pod is the one available at Orbital Spaceflight, and the Sky Hydroponics Lab and Nessus Mining Station are the last to become available.
Speaking of "counter before threat", I'd move the satellites around so that the orbital defense pod is the one available at Orbital Spaceflight, and the Sky Hydroponics Lab and Nessus Mining Station are the last to become available.
Less of a free run for 'busters? ;)
makes actually sense for the Lab and Station. Presumedly both are massive structures, the latter on some moon or asteroid, and the former needs lots of construction effort and materials, likely provided by those Stations.
Also, I think sky hydroponics labs should be called sky farms, because they are called that in the blurb(s) for that facility.
Less of a free run for 'busters? ;)
If you get a chance, how's about looking into the hard-wired special display of the Spartans?
Yah. They, and only they, get the white-on-black flag display. It cannot be done in custom factions by filling in the right color boxes, but only through labeling the files Spartan.pcx, etc. Nobody knows why it had to be that way, or why it's set unmoddable in the .exe - and people have been modding the art for over 14 years now...
At the bottom of the .pcx in SMAX. Somewhere in the .exe for SMAC, apparently.