Tuesday, April 17, 2012

[SupCom FA] [On Hold] MadAlliance Mod

ABOUT
The purpose of the MadAlliance project is to create a mod for Supreme Commander - Forged Alliance that:
  1. Amalgamates several 3rd-party mods and ideas for Supreme Commander, Supreme Commander - Forged Alliance, and Supreme Commander 2; and
  2. Provides unique and drastic changes to late gameplay,

based on the MadAlliance Universe (see next post).
MadAlliance is not meant to be a simple cut+paste hack-job of 3rd-party mods; conflicts and inconsistencies between mods are taken into account and consideration and hopefully worked-out in reasonable ways. That said, it is possible that not all aspects of a particular mod are incorporated into MadAlliance. New and unique content will also be added to the project.
Ultimately, the project aims and hopes to produce for SupCom FA something akin to the UTASP mod for Total Annihilation (http://www.rakrent.com/rtsc/html/utasp.htm). I would very much like to enjoy a SupCom FA experience similar to that of TA: UTASP, and to lessen the burden for others who would also like to enjoy a similar experience.
What MadAlliance is NOT: the amalgamation of every single possible SupCom mod and idea out there. It is also not an attempt to make all mods out there 100% compatible with each other.
Suggestions and (constructive) contributions to the project are always welcome!!!
Technical details about the mod (including downloading and installing the mod) appear in the next post.|||TECHNICAL DETAILS
*****(WORK IN PROGRESS)*****
PREAMBLE
The essential requirement for a particular mod to be included in the MadAlliance project is permission from the original author(s) of that particular mod.
However, in cases where the original author(s) cannot be reached and no licensing restrictions are provided with the mod limiting its use, the incorporation of that mod into the project will be through the least-intrusive manner possible as deemed acceptable by the modding community (i.e., meta modding, see below under "Methods"). The running poll at the head of this thread indicates community support for this approach.
Should the original author(s) of a particular mod at any time inform that his/her/their mod not be part of the project, then such mod will be removed. Likewise, should community opinion change (via the poll at the head of this thread) such that incorporation of a mod should strictly rely on the original author(s) explicit permission, then the mod will be removed when no explicit permission has been granted, accordingly.
In all cases, reasonable attempts are made to clearly acknowledge and credit mods used in the project, as well as provide functional links to the original content.

METHODS
Mods can be incorporated into the project in two ways:
(1) Hard coding; and/or
(2) Meta modding.
Hard coding uses the original mod's contents and makes changes to the underlying code directly. This altered code would then be distributed as part of the project.
Meta modding does not alter the underlying mods but rather requires that they be downloaded separately and installed as per the directives of the original author(s). The MadAlliance project would then use a blueprints method to superficially alter certain features of a particular mod, i.e., disabling a particular unit, rebalancing, etc., accomplished by either non-destructive hooking or shadowing. No "under-the-hood" changes would ever be made to the original mods.
Which method is used to incorporate a particular mod into the project rests 100% with the permissions and wishes of the original author(s), except for when the original author(s) cannot be reached in which case the meta modding method will be used.

APPROACH
The SupCom FA game has several aspects that can be modded: number and types of units and structures, unit and weapon balancing, AI scripting, user interface customizations, music and sound effects, visual effects, bug fixes to the game engine, performance optimizations, etc.
The first thing is to choose which existing mods will serve as the base mods for the respective areas of moddability. For example, some mods prefer to emphasize higher-tier units at the expense of lower-tiered ones. Other mods prefer to accentuate each unit of each tier so that all units remain useful throughout the course of the game. Another mod might collapse several units and their abilities into a single unit, thereby reducing the number of playable units.
Then, once the base mods have been chosen, look at all other mods and determine if there are any aspects of those mods that can be incorporated into the project's framework. Please note the use of the term "framework" and not "base mods". In fact, choosing base mods does not imply that every aspect of those particular mods are the Golden Standard and that everything else incorporated into the project's framework must be altered accordingly. It is possible that some aspects of the base mods would undergo some tweaking to reflect the aims of the new framework.

THE MADALLIANCE UNIVERSE
There are only 4 factions: UEF, Cybran, Aeon, and Seraphim. Each faction is waging both interfactional wars and engaged in their own civil wars - until Black Sun is fired by the UEF. A regiment of the UEF wanting to come out triumphant build Black Sun - the mother of all doomsday devices. However, upon firing Black Sun, the UEF, Cybran, and Aeon realized that in order to ensure their own survival they must cease their own interfactional and civil wars and unite together to face a common enemy: the Seraphim.
The Cybran, having learned about Black Sun, invested their resources into researching several virus candidates under the "QAI project". A QAI virus was injected into Black Sun prior to firing. Once Black Sun was fired, all Cybran under the influence of the UEF became independent and united together with their brethren. While the Cybran suffered heavy casualties, the QAI virus encapsulated the tremendous energy of Black Sun and delivered it directly to the ACU's of the Cybran nation. The Cybran nation would live and rebuild.
The Aeon, having learned about Black Sun, summoned Princess Rhianne to the battelfied in the hopes that she would use the immense powers of Black Sun to inject her essence into the quantum gate network in order to spread the message of "peace" among the other nations. Once Black Sun was fired, Princess Rhianne was absorbed into the quantum gate network. She was now able to manipulate the UEF and Cybran nations by directly altering the blueprints of unit productions - in order to end the hostilities, all future unit development would be loyal to only the Princess as the Aeon grew in hegemony.
But there were far more reaching consequences to firing Black Sun - no Seraphim was destroyed and QAI became more than just a virus. QAI was now alive, physically, and in the direct control of the Seraphim. The Seraphim, having learned about Black Sun, the QAI project, and Princess Rhianne's summoning, in a process still unknown, were able to manipulate the QAI virus to transform itself into a blueprinting algorithm for unit production encapsulating the immense powers of Black Sun, and then used Princess Rhianne's presence in the quantum gate network to have QAI delivered to them. It is suspected that the process came at a price for the Seraphim, though, as they no longer possesed their own blueprints for unit production.
And the war wages on...

IMPLEMENTATION
We begin by meta modding two existing mods: Black Sun Doomsday Device and BlackOps: ACU (see below), and introduce unique content as needed. The following sets the tone for the project. How other mods are incorporated into this framework are yet to be determined.
DEFINITION: Black Sun Radius Rule (BSRR) - Black Sun has a radius around it where any unit of any faction/player/ally/enemy that is within the radius remains alive when Black Sun is fired and where any unit of any faction/player/ally/enemy (including the units of the UEF player that fires Black Sun) that is outside of the radius is destroyed when Black Sun is fired. There are exceptions to this rule, as detailed below.
  • The Black Sun Doomsday Device is altered from Lap's mod so that it can only be built and fired by the UEF.

  • Black Sun can be fired only once.

  • Once Black Sun is fired, players of the same faction automatically become permanently allied with each other and permanently de-allied with players of different factions.

  • Cybran can build research facilities for QAI viruses instead of building Black Sun.
    If a QAI virus is not activated before Black Sun fires, then all Cybran units obey the BSRR.
    If a QAI virus is activated before Black Sun is fired: all enemy Cybran players lose all their buildings and units according to the BSRR, but are provided with a fully upgraded ACU (provided that their ACU is still alive) from the BlackOps: ACU mod. The ACU is not destroyed but enhanced. This ACU generates "infinite" energy and mass.
    A QAI virus needs to be activated only once by any Cybran player. However, more than one player can "activate" a QAI virus, the subsequent activations not having any effects at all. The idea here is that there are no spoilers if someone else has already activated a virus and the first virus, once injected, is aggressive in combating other viruses from taking over. This is a design feature of the Cybrans themselves to prevent any unwanted behaviour from occurring due to interference by another of their viruses. The viruses are experimental "units", so unexpected behaviour could occur. (NOTE: in future releases, I'm thinking of removing this feature and allow the viruses to intermingle with each other.)

  • Aeon Illuminate summon (i.e., "build") Princess Rhianne to the battlefield instead of building Black Sun. Only one Princess Rhianne can be summoned in the game. For the UEF, Cybran, and Aeon Illuminate players that survive the blast according to the BSRR, all units produced by these players from this point onwards are automatically gifted to the player who summoned Princess Rhianne. Any Aeon Illuminate player who does not summon Princess Rhianne survives/dies according to BSRR.

  • The Seraphim do not build Black Sun nor anything in its place. Instead, once Black Sun is fired, none of their units are destroyed, i.e., Seraphim are excluded from the BSRR. However, they lose the ability to build any more units, and instead are given a QAI experimental playable unit that is massively strong and has a huge amount of health. The type of unit is dependent on the particular QAI virus activated.

  • If no QAI virus is activated and Princess Rhianne is not summoned, then Cybran and Aeon Illuminate survive/die according to the BSRR. Seraphim do not die, as before, but they also do not get a QAI experimental unit. They are unable to produce any further units.

  • If no QAI virus is activated and Princess Rhianne is summoned, then Cybran survive/die according to the BSRR. Units are still gifted to the player that summoned Princess Rhianne, as before. Seraphim do not die, as before, but they also do not get a QAI experimental unit. They are unable to produce any further units.

  • If QAI virus is activated and Princess Rhianne is not summoned, then Aeon Illuminate survive/die according to the BSRR. Seraphim do get a QAI experimental unit, but it spawns at the location of Black Sun (destroying Black Sun in the process) instead of being transported within the vicinity of Seraphim. Seraphim are unable to produce any further units.

MODS THAT ARE PART OF THE PROJECT
All of the authors below have consented to their mods being part of the project and all links provided are to the original sources. Also, by "Method" is meant the manner in which the particular mod is used in the MadAlliance project, as described above.
Total: 17, and counting
  • BlackOps: Unleashed + Balance (v4.3)
    Authors: BlackOps Team
    Homepage: http://forums.gaspowered.com/viewtopic.php?t=31172
    Download: .zip - http://www.megaupload.com/?d=FUHQBIPE
    Download: .scd - http://www.megaupload.com/?d=V72VHI3S
    Method: Meta modding

  • BlackOps: Advanced Command Units (v3.1)
    Authors: BlackOps Team
    Homepage: http://forums.gaspowered.com/viewtopic.php?t=35265
    Download: .zip -http://www.hyperimpact.net/downloads/BlackopsACUsv31.zip
    Download: .scd - http://www.hyperimpact.net/downloads/BlackopsACUsv31scd.zip
    Method: Meta modding

  • BlackOps: Special Weapons (v1.3)
    Authors: BlackOps Team
    Homepage: http://forums.gaspowered.com/viewtopic.php?t=40574
    Download: .zip - http://www.hyperimpact.net/downloads/BlackOpsEXUnitsv13.zip
    Download: .scd - http://www.hyperimpact.net/downloads/BlackOpsEXUnitsv13scd.zip
    Method: Meta modding

  • BlackOps: Naval Rebalance (v1.1)
    Authors: BlackOps Team
    Homepage: http://forums.gaspowered.com/viewtopic.php?t=40574
    Download: .zip - http://www.hyperimpact.net/downloads/BlackopsNavalBalancev11.zip
    Download: .scd - http://www.hyperimpact.net/downloads/BlackopsNavalBalancev11scd.zip
    Method: Meta modding

  • BlackOps: Global Icon Support (v5.0)
    Authors: BlackOps Team
    Homepage: http://forums.gaspowered.com/viewtopic.php?t=36996
    Download: .zip - http://www.hyperimpact.net/downloads/BlackopsSupportv50.zip
    Download: .scd - http://www.hyperimpact.net/downloads/BlackopsSupportv50scd.zip
    Download: Filefront mirror - http://supremecommander.filefront.com/file/Global_Icon_Support;100370
    Method: Meta modding

  • 4th Dimension (v2.11)
    Author: Optimus Prime (original author). Project taken over by Resin_Smoker.
    Homepage: http://forums.gaspowered.com/viewtopic.php?t=30980
    Download: http://www.moddb.com/mods/4th-dimension-fa/downloads/4th-dimension-211-fa-only
    Method: Meta modding by permission from Resin_Smoker

  • 4th-D Compatibility "4DC" (v0.7)
    Author: Resin_Smoker
    Homepage: http://forums.gaspowered.com/viewtopic.php?f=7&t=46551
    Download: http://www.hyperimpact.net/4thD/4DC_v07_13Sept2010.rar
    Method: Meta modding

  • Black Sun Doomsday Device
    Author: Lap
    Homepage: http://forums.gaspowered.com/viewtopic.php?f=7&t=27984
    Download: http://darrath.kilu.de/mods/blacksun.rar
    Method: Meta modding

  • Sorian AI (v2.1.1)
    Author: Sorian
    Homepage 1: http://forums.gaspowered.com/viewtopic.php?t=22908
    Homepage 2: http://code.google.com/p/sorian-ai-mod/
    Download: .zip - http://sorian-ai-mod.googlecode.com/files/sorian_ai_pack_2.1.1.zip
    Download: .exe - http://sorian-ai-mod.googlecode.com/file/Sorian_AI_Mod_2.1.1.exe
    Method: Meta modding

  • Lobby Enhancement (v4.4)
    (this mod is included in Sorian's AI pack v2.1.1, above)
    Author: Sorian
    Homepage: http://forums.gaspowered.com/viewtopic.php?t=33944
    Download: http://sorian-ai-mod.googlecode.com/files/LobbyEnhancementMod4.4.zip
    Method: Meta modding

  • AutoGive (v1.4)
    Author: falcontx
    Homepage: http://forums.gaspowered.com/viewtopic.php?t=37082
    Download: From the Vault
    Method: Meta modding

  • *** Mod Order Load Fix (release 8-14-10)
    (might not be needed for technical reasons and possibly removed from the project)
    Author: FuryoftheStars
    Homepage: http://forums.gaspowered.com/viewtopic.php?f=7&t=46195
    Download: http://www.filefront.com/17200995/modorderloadfix.scd
    Method: Meta modding

  • Buff System Fix (v1.2.1)
    Author: FuryoftheStars
    Homepage: http://forums.gaspowered.com/viewtopic.php?f=7&t=44963
    Download: http://www.filefront.com/17377832/BuffSystemFixBundlev1.2.1.zip
    Method: Meta modding

  • Bug Fix (v0.2)
    Author: FuryoftheStars
    Homepage: http://forums.gaspowered.com/viewtopic.php?f=7&t=45964
    Download: http://www.filefront.com/17377833/BugFixBundlev0.2.zip
    Method: Meta modding

  • Improved Close-up Camera + FPS unit cam (v1.4)
    Author: duncane
    Homepage: http://forums.gaspowered.com/viewtopic.php?t=17516
    Download: http://members.iinet.net.au/~dionysus/misc/Zoom.zip
    Method: Meta modding

  • Duncane's FA AI Patch (v2.6.2)
    Author: duncane
    Homepage: http://forums.gaspowered.com/viewtopic.php?t=23929
    Download: http://members.iinet.net.au/~dionysus/misc/AIFix.zip
    Method: Meta modding

  • Total Annihilation Music (v1.2)
    Author: Armoured Fish
    Homepage: http://forums.gaspowered.com/viewtopic.php?t=25479
    Download: http://www.mediafire.com/?5jtc239jnnw
    Method: Hard coding

  • Auto Reclaim (v1 redux)
    Author: seiya
    Homepage: http://forums.gaspowered.com/viewtopic.php?f=7&t=47544
    Download: http://supcom.theworldsofseiya.com/seiya_autoreclaim.scd
    Method: Meta modding

MODS PENDING APPROVAL TO BE PART OF THE PROJECT
I'll make the list when I get the time. So many things happening right now... have to prioritize.

MODS THAT HAVE BEEN EXPLICITLY PROHIBITED BY THE ORIGINAL AUTHOR(S) TO BE PART OF THE PROJECT
  • Wyvern Battle Pack
    Author: brandon007
    Homepage: http://forums.gaspowered.com/viewtopic.php?f=7&t=46683
    Download: http://www.megaupload.com/?d=2UGV82XH

  • ExpWars and SupCivs
    Author: Manimal
    Homepage:
    Download:

DOWNLOAD
Versions of the MadAlliance mod follow the convention MadAlliance vYYMMDD, where YY = year, MM = month, and DD = day of the release date.
For a list of changes between past and present versions and what is planned for future versions, please see the following link: [url]http://[/url].
  • YYMMDD [url]http://[/url]

HOW TO INSTALL
(The following is just a template for the time being as there currently is no MadAlliance mod ready for download)
The following instructions are only for the most current version of MadAlliance (vYYMMDD). For instructions on installing previous versions, please refer to "How to Install.txt" included with the particular download.
  1. Download the following 3rd-party mods in their original forms as released by their respective authors (see above):
    • Black Sun Doomsday Device,
    • BlackOps: Advanced Command Units, and
    • BlackOps: Global Icon Support.

    All of these mods are meta modded, therefore, MadAlliance requires that they be installed separately.
  2. Install the above 3rd-party mods according to the directions of their respective authors. However, do NOT enable them using the game's Mod Manager.
  3. Download the MadAlliance mod from the previous section.
  4. Extract the MadAlliance mod file in the /mods folder blah blah blah...
  5. In the game's Mod Manager, disable every mod.
  6. Enable the "MadAlliance" mod via the Mod Manager. Note: all 3rd-party mods flagged as required by MadAlliance will be detected as needing to be enabled by the Mod Manager. Click "yes" to have the Mod Manager enable them for you. This step is essential to ensure that the mods are activated in the appropriate hierarchy structure.

CREDITS
---

CONTACT
For any errors, bugs, or technical support, please do NOT contact the author(s) of the original mods, unless otherwise indicated. It is possible that errors or bugs in this project are due to the way the mods are incorporated and may not necessarily be present in the original mods.
Unless otherwise indicated, all errors, bugs, or technical support should be addressed to madface via a post to this forum topic or a private message.|||So it's going to be a mod that makes other mods play nice with each other.
Or is there going to be unique content :?
Just make sure you crdt the original authors.|||Mister_willing_to_learn|||I'm more curious about the methoids being used...
Mike|||It seems like a great idea. But I don't know how effective it will be. From what I have seen most of the modders around here try to make things compatible when someone mentions an issue. We all try to play nice with each other so that people can enjoy the products together. If this mod takes lets say BO: Unleashed and PowerSlave. Then whenever either is updated to add new units or balance changes you would have to update yours as well. That seems like a lot of overhead and management on your part. This would be handy for lan parties and the like so that you could just hand out the one file and everyone's set. But for people who prefer their mods to be current it could be an issue. It may actually hinder compatibility since it would make isolating conflicts and issues between mods that much harder since it's all integrated, though I would assume you would test and make sure it all works before releasing it.|||If you're actually stealing content from other modders rather than just making a meta-mod that makes them play nice with each other, then you're probably going to be in for a lot of resistance, and nobody will use your mod. Just a heads up.
It's perfectly possible to make a mod for FA that balances any number of other mods (requiring them to be installed separately - you can easily provide download links to the original files uploaded by each mod's author) without actually stealing any content. If you want to know how to do this, you'll find that plenty of people will be a lot more willing to help you.|||OrangeKnight|||So it's going to be like funkoff with the base game but with mods.|||I meant in terms as to how you plan to itegrate all the content, much liek how Mithy described prior to your post.
Mike|||Mithy|||So it sounds like you meant to say "I'm going to re-package everyone else's work regardless of permissions."
Cause I know none of the BlackOps team got asked if our works could be used...
Mike|||OrangeKnight|||OrangeKnight|||I have no issue with projects such as this one, there have been serveral start ups in the past.
But my issue is with repackaging other's content.
As Mithy Described, theres 2 ways to go about a project like this, and your descriptions of your "plan" leave it so you could be planning to go either way.
Also I would like to point out that it sounds somewhat fishy to say you plan to alert modders beforehand, after starting this thread.
Nothing personal, it's a case of 'once burned, twice shy' on my part personally, and the fact I look out for everyone's best interests here.
Mike|||Here's the thing - there's no need to take content. FA has a fantastic modding system that lets one meta-mod require a bunch of other mods, and allows it to override any aspect of those mods as needed to rebalance them together.
All you would have to do is add those mods' UIDs to your mod's Required table, and provide download links to the original mods. It's easy enough to then make your mod disable, alter, or otherwise rebalance any units from any of those mods, without having to re-release their content. It also saves you a lot of work, because a lot of these types of changes (say, making a bunch of units unbuildable) can be done en-masse with Blueprints.lua code.
Like I said, plenty of us will be willing to help you with any questions you have about this method, and I doubt you'll get any resistance from mod creators if you do it this way (as opposed to repackaging content, even credited) - and even if you do, you're not actually re-distributing their work, just pointing to and requiring it.|||OrangeKnight|||Mithy|||As far as I know, all of the major mods that exist now are relatively compatible already - they're just not balanced against each other. The only one that might break others would be Experimental Wars, but even that might not be too bad.
As it is, it seems like a lot of people play skirmishes with virtually all the major mods enabled, and there are few if any reported functional problems. So you'd mostly be dealing with balance, removing units, etc.

The basic steps to set this up would be:
1) Install all of the mods you want to base this around
2) Create your mod_info.lua and add those mods' UIDs to its Required table. Make sure your mod has a numerically higher UID than any of the other mods, so it loads last, and its changes take precedence.
3) Create blueprint merge files (any file with a .bp extension) in your mod's base directory for altering each mod's units, projectiles, etc. These can contain any number of blueprint merges you want; you could do them all in one file if you choose, but it's probably cleanest to do one file for each mod, or each type of unit (e.g. land). All .bp files in each mod directory are processed sequentially, so you don't need any special directory structure to merge any other mods' existing blueprints.
4) Create an empty Blueprints.lua in your mod's \hook\lua\system directory, and hook the ModBlueprints function within (see below if you don't know how to hook a function non-destructively). This is the most effective tool for making mass changes to various blueprint stats, as well as the only safe way to modify a unit's categories and buildablecategory tables-- which are what control what a unit can be built by and what it can build, among many other things.
If you're new to modding SC but have some programming experience, read the threads in the FA Useful Information sticky about hooking functions and classes non-destructively, or look at how mods like the CBP do it. It's pretty simple once you're used to it.
You'll probably find yourself needing to override things within other mods' unit scripts from time to time, which is not normally something that the game's hooking system lets you do (it doesn't watch mod-added script files at all, only those that exist in the original game). I made a little \lua\system\import.lua hook to do that here. It's pretty seamless except for the lack of access to local variables, which is never an issue when hooking mods' unit scripts.|||To see an example of ModBlueprints in action, as well as how to make a unit non-buildable, take a look at this No Engineers mod I just made for someone on request: http://code.google.com/p/nubletsupreme/ ... rs_1.1.zip
The whole mod is two files: mod_info.lua and hook\lua\system\Blueprints.lua. It procedurally looks for all units with the category ENGINEER who do not also have STRUCTURE, and removes any BUILTBYTIERxFACTORY categories from their Categories table. It also cycles through all T1 structures that the ACUs wouldn't normally be able to build, and makes them buildable.
There's another mini-mod in that google code page's downloads that doubles the strength of all units with a bunch of filtering conditions - same deal, all done in one file.|||madface|||wow a rather civil post from resin regarding a compilation mod XD
anyway, if you use the method that Mithy describes to create your meta-mod(that is making the original mods required install, and then hooking them with your mod to make changes thus not actually repackaging anything of ours) then i personally do not mind, just be prepared as it can be a lot of work, however if you ask nicely for advice or help in mod dev then there will be plenty of people willing to help, provided you are asking for help and not asking someone to do something for you.

also from what i understand, it seems he doesn;t exactly want to make all mods compatible, but rather take select features from different mods and put them into a meta mod, this is also doable via the blueprints method with no need to repackage stuff.
i am reminded of the UTASP(i think it was called) and others like it for ta......good times
tl:dr- don't repackage stuff and you'll be good|||Resin_Smoker|||Lt_hawkeye|||As said, if you make the meta-mod, I think you'll find most everyone to actually be helpful. We've had people before come in and post saying they were releasing a redistributable of everyone else's work but never bothered asking for permissions first, hence the feedback you initially got.
Also as said, most of us work very hard to make our mods compatible with any other mod that someone requests for it to be compatible with. I know for my own mods, the current releases are not very compatible with most of everyone else's. My WIP versions on my own PC, however, are 99% of the way there. I'm actually waiting for BO's next release to finalize testing of that last 1% for many of them before releasing myself.

No comments:

Post a Comment