1. Instruments of Destruction
  2. News

Instruments of Destruction News

Auvic Rocks! Steam Nomination Awards Are Now Open!

Steam has a year-end awards thing, and apparently they let developers "suggest" a category for fans to nominate their game in. I looked through all the categories, and there's nothing that says "Destruction" or "Physics" in it, so there's only one category where Instruments really belongs, and that's in the Best Soundtrack category. I feel no shame in saying this because I didn't work on the soundtrack.

Auvic is one of my favorite musicians of all-time, and I feel incredibly lucky to have worked with him on multiple games. I first contacted him in 2018 to see if he wanted to work on Speed Demons after being a fan of his songs for years. He said yes even though I had very little to show of the game, and his song helped the reveal trailer for Speed Demons become the most popular video I'd ever posted on Twitter (up until the videos for Instruments, see below). That game eventually made it's way onto Apple Arcade, where it was featured multiple times for it's Outstanding Audio (Apple's words). I can say for sure it had nothing to do with the sound effects. His soundtrack for Speed Demons was sensational, and when I started working on Instruments of Destruction I immediately asked if he'd be interested in doing a soundtrack for it as well.

The soundtrack for Instruments of Destruction is amazing and massive, so it got split up into two albums on Spotify. It's on other places too, but I use Spotify and that's how I found Auvic many years ago:

SOUNDTRACK PART ONE

SOUNDTRACK PART TWO

[My personal favorites are Our Horizon, Manic Designs, and Risen Apparatus.]

Auvic is also responsible for the Instruments of Destruction theme song (along with the vocal talents of Pipo Fernandez), which you can hear in the Release Date Trailer below:

[previewyoutube][/previewyoutube]
And this is an old trailer with the old visual style, but it features another song of Auvic's (a remix of Moonlight Sonata):

[previewyoutube][/previewyoutube]
He's got tons of other varied and amazing music if you're interested in hearing more on Spotify, Bandcamp, and all the other music sites. And we're already working together on yet another game project! So yeah, *please* nominate Instruments of Destruction for best soundtrack.

Thank you!
Luke

Version 0.202: Smoothing Out Some Rough Edges

Version 0.202 brings a number of features and fixes aimed at smoothing out some rough edges in Instruments of Destruction. There are 3 new logic parts, another flex-piece that lets you build larger curved surfaces (with relatively smooth collision), and a big improvement to the impact system. Let's start with that last thing, then we'll come back to the changelist and the new parts:



The big impact system arrived a month or two ago, but I decided to upgrade it for this update because I was never quite satisfied with the previous version. Now instead of creating an instant explosion, there's a shockwave that expands over a short time. Combined with a tweaked version of the visual shockwave and making effects scale down during the impact (prevents effect popping, still looks great), big impacts are a lot more satisfying than previously. I could probably increase the visual intensity of the expanding portion a bit, but I'll wait to see how big the impacts are with the crazier vehicles you guys are making.

That's just an improvement to an existing feature. Let's take a look at the new parts after the full changelist:

NEW PARTS
  • Added new logic part: Proximity Sensor
  • Added new logic part: Leveling Sensor
  • Added new logic part: Output Smoothing
  • Added new part: Variable Arc - 90 degree turn with custom radius, decent collision


IMPROVEMENTS
  • Revised the mega impact so it's an actual shockwave that spreads over time
  • Changed build mode to keep the part selection after playing game
  • Added Cab advanced mode camera shake setting
  • Added toggle option for logic gates (current = normal)
  • Fixed Debug Draw not saving/loading after you play the game

BUG FIXES
  • Fixed always-on lights (and other similar things) not triggering toggle inputs/timers on startup
  • Fixed paste-copied-settings number being wrong
  • Fixed changing physical controls not affecting the whole selection
  • Fixed attachers creating a debug message when trying to attach to the ground (could lag the game in certain cases)
  • Fixed motor linkage 11 not working
  • Changed variable length parts to extend a bit further (while playing)
  • Added some safety code to slow down crazy vehicles (caused by variable length pieces and treads)

