1. Instruments of Destruction
  2. News
  3. Multi-Select, Copy-Paste, Rotation, and Local Co-Op?

Multi-Select, Copy-Paste, Rotation, and Local Co-Op?

Version 0.200 has one of the most-requested features for vehicle building: Multi-Selection and Copy-Paste. It's hard to overstate how much this speeds up vehicle editing, particularly for large/complex vehicles. Here's an overview video to show what's new. It may seem a bit dry, but I'd recommend skipping to the end if you don't want to watch the whole thing:

[previewyoutube][/previewyoutube]

In case you didn't watch, the game kinda has local co-op support as well. Not great support, but it's not too hard to create multiple vehicles that use different controls and load them at the same time (copy-paste really helps here), and the game's camera will do a decent job of keeping both players on-screen.

Let's drop the changelist here, then I'll ramble on about improving iteration speed after reviewing the important changes:

VERSION 0.200 CHANGES
Added multi-select to build mode
- [LMB] Drag to select multiple parts
- [Control + LMB] to add to selection
- [Shift + LMB] to toggle selection
Added editing support for multi-selected parts
- Only affects SIMILAR parts (same or resized parts, or wheels of same function)
Changed move [Arrow keys] to support multi-select
- No longer uses connected parts (see below), only what you have selected
- [Shift + Arrow Keys] now does 1/4 movement (instead of 1/2)
Added selected part rotation controls
- [Control + Arrow Keys] now does rotation
- [Shift + Control + Arrow Keys] uses 7.5 degree rotation (instead of 45)
Added shortcuts to select Connected [T] and Same Type [Shift + T] parts
Added Copy and Paste for parts [Control + C] and [Control + V]
- Pastes the new parts where the old ones were by default
Added relative part pasting [Control + Shift + V]
- Based on the highlighted connectors when you copy AND paste (Hold [Control] and you'll see it isolated)
Changed part setting pasting to [Shift + C] and [Shift + V]
- Applies to all selected parts (of a similar type)
Added shortcut to toggle rotation center [W]
Optimized start up time by moving map outline generation to first time you enter play mode
- Saves ~5 seconds to start game
Added some support for multiple cabs (no more single limit)
- First cab is still used for tracking player speed/etc
- Camera now tracks average cab position, will zoom out some based on overall cab bounding box
Made Tires and gears no longer cause sparks when hitting other parts
Added material override option for gears, flex wheel, and all the decorator parts
Added [Control+A] and [Control+I] shortcuts to select all and invert selection
Increased the part limit to 1500

Multi-select works pretty much like you'd expect, with LMB clicking and dragging as the main selection tool. Shift is a toggle modifier, Control is an add-only modifier. There's still one primary part selection, which is what you'll edit in the upper right. If you want to change the primary part selection without much trouble, use Control+LMB.

When you edit a part, it will attempt to edit all your selected parts, but it's pretty restrictive about what parts will get changed. Only similar parts will be edited currently, meaning things that are the same type, or contracted/expanded from each other, or wheels of the same class. I will likely add more "similar" matches, but these were the most obvious ones that don't require extra error checking.

Control + Arrow Keys no longer works like it use to. It's now the Rotate Parts control. As before, Shift increases the precision of moving/rotating parts. I'll add mouse-based movement/rotation of some kind soon, but this works well enough for the moment.

The old Control+C and Control+V functionality (Copy-Paste part settings) is now on Shift+C and Shift+V. I considered removing it, but it's still pretty useful if there are a lot of settings to copy/paste, and it's less confusing now because it just pastes to the current selection (unlike the previous version). It also uses the same part filtering as normal editing, so it only affects "similar" parts. As with normal editing, you'll see some particle effects when things are being edited.

Copy-Paste is straight-forward for the default functionality, but requires a bit of explanation for relative pasting. The important thing to do is HOLD Control for a bit before you copy, and before you paste. This will show the last highlighted connector in blue. That's the connector that the whole thing will be relative to. Note this is ONLY when using Shift+Control+V, normal Control+V just pastes at the original location. The video above shows it decently well, but it's best to just do it a few times with some simple cases and you'll get the idea.

Finally, the cab limit of 1 has been removed. Add as many as you like (1 is still the minimum). The Normal and Isometric camera modes will try to keep all the cabs in view, though it's using some pretty simple math at the moment, and if you pan with the camera it won't object. Combined with copy-paste making it easy to create multiple vehicles at once (or copy one and load another, then paste the old one), you can essentially play local co-op as long as you use a reasonable number of buttons per vehicle. The only real limit to the number of players is the number of control buttons (24). I will likely increase that to 32 sometime, but it's unlikely I'll go above that.

ITERATION SPEED

It's obvious from my early testing that it's a lot faster to edit vehicles with these changes. I thought there would be some improvement, but I definitely underestimated the impact of these combined changes. Speeding things up has been on my mind a lot lately, as I've been trying to work as fast as possible on two projects. I recently upgraded to what is essentially the fastest PC you can buy right now, with an i9-13900k, 64GB of DDR5 RAM, and a very fast NVME drive. [The graphics card is just a Radeon 6700XT, but the graphics card essentially doesn't matter to speeding up game development]

Even after upgrading, the speed of starting Instruments in Unity was still longer than I wanted, but I eventually found the major culprit was a change I made a few months ago to better support custom maps. I moved that code to only run when it's needed (when you start Play mode), and the time from making a change in Visual Studio to playing the game is now under 10 seconds (down from almost 20 before the upgrade). 10 seconds isn't much of a savings on it's own, but I usually make that VS-to--Unity transition 50 or more times a day. It might even be in the hundreds on a day when I'm tweaking a lot of values. Gaining an extra 10-30 minutes of productive work a day is definitely worth it to me, and it's harder to get distracted when the compile/start time is so short.

Getting back to the update for a moment: Version 0.191 recently changed the speed of another important game feature: Reconnecting a vehicle's parts after it's modified. It was about a 15x improvement in speed, and it means the delay when making changes with larger vehicles is a lot less annoying than previously. Because of this speed-up and the connector drawing no longer being a bottleneck, along with the new multi-select/copy-paste combo, I increased the max part limit to 1500. I don't anticipate increasing it much more, though it'll probably reach 2,000 when version 1.0 releases.

THE FUTURE OF VEHICLE EDITING

I expect to make a lot of smaller changes and tweaks and a few part additions, but this is probably the last major change for vehicle editing. There will be more parts, and some general usability improvements, but the majority of future vehicle editing changes will be focused on making the new user experience a lot nicer. That part probably won't happen for a while, as I want to have a better idea of the overall game experience before refining how the vehicle editing is revealed to players.

After the usual follow-up updates/fixes for the next week or so, I'll be moving on to expanding the game's content/potential. I don't know exactly what I'll focus on next, but I'll go over the whole roadmap and see what piques my interest.