Is a ship randomizer possible?

General discussion about the game.
Jerjare
Posts: 82
Joined: Tue Mar 26, 2013 10:45 pm

Is a ship randomizer possible?

Postby Jerjare » Sat May 03, 2014 3:43 am

I was thinking about ways to make the game more unique and random, while still using existing assets. It was mentioned that customizing your ship's layout wasn't ideal because it would encourage people to min/max and there'd be little point to having anything but an 'optimized' configuration. One idea I had was to have each ship get a 'random' option. Instead of the boilerplate room layouts we currently have, each hull type would get a randomized hull. This would work with the following algorythms:

-All rooms must contain at least 1 door, the ship must have all rooms be accessible.

-All rooms must be 2x2 or 1x2 or some combination.

-The room arrangements are confined to the sillohuette of the hull, so you won't have rooms that are 'outside' the ship graphic.

-Equipment is assigned 'value' based on its strength/utility. Some equipment is randomly omitted in lieu of more/better equipment elsewhere.

-Weapon configurations must be capable of damaging a ship with at 1 shield bubble. If one weapon is rolled as an 'ion' type, the other weapon/drone must be capable of dealing hull damage.

-A ship lacking in weapons will either have enough drones to cause damage or be equipped with a teleporter.

-A ship with a single high powered weapon (like Glaive beam) must have enough weapon slots to fire it.

-All random ships must have a minimum of 4 reactor power.

-Stealth, Hacking, Mind Control, Teleporter, and Drone Control are rated as 'twice' the value of other systems. So a ship would have to lack two systems of the Shields/Sensors/Doors to "balance" having them. The only exception is weapons; which is on a 1:1 tradeoff.

-Weapon loadouts and room configurations are random, but fit the theme of the ship hull they represent:

Federation: Only ship with a chance of getting Artillery Beam/Flak. Higher likelihood of having a wide variety of crew races, more likely to get more crew.

Engi: More likely to get Drone Control, better drone schematics, more starting drones, better chance of getting drone recovery arm, room config will always have a 'doughnut hole' in the middle.

Rock: Rooms are more likely to be 2x2, less likely to have airlocks or door control, more likely to have at least 1 missile or bomb weapon.

Mantis: More likely to have a teleporter, less likely to have other offensive weapons, more likely to have 'extreme' combinations (Stealth+teleporter but garbage evasion, no shields OR weapons)

Zoltan: More likely to only have 1x2 rooms arranged like dominoes (--+--). More likely to have only 4 reactor power, more likely to have beam weapons, very likely to have Zoltan shield though not guaranteed, less likely to have level 2 O2 or any door control.

Slug: Much less likely to have sensors, more likely to have bombs, hacking, Fire/anti bio/stun type weapons.

Crystal: More likely to have crystal weapons, less likely to have door control, More likely to have additional bars of shield, more likely to have teleporter.

Lanius: Less likely to have an 02 system or airlock doors, more likely to have hacking, more likely to have 'charge' type weapons.

The idea is that every game is completely random, right down to the ship! They're still put under parameters to prevent them from being totally OP/completely unplayable (the goal is to make them balanced enough that a player isn't constantly resetting to get the 'best' random config). My idea is to get a setup that makes you think, "Yeah, I think I can get through 8 sectors and beat the flagship with this!".
English Narwhal
Posts: 402
Joined: Tue Dec 03, 2013 9:12 pm

Re: Is a ship randomizer possible?

Postby English Narwhal » Sat May 03, 2014 3:56 am

Not possible in modding, sorry.
Image
Jerjare
Posts: 82
Joined: Tue Mar 26, 2013 10:45 pm

Re: Is a ship randomizer possible?

Postby Jerjare » Sat May 03, 2014 4:32 am

Why not?
MushrooMars
Posts: 25
Joined: Mon Oct 15, 2012 1:22 am

Re: Is a ship randomizer possible?

Postby MushrooMars » Sat May 03, 2014 6:14 am

I don't know much about FTL's architecture, but I'm pretty sure (assuming FTL's mod potential is similar to games I've modded before), this is possible, but it would be a very messy hack. FTL uses really small assets, so it loads them all at the start. It never doubles back and loads something after initialization. So every time you wanted to randomize your ship, you'd have to shut off FTL, open up a third-party program (the randomizer), which would then generate a random loadout based on a random sprite (this program would take a lot of time to make; it would need to be able to read FTL's XML files and content, have a half-decent GUI, have very intelligent algorithms that create plausible, let alone balanced ships and be able to display the randomly generated ship, making it compatible with other mods would be an absolute nightmare), then rewrite FTL's files either through *another* third party program (Slipstream Mod Manager) or by backing up and directly overwriting, then launch FTL with the new asset.

This is *possible*, but it would be a massive undertaking (relatively speaking), something an individual might take 1-2 years (assuming free time and masterful experience with modding) to fully perfect. A team might take 6 months, and both scenarios would likely require assistance from the devs.

But I'm being hopeful. As I previously said, I haven't even looked at FTL's file structure, so this may be entirely impossible even with the most ridiculous hack.