EDITOR TWEAKS/FIXES
  • Editors: Made shift/control work consistently with build mode (shift->add, control->toggle)
  • Editors: Made it easier to place entities/structures on meshes again
  • Editors: Fixed clicking on something not always selecting it
  • Editors: Fixed undo not affecting meshes
  • Editors: Fixed ground plane preventing you from updating the placement position
  • Editors: Fixed annoying jump in position when first selecting something in ground mode


The new logic parts need a little explanation, but I'll try to keep them brief:

PROXIMITY SENSOR - Measures the distance between other nearby Proximity Sensors. There are two modes: Emitter and Detector. The Detector mode is the part that triggers the outputs, and it only measures distance to Emitters mode parts. It's less confusing than it sounds, I think. Just place two of them, then set one to Detector and one to Emitter.

ROTATION SENSOR - This has been requested a bunch for making vehicles align to the ground (rotation-wise). I tried to set it up so it fits that purpose, but it could probably be used for other things. There are a number of options/settings, but the easiest way to learn it is to turn on Debug Drawing and just try it out.

OUTPUT SMOOTHING - This has two visual bars, and they tell you pretty everything you need to know. The first is the input, the second is the output. You can smooth the output with a custom fade in/out time, and also invert the output (it does a "1 - x" function, as negative input/output values don't mean anything).

The final new part is the Flex Arc. It's a variable sized arc, and it has decently accurate collision so it can be used in more situations than the standard Arc 90 pieces.

ROADMAP AND FUTURE UPDATES

This update has 4 new significant parts, and it's likely one of the last to include a significant number of new parts. Version 0.202 completes the main portion of the SUPER VEHICLE BUILDING section from the Roadmap, and I ended up completing part of some other major updates along the way (LOCAL MULTIPLAYER and FLYING VEHICLES). I've been using the Roadmap as a reference for the overall direction of the game, and have moved away from the Trello.

I don't really know what section I'll be working on next, though Combat + Conflict does seem like the most likely, because it sounds fun/interesting to work on. But I'll take a little time to think about it before jumping in. I've been enjoying working on the game in shorter bursts, so I plan to continue that for a while. The side project I've been working will likely be revealed in the next month or so, and I plan to keep jumping between the two for a long time to come.

Version 0.201a changelist

Fixed multiple problem with flex beam (and rope) deleting/placement/etc
Fixed a problem with ropes/flex beams and undo mode
Fixed Flex beams getting weird with ctrl+shift+v
Fixed mirror mode not affecting drag-select
Fixed connectors not updating after 1/2 move/rotate
Fixed being unable to rotate the double wheel
Fixed deleting everything preventing you from doing anything else with the vehicle (or undoing it)
Fixed a couple bugs with loading a cabless vehicle

0.201 Changelist

Added new part: Basic Speaker featuring 8 different sounds and pitch/volume control (in Activated)
Removed copied settings when placing things (Control shortcut)
Changed mirrored mode to always rotate/move mirrored
Made mirrored mode more visually obvious
Forced edited vehicles to double-load if number of parts changes, or you place any new parts
- This fixes issues with motors/treads not working correctly the first time you play with them
Added material override to variable pipes and light beams
Fixed starting rotation not affecting all selected parts min/max rotation (only affected main one)
Fixed beam rotation going funky
Added Pos Snap (snaps the selected parts to 3D grid, based on the primary selected part)
Added Rot Snap (snaps to nearest orthogonal alignment, based on primary selected part and rotation mode)
Added option to change movement size [ + ]
Added option to disable ground effects for vehicles (cab advanced mode)
Added mouse-controlled movement and rotation (1 and 2 on main keyboard)
Added option to disable effects for Thruster
Added subtle trail effect to omni-wing part (can be disabled)
Added two new super-bouncy override materials
Made wrecking balls and steel orbs have material override option
Added connector-relative rotation for selected parts (Control + [ or Control + ])
- This is intended for after you paste and things aren't lined up the way you expected, but it's useful other times as well
Fixed some issues with ropes and bridge joints disappearing

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.