Q: Whats the matter here?
I would like to ask if anyone with programming skills is willing to help out with FTL Captain's Editions Infinite Addon. The idea is to introduce a few thousand (!) procedural generated weapon variants in CE Infinite, much as in loot centered games, like Diablo or Borderlands. This will be a side feature, available as another addon. It's not very FTLish, but would contribute significantly to semi-endless playability.
Q: How is that supposed to work?
The idea was to take all the base weapons CE and vanilla provide and make copies of them that are slightly (or significantly) modified, by prefixes like piercing, heavy, optimized and so on. Some prefixes would be applied to all weapons, some just to certain types.
The weapons would still feel a lot like their basic variant, but also play slightly different. A system not much different from Borderlands' weapon generation. There already is a list of about 50 prefixes and their function. Most of them have positive and negative versions, so the games will not get flooded with superior gear. The prefixes also affect price and rarity.
Q: Why don't you do this yourself?
While trying to implement this idea, I quickly realized that the task of creating this weapons is much more tedious than I had expected (tried to do this via templates and find and replace). I also realized that it could be done much more efficiently with a probably quite simple program. I have zero programming knowledge and it would take me month to learn how to do this myself, so I'm turning to the community.
Q: Wait, you want people to spend time coding a one-time use program?
The usefulness of the program in question would be limited, indeed. But having this process automatized would allow to also include new weapons later. If the program recognizes blueprint tags dynamically, it could also work immediately with the stuff that AE ads.
Q: What should that program do exactly?
It should process base weapon blueprints, like this one:
Code: Select all
<weaponBlueprint name="BA_LASER_DUAL_2">
<type>LASER</type>
<title>Dual Shot Laser Mark II</title>
<short>Dual Laser II</short>
<desc>Military version of the dual laser.</desc>
<tooltip>Fires 2 lasers, 1 damage each.</tooltip>
<damage>1</damage>
<shots>2</shots>
<sp>0</sp>
<fireChance>1</fireChance>
<breachChance>0</breachChance>
<cooldown>8</cooldown>
<power>2</power>
<cost>70</cost>
<bp>7</bp>
<rarity>4</rarity>
<image>laser_light2</image>
<launchSounds>
<sound>lightLaser1</sound>
<sound>lightLaser2</sound>
<sound>lightLaser3</sound>
</launchSounds>
<hitShipSounds>
<sound>hitHull2</sound>
<sound>hitHull3</sound>
</hitShipSounds>
<hitShieldSounds>
<sound>hitShield1</sound>
<sound>hitShield2</sound>
<sound>hitShield3</sound>
</hitShieldSounds>
<missSounds>
<sound>miss</sound>
</missSounds>
<weaponArt>ba_laser_dual_2</weaponArt>
</weaponBlueprint>
Code: Select all
<weaponBlueprint name="BA_LASER_DUAL_2_PIERCING">
<type>LASER</type>
<title>Piercing Dual Shot Laser II</title>
<short>Dual Laser II</short>
<desc>Military version of the dual laser.</desc>
<tooltip>Fires 2 lasers, 1 damage each. Piercing: Shield Piercing +1</tooltip>
<damage>1</damage>
<shots>2</shots>
<sp>1</sp>
<fireChance>1</fireChance>
<breachChance>0</breachChance>
<cooldown>8</cooldown>
<power>2</power>
<cost>115</cost>
<bp>7</bp>
<rarity>5</rarity>
<image>laser_light2</image>
<launchSounds>
<sound>lightLaser1</sound>
<sound>lightLaser2</sound>
<sound>lightLaser3</sound>
</launchSounds>
<hitShipSounds>
<sound>hitHull2</sound>
<sound>hitHull3</sound>
</hitShipSounds>
<hitShieldSounds>
<sound>hitShield1</sound>
<sound>hitShield2</sound>
<sound>hitShield3</sound>
</hitShieldSounds>
<missSounds>
<sound>miss</sound>
</missSounds>
<weaponArt>ba_laser_dual_2</weaponArt>
</weaponBlueprint>
Code: Select all
ID: _PIERCING; title_start: Piercing; tooltip_end: Piercing: Shield Piercing +1; stats_changes: adds one to <sp> tag, multiplies <cost> tag by 1.5, ads one to <rarity> tag
For drones, the program would also have to create new variants of the respective drone blueprints. Further the program should apply separate prefixes for the actual drones (for affecting drone stats beyond its weapon properties).
Besides producing the thousands of new weapon blueprints, it would also have to generate various FTl compatible blueprint lists that include all the new variant IDs. This is essential for fully integrating the new weapons into the game. The best solution for that would be having the program replace all the entries for a base weapons in autoBlueprints.xml with their respective hundreds of variants. (This has to be automatized as well, because adding thousands of weapons to lists would be... tedious at best.)
Q: What do I get out of this?
Well you produce content that hundreds of people are going to play and have fun with.

Q: Couldn't such a program do much more?
My concept just involved applying one prefix at a time. If we look at Boarderlands (I'm not a huge fan of that game, its just a very suitable example for procedural generated sci fi loot) than we see that it often applies multiple prefixes to one gun. The attributes weapons can have are layered in a way that prevents similar or contradictory effects to be applied on one weapon. Thats how Borderlands gets its "bazzillions" of guns. With an elaborate enough program, we could have this in CE infinite as well.
It could even make visual changes, by tinting or slightly stretching the weapon graphic and producing new animation entries for each ID...

Q: You really think someone will code this?
Well I'm not sure anyone would be interested in executing the concept. But I'd say there are a lot of people that would like to play the result. I'm asking for help here, but I don't demand or expect anything. I wanted to put that whole concept out there to display what could be further done with FTL (CE Infinite). If the idea interests you and you have the time and skill, then this is your chance to contribute to CE.
