tsunamayo / Starship-EVO

Welcome to Starship EVO bug tracking repo !
112 stars 17 forks source link

[Dev Asks] Spawning Entity #5670

Open tsunamayo opened 4 months ago

tsunamayo commented 4 months ago

One of the many mechanics I feel requires a refactor for survival is the way we spawn blueprints.

First I dont really like the current starter block logic, I feel we should be able to see where we place the entity, especially for terrain build.

But for survival we of course need something that makes a little more sense and is a little harder. So here what I had in mind:

=> that way a player can swap between his different spaceship depending on the need, and freely roam the galaxy without worrying about which ship stays with him.

For terrain entity it is a different philosophy as it is more similar to how prefab works, ie you can spawn a new entity if you have the resources / cash.

What is you take on this? How does it works in other game (my favorite question ^^)

Tackietacktack commented 4 months ago

Good ideas, I have much thinking about it in the past. My problem was most if I want spawn something but I don't have enought bricks for it. My solution was that a blueprint is a blue hologram(a little bit like the repair mission in the tutorial, here you have green holograms) and all bricks which you don't have are still blue Hologramm. The losing bricks (blue hologram) you can fix with a repair tool if you have the bricks in your inventory. I don't finish this idea but so it could help?

Sithware commented 4 months ago

I would suggest going somewhat down the space engineers route. Where you can place down a new ship anywher trough a certain menu. If the ship was placed in creative mode it would be complete and ready to go. If however it was placed in survival mode it should be a "ghost" of the ship. This "ghost" would be constructed using either the repair tool or a new tool while consuming the necessary components for the blocks being constructed.

Uncle-Ulty commented 4 months ago

Ship should be buyable and buildable.

The buyable version should be expensive, to force the player to make quests or build it themselves.

A "ship assembler" (dry dock) could be interesting. It would work the same way of the assembler for bricks.

My idea:

(I can build a sample of my idea as soon as I get home)

image

TIKIRobo commented 4 months ago

i think there could be "3" ways to build

  1. buy it from a station, the easiest way but ofc you'll need to get the money for it
  2. open some sort of blueprint menu and paste the ship in, if its survival the ship will appear as a hologram if in creative it'll just get auto built, then using the repair tool or something similar you can manually build up the ship (this would only work well for small hover bikes and early game stuff)
  3. a holo projector block with 2 modes, first mode lets you place a to-scale holo of the ship then using the link tool you link the projector to your repair field "current forcefield block. I was thinking on having the player to make it moves on a rail" and the rail its on, that way much like the turret core it can tell players what it needs to work on the side of the screen. there would have to be some sort of check to make sure the bounding box of the rail+field can cover the whole ship, there could also be another option that uses something akin to the repair beam/a cone projector maybe? the second use for the projector block would be a separate mode that lets you project 3d text, shrunk ship models, and star/system maps the benefits of the holo projector over the manual holo placement in 2. would be that the projector could be hooked into logic or even automatically push the ship made out of the building area so it can start on another blueprint if there is a queue

(the holo projector idea could also just be the shipyard updated but we all want our tiny ship models back lol)

ZachZent commented 4 months ago

Heh, I've been holding onto this gif for years. I'm sure there is an old suggestion or two from X years ago for shipyard spawning

tumblr_o3jhklIBCz1qj6sk2o7_400

The "laser wall" idea easily conforms to the bounds of a shipyard. As it passes, parts are "spawned" bit by bit allowing the player to see a ship constructed and the cross section. It's relatively resource friendly, not requiring extra effects like flying drones or whatever. The speed can be regulated and adjusted for balance.

asanagisae commented 4 months ago

Existing NPC shipyards could be owned by factions. I think it'd be good to have incentive to increase reputation with them. For example, if you do lots of mining delivery missions for the mining faction, they'll let you use their larger 3d ship printer, and there'll be a discount for mining lasers and cargo blocks. If the ship you want to build is more combat-focused, you should increase reputation with a combat faction instead.

In this way, we also indirectly lock larger ships behind progression. You can always build large ships by hand, sourcing your own ores and components. However, you can also gain reputation with a faction that has a large ship building facility, that also provides a large discount for parts cost, so that you can build the larger ships sooner.


Regardless, it'll be neat to build your own ship printing stations and have them printing blocks automatically queue parts from assemblers. Watching 30 assemblers working, without queuing them manually, should be satisfying to watch.

There was talk of having decorative "drones" assist with this process, like the drones from earlier versions of SEVO. They wouldn't have physics or interact with anything, they'd be purely visual. Drones do make ships or stations feel more lively. You could tie some drone skins with faction reputation as well.

dean-proca commented 4 months ago

In Empyrion Galactic Survival we have a "Factory" UI where the player can view saved blueprints. Once a blueprint is selected it's resource cost is shown and "Build Time" based on how many / what type of blocks the blueprint has. The player can then either feed the Factory UI either raw materials (iron ore, copper ore, etc) or finished blocks (hull block, generator, etc):

Once enough materials have been placed into the Factory UI to meet the cost of the blueprint, the player can select "Build". If there is any remaining "Build Time" this real time duration must count down to 0. Once the "Build Time" has elapsed the player can then spawn the blueprint in.

