thanks for your work buddy :).
I understand that vehicle construction would reqiure a lot more work.
Maybe one day some one might tackle this as I really do think it would be amazeing to have this feature in the game
thanks for your work buddy :).
I understand that vehicle construction would reqiure a lot more work.
Maybe one day some one might tackle this as I really do think it would be amazeing to have this feature in the game
Thank you for the work youâve put in.
I wasnât aware youâd added so much to foldables, so an extra thank you for that because that seems like an acceptable compromise, it wouldnât take long to park your mobile fortress outside a town, set your loot ânâ scoot up and ride it around, then fold it up and store it back in your fortress, so itâs an acceptable compromise for now, especially considering the work required to implement this.
You could do something funny like, say, turning this into a crafting recipe. You can âcraftâ or perhaps âbuildâ one vehicle into another. If the first vehicle has at least 1 tile of vehicle storage, it also gains a pair of x and y coordinated of its greatest square upon addition. During the crafting check, one of the âto be storedâ vehicle could be stored using a pointer to its vehicle object, and (on the assumption that vehicles donât autocontain their iteams) add an index for each item which will be stored in a seperate vector. To deconstruct it, you could simply require interaction with one of the storage tiles, and (as this would be a rare event) manually check for a feasible drop location of its âsquareâ. If one is found closeby, place it there. If not, tell the player to either move or flatten the area.
Of course, thatâs all dependent on a lot of things (I have no desire to trace anymore linker insanity after last semester), but, if you want to not change the root vehicle code fundamentally, this might be an easier option.
What if there was a vehicle bay part that does not trigger collisions with other vehicles, and to load a vehicle, you just drive it onto the bay. When vehicles drive, they look for other vehicles in the loading bay and move them along with the vehicle. If a vehicle in a loading bay has any parts outside of the loading bay, it has a chance of being left behind.
I imagine thatâll be how itâs done. However from what I understand that entire process is a pain in the ass to code and way too complicated. Otherwise itâd have been done by now. That is pretty much the best way to implement it though, as far as I know.
I was thinking about this today, and decided to have a look to see if anyone else was discussing itâŠ
Here are my thoughts on how it could work, with a potential solution to the vehicle-inna-vehicle problem. Might even look at trying to add it myself, but that definitely wonât happen until I graduate (in March).
New vehicle parts:
Mechanics (for large vehicles):
Mechanics (for lift gate):
This removes some of the challenge of trying to drive a vehicle into a small space, but I think that would end up being more frustrating than anything else, anyway. And it has the potential to avoid a whole slew of nasty coding challenges.
One major limitation is that you canât interact at all with stored vehicles, but I would be more than happy to deal with that in order to gain this capability!
Even just the lift-gate - being able to store small âlooter scootersâ and mobile welding apparatus would be great!.
Your wall of text skill has increased to 8!
Offtopic, but since this was dug up, I totally think that (rigid) connectors for vehicles would be an awesome thing to add. Non-colliding frame-like part on vehicles, and if connectors of two vehicles touch, they are connected. Since proper trailers would be a huge pain, this would be rigid, and the vehicles would be essentially treated as one. It would probably need both vehicles to be 90 degree aligned. It would be pretty awesome to add trash trucks(and modify trash containers into vehicles!), and then have a mobile RC-bomb/shopping cart carrier.
I just wish I could get to the point where I can drive an intact bicycle.
I was giving a thought on this and while paying attention to some already existing pieces of code, in particular:
Headlights (Stores directional information in a vehicle square)
Wreck generation (Combines plans coming from different vehicle templates)
An idea came to my mind so here goes. The following proposal will allow:
Integrate one vehicle into another as âfunctional wreckageâ.
Control docking orientation.
Full interaction with the docked vehicle (See below for optional features).
Deploy stored vehicles.
It would require new components (In what follows D is the vehicle to dock, G is the garage):
Landing Bay Door (LBD). Placed in an outer border frame of G. The goal is that D colliding here will trigger the Fusion Operation.
Landing Bay frame (LBF). Dedicated frames that should connect a Hooking Station to a Landing Bay Door into G. They will be replaced by the Fusion Code with the squares of D.
Hooking Station (HS). Placed into the Garage and requiring an orientation like Headlights (For simplicity could be restricted to 90Âș options only). It will mark the exact place at which D plan will be assembled into G. It will be also the component the player will interact to initiate the deploy operation.
Hooking Point (HP). The fusion and deploy code will assume this component is placed in the southernmost square of D. It will mark the point used to align D plan axis (From South to North) to Gâs HS selected orientation.
Docked Armor (DA). Ghost component added by the Fusion Code to label resulting vehicle parts to dissassemble by the deployment code. I choose Armor as itâs already the component that can float in almost any existing vehicle square. OFC, it still need to be tweaked to cohexist with another piece of armor in the same location and it should weight exactly the same as a LBF.
The Docking Procedure will be very simple:
Player rams D into a LBD on G. Collision code should evaluate FIRST this condition BEFORE triggering any damage to any vehicle. Optionally this could be only possible if LBD is in Open state.
The âfusion codeâ will proceed to integrate D plan into G plan. It will try to place Dâs HP next to Gâs HS obeying HS orientation and then proceed to check if ALL squares of D can replace a LBF into G. If there arenât enough LBF to hold each square of Dâs plan⊠A regular collision will happen.
If everything went smooth⊠The resulting âwreckageâ will be a vehicle based on G with a lot of LBF replaced by components of D marked with DA. Gâs HS will be next to a HP component surrounded by adjacent components marked with DA (HP is also âDAedâ). Player possition will be âcarried overâ based on were he was in D at the moment of the collision.
The Deployment Procedure will also be equally simple:
Initiated by the player activating an HS in G.
The Deploy Code will then locate the closest LBD in G on the direction marked by the HS. It will then create a new vehicle by possitioning next to that LBD the HP next to the HS triggered by the player and then export all Squares of G linked to that HP with the component DA. The process will fail if in the world there is any obstacle or creature in the resulting squares. On G, each square exported will be replaced by a LBF. DA component will also be removed as part of the export.
This setup has a few caveats that would require extra coding:
The Mechanic menu should gray the option of removing DA components.
The collision check just check the pressence of a single LBD to trigger the fusion. Increased reallism should require a width enough set of continuous LBDs so D could enter physically into G⊠I have the impression that this kind of checks would be maybe a waste of resources to be performed at each potential collision (and/or vehicle movement step).
It will be impossible to add new frames to D, unless specific options are added to the Mechanic menu to convert G squares into âDAedâ.
Player can become trapped in the vehicle if the bay isnât configured properly or D is not prepared to have valid access points once âfusedâ into G.
Vehicle performance module should be made sensitive to the pressence of DA component or energy/fuel/water/motive power/wheels of both vehicles will be shared.
Vehicle transition will be instant. A lot of code and extra management will be required at the very moment you want the world to add steps during each docking/deployment maneuver. This is, ofc, the worst aspect of this âsolutionâ⊠No fancy docking/deployment minigame will be needed.
Extra components should be added if players want to control if their bays are roofed or directly explosed to environment.
On the plus side this way to do things, which is just a way to morph vehicles together, should be relatively light to code as the resulting vehicle is basically defined as a regular one with a fex extra âtricksâ.
That sounds great, though I feel like the parts are more reflective of the underlying implementation rather than the functionality, and also perhaps a bit complex. Personally Iâd probably prefer a single in-frame part on D(that can coexist with anything else), and a single part on G, perhaps even of the same type, with the connected vehicles being treated equally(e.g. make a new vehicle, temporarily remove the underlying vehicles from the world, recreate them based on some original vehicle field). It could be a bit too easily accessible tbh, but would make detachment easier. Make it so that you can only connect at perhaps ±15 or so degrees from a 90-degree-aligned orientation(relative to parent vehicle), with the vehicle(or at least one of them) reorienting itself to a 90-degrees-aligned(relatively to parent vehicle) direction.
I feel like the parts are more reflective of the underlying implementation rather than the functionality, and also perhaps a bit complex.
Absolutely⊠I havenât inspected 1st hand the code myself (Or I would be just adding code to git for aproval :)). I have just used my knowledge as programmer, after seeing how vehicles work ingame, and âdistilledâ a suggestion that âscavengeâ as many existing features as possible. Thatâs why parts are so tied to the potential implementation and a bit far from the real gadgets involved into vehicle docking.
Personally I'd probably prefer a single in-frame part on D(that can coexist with anything else), and a single part on G, perhaps even of the same type, with the connected vehicles being treated equally(e.g. make a new vehicle, temporarily remove the underlying vehicles from the world, recreate them based on some original vehicle field)
That would require extensive data modification because you will have to âtemporarily storeâ the original configuration. Maybe I should ellaborate a bit more why I think each part is needed:
LBD: At its essence is just the spawn point on Deploy. Coincidently, most players on this thread instinctively think on the common scenario of the âTowing Vehicleâ were D enters and exits through the same access point but in reverse, thatâs why I also chose to make it the landing point. But IRL there are plenty of scenarios were vehicle storage is not done that way⊠The best example I can find is a Carrierâs Figther complement, that docks on one side but âdeploysâ through another. Notice how I deliberataly left LBD selection on spawn logic a bit fuzzy and atm just simply linked to âbe in frontâ of Gâs HS⊠With a more ellaborate model you can split LBDs into a landing point and a spawn point BOTH linked to the same HS to recreate complex vehicles in the future. Regarding your concerns about the realism of the docking operation, indeed, restricting angles could be added, but first I would start by restricting speeds (to just 16kph for example) not only for the sake of realism⊠But also to ONLY spend time checking LBDs pressence at this particular speeds (the 1st step with Cruise Control On forward or backwards) while most of the time the code sections ran when a vehicle is moving are the current ones.
LBF: Is just simply needed to designate a âcapacityâ so a big vehicle requires a bigger storage. Again Iâm following the average perception of the users requesting this feature, that is internal docking. Coming back to RL, for example, the external hardpoints used for missiles are an example of 1 vehicle âstoredâ in another without the needs of âLBFsâ. This could also be mimicked with my suggestion if the HS was at the outer border and also detected as a valid âcollision pointâ to trigger the fusion, this time the Fusion Code will not check, nor replace LBFs (But notice that the resulting plan still needs to label one of the vehicle squares using DAâs to distinguish how to split them⊠Even more, this DA should be new as, on Deploy, shouldnât generate LBFs back on G).
HS: Itâs basically the âboundaryâ between vehicles. I added âdirectionalityâ because, on a Carrier Vehicle, the âdeployment vectorâ do not have to necesarily match the movement vector of the Garage (What happens with some Racing Bikes transport trailers some teams use⊠The bikes enter/exit through lateral ramps). Itâs still, ofc, a requirement to perform deployment/storage operations WHILE on the move IRL. I chose to use the Headlight Dialog because itâs capable of âstoringâ facing information into a given vehicle square. In principle a simpler âwidgetâ were the user selects front, back, left or right orientation for the HS is enough, as arbitrary angled docking bays do not work well with the âsquaredâ model vehicles use on DDA.
HP: After a second thought, in fact I agree with you⊠This component is superfluous for now⊠As a basic logic of âDocking Point will be the central southernmost square of Dâs planâ will work most of the time (With the extra advantage of NOT having to alter any of the currently created default vehicle templates). The problem are even width vehicles, which should require an arbitrary decission on which square to select as HP. Nonetheless, and looking ahead, the original idea of an specific HP component was to allow for orthogonal docking were D plan final orientation in the resulting vehicle wasnât only controlled by HS orientation (Think on how a motorbike sidecar is attached, in comparison with how you drive-in a car into a towing truck).
DA: Is, by far, the most imporant component. Itâs critical to be able to distinguish what to split from what WITHOUT actually having to modify the current way vehicles function as single entities, which, in turn allows easy to access operations to D while docked (Like repairing it or accessing its storage). Itâs also needed so the total weight of the final vehicle respects the basic premise of D + G, as we are destroying LBFs on fusion. If I just add a logical flag/state/whatever the information about the weight to pay for storage would be lost. Notice that this simple mplementation is far from perfect, for example, If you design a âshared bayâ with multiple HS in them and 2 vehicles stored at different times end been adjacent, the resulting âwreckageâ will be deployed at the same time by operating ANY of the HSs. It would fall in playerâs hand to be carefull when mixing multiple HS on the same G. Notice that the source of most problems is precissely accessing Dâs features while docked WITHOUT mixing operative stats of D with G but, again, a lot of users on this thread requested precissely this (In fact the main reassons IRL to dock one vehicle into another is usually to perform maintenance/refuel/rearm and/or that the smaller vehicle benefits from the superior armor/defenses/operative range of the Garage).
EDIT: Forgot one detail⊠The names I use are just functional. If it helps visualizing, for example, DA could appear ingame as âDocking Harnessâ which will loosely ressemble the different implementations used IRL to secure Dâs hull to Gâs to prevent violent motions from making it damage itself or the hangar interior by collision. The same could be applied to HS⊠That could translate to âwinchâ, âclampâ, âhardpointâ, etc.
This would be great to see ingame at some point
I think I could use a bit of a mockup of your idea, itâs quite confusing, especially when you use symbolic names. I think I get the gist of it, for the most part, though. That said, personally, I would still want to see simple rigid connectors, like this mockup of mine, for storage of bicycles, trash containers, shopping carts, and other manually-moved objects.
On a related note, moving furniture to the vehicle architecture, like discussed with kevin briefly in a thread I made a while ago, could be a good idea.
Also want to +1 this idea.
All I want is to be able to put a shopping cart in my RV, without disassembling it and reassembling it every time.
[quote=âLanceo90, post:34, topic:7513â]Also want to +1 this idea.
All I want is to be able to put a shopping cart in my RV, without disassembling it and reassembling it every time.[/quote]
Currently doable with folding vehicles. Casters, foldable frame, foldable shopping basket, controls (to fold/unfold), and youâve got that right now.
I know this is a feature a lot of people want, but unless someone is willing to take the headache of getting it all working (I think many people are underestimating what a pain itâll be), I donât see it happening any time soon.
Yeah, it probably will be a pain, though assuming ragamer did indeed look at the code and knows what s/heâs saying, it might be less of one than you think. Particularly rigid connectors like the one I had in mind might just be doable without being insanely difficult. Once I work through what Iâm working through, I might take a look at related code and perhaps try implementing it if it seems doable for me.
And speaking of foldable vehicles, they could use a bit of work. Bigger batteries need to be disallowed for foldable vehicles, if current vehicle is foldable, list foldable parts before unfoldable, maybe make the really small engines and tanks foldable?
I have looked at the code, specifically with an eye to doing this, itâs going to be a PITA.
Rigid links wouldnât be hard at all though, it would just end up with somewhat weird characteristics.