From another thread:
So I had a drug/alcohol/sleep/deprived idea last night about astro trains and the main thing that makes them such a problem (and the above post reminded me):
The inability to see their routes.With a slight tweak, we can fix this:
During map-gen, each station precalculates its routes to each nearby station (not ALL stations, just the nearest three or four) and lays down "train tracks" that are essentially non-interactive visual display of train routes. It could be as simple as something like the
lane wisps in Dungeon Defenders 2. Immediately the player not only knows how many routes pass through their systems, but where to find the stations ("just follow the yellow brick road"). Every train would use this micro-network to path through the galaxy. If it wants to go from A to D and there isn't a link from A to D directly, then it must pass through Stations B and C first.
Upon destroying a station, all of its links would be nulled and the network would recalculate in order to maintain a connected network graph, adding new links
anywhere in order to keep the overall connectivity high. Yes, this may result in new routes through the player's territory that didn't exist previously.
What this change does is make the trains more predictable. The player can build around it ("There's a rail here, maybe I should build my command station over here instead"), have agency in fighting back ("I'm hunting wabbits!"), as well as restrict where trains can go.
Second: Destroying a train means somethingOne of the other things I recall about Trains is that if one of them is destroyed, the AI network just creates another one out of thin air to replace it, to keep up some ideal #of trains value. Trains being as monumentally indestructible (for the most part) as they are, it would seem that they should take a fair few resources to create, and while the AI does, essentially, have "infinite resources" and just isn't devoting them to this part of the galaxy, it similarly shouldn't care about
one train going poof so much that it instantly replaces it.
Give these things a build time, force the AI to wait out that timer.
I'm ambivalent about trains that reach their destinations. I'm ok with them disappearing into the ether and popping out somewhere else (as something else), as that can be handwaved as having been reformatted, put into storage, or whatever that we can't see going on off-screen in the abstraction. That said, I do like the idea of a cargo train having to request a combat train travel to its origin point before it can set off (giving the player additional opportunities to slow down those projects: if they intercept a combat train and destroy it, the cargo train needs to request a new one and wait longer).
Third: Train GoalsTrains need to have a goal beyond "move from point A to point B as arbitrary train type rand(9)."
I think they do currently, or at least the cargo trains do. In that every one that arrives as its destination adds resources to some AI super project (super fort, etc.) on the AI homeworld. I want to see this expanded and fleshed out a bit more. "Reach its destination" is really super vague and doesn't mean a whole lot if you reduce the train network to 2 nodes that are in adjacent systems: now not only is it easier for the AI to complete those transits, but it's harder for the player to intercept! If this link was always that vital to resource movement, why wasn't this route being utilized all the time?
(This is the main reason why having trains on a "low intensity" setting is actually
worse for the player than a higher one!)
* Step 1: create virtual "resource nodes" adjacent to some train stations (far from the homeworlds) where the cargo trains originate (these nodes may not necessarily be visible to the player, and indestructible if they are). These trains must travel from these stations to "a goal station" in order for the resource counter to be incremented for the super project. Additionally the AI homeworlds would start the game with a station; these stations are only goal stations unless no resource stations exist, then they are considered resource stations and not goals.
* Step 2: create actual project destinations. The super project will be built in this system or an adjacent system. Project destination stations must not be 1 link away from a resource station when created (station destruction and rerouting may result in single-link trips, but any new project must respect the two-link minimum, if no two-link+ routes exist (fully connected network) then the project must be built on a AI homeworld and the resource node must travel the longest
galactic distance).
* Step 3: Projects: One project may be a "train station constructor." After being built it flies to a system that has no train station in or adjacent and is not a dead-end system. Any links that travel through this system are removed and both end points now link to the new station. After that, establish a minimum of 1 new link to the nearest stations, bringing the total links up to a minimum of 4. In the case of a resource node (step 1) no longer having a station connected, these station constructors would prioritize re-establishing that station. In the case of no resource nodes available for projects, the cargo trains originate at the AI homeworlds, simulating the AI diverting resources from other exo-galactic projects.
* Step 4: Cargo trains are
never unaccompanied. They always travel with at least 1 "combat" oriented train as escort. What type and how many would depend on AIP, plot intensity, and AI difficulty. However, on-death, cargo trains drop 100k worth of resources for the player, with another amount added to the local debris field. If the escort trains are still alive, they may raise the AIP for the death of their escort target (dependent on train type; there could be variations, such as a scorched earth train that nukes the planet when its escort target dies). Ostensibly this implies that combat trains
are fightable.
- New "combat" oriented train: Protector
- Tough, durable, and heavily armored itself, it shields its escort from damage.
- Carries a remote shield generator, which projects a armored force field bubble around its escort target (any other train, prioritizing cargo trains)