In Space Engineers there is a "Holographic Projector" block. This block requires a powered grid. Once placed on a powered grid the player can use the block and load it's UI where a blueprint can be selected. The UI has several options for how the holographic projection is displayed.

The player can either manually weld each block on the projection with a hand tool, or can build a vehicle or base structure that can weld the projection. In the case of vehicle, any ship with welding tool{s} and cargo storage with required materials can help weld blocks on the projection. In the case of a base, the base must have welding tool(s) and there must be some way to manipulate the welding tool(s) through pistons, rotors, and hinges in such way that the tool can reach all blocks to be welded. The base must also have cargo containers carrying enough resource to weld all the blocks.

Gallt commented 4 months ago

For bases: Something like Empyrion where we get a ghost of the base we can rotate/raise/lower to fine tune it or clip it into the ground/cliffs for subterranean structures. Then you could either feed the materials from your inventory via repair gun (so you could construct via ship or on foot), or when you approach a "press E to open construction inventory" pops up, you drop the stacks in (maybe it says Hull 0/164500, Reactors 4/400, Shields 50/200) and the blocks appear as you fill it up.

For ship construction:

I'd say we change the name of the "shipyard" block in game right now into landing/docking/something representative of the fact its a sizeable parking space for vehicles (also so people dont have to replace the block then, we just change the name on it for now, maybe add more options to it later)

Instead we have a sizeable (1/2m, 1m, 2m, 4m) "shipyard" block that also can make a bounding box just like the current "shipyard" block, but this block can be hooked up to conveyor tubes/item collectors to be fed fabricated blocks from inventories. You can select a blueprint that would fit within the bounding box (like you would be "landing" it) that you manually set and it would pop in a blue ghost. This is the exact opposite of the "mass/box delete" where block chunks disappear and leaves a red ghost (Or if you're damaged the chunk disappears and leaves a green ghost). The shipyard block now pulls from connected inventory to fill in the chunks when/where it can and once it has pulled enough it pops the chunk in. Like repairing from nothing. Maybe be able to link a computer to it so you can remote access elsewhere in the base.

I remember you saying you were taking inspiration from factorio for fabrication and this is a good way to implement it.

It can be as simple as a small setup in a garage with 1 assembler and 1 arc furnace churning out the parts as needed (early game friendly enough).

Or maybe, we have it build slower the further away from the block it gets, so you need to build some kind of extension to maintain construction efficiency on large builds (maybe have to be paired on opposite side of the bounding box?). Not absolutely necessary so if a player doesn't want to engage with that, they dont have to, but for people to learn/invest materially it will build a bit more efficiently (nothing too crazy). Maybe high power draw the more you link up so you have to think a bit before overdoing it and diminishing returns after so many "extensions" (extensions could be unique stand alone blocks that get inventory tubed up to it and linked to the shipyard, or simply more "shipyard" blocks linked to the main one so it shares a bounding box/entity).

This would have the added benefit of being able to dock a ship and "reclaim" all the blocks and it be fed from the "construction" area back into the connected inventories.

This makes bases/stations with efficient ship fabrication important targets (and would inspire emergent game play) for players/factions. And would give mechanical reason to have builds like these for big ships:

image image image

Uncle-Ulty commented 3 months ago

@Gallt

SERVO has built a drydock with this style some time ago. It's on workshop

image

Gallt commented 3 months ago

@Uncle-Ulty

I have the BP and its fantastic but it's currently function less right now. I meant actual mechanical reason to build like that. In starmade you build the ship-fabrication in a "C" shape around the size you wanted and had to space them out equally, so if you wanted capitals, you needed a big static structure that would build them. But you could also build garages and small moorings and just buy the ship from a store with cash. This helps keep people from just producing 1km or 5km ships wherever they wanted and made fabrication of the big boys a thing others can stop (The one PVP thing i participated in outside of random skirmishes was a raid on a cruiser-sized shipyard. We failed because our leader was not very smart and had 0 intel, but still.).

image

In Empyrion there was a "computer limit" for how many systems you can have (good god computers were expensive as heck), so ships had an arbitrary stopping point for how big they could get since you can only put so many "capital thrust XL teir 2s" on it without having to start getting rid of other systems if you made the hull too large and cumbersome. Plus you needed a flat "landing pad" big enough to place the blueprint on so you still needed a huge structure to spawn it in (super annoying to build the pad right, though you built things in secret int he factory menu). Space Engineers was like this in a lot of ways, though no limit on how many thrusters, just means more fuel/conveyors/ect and since each part needed a lot of components there was a LOT of chance to interrupt construction.

My point is, with the building system in place in Starship EVO, having facility-based spawning/fabrication would act like a soft balance for ships. It needs some level of complexity the larger you go though. You could have a massive 5km battleship with turret banks bigger than some peoples biggest ships. But now you also have to think about defending the 1 place, maybe in the universe, that can dock that specific beast if you need to repair it. Plus the raw value of the parts and logistics that had to go into the shipyard. Do you fly the big-boy to bully all the smaller players? Cool, but you also gotta worry about your shipyard being attacked too. This doesn't PREVENT you from building something huge, but you now have a prerequisite and investment needed to do so. And at small sizes it is still very simple for starting players and onboard them with the basic skills needed to eventually scale up.