1. Instruments of Destruction
  2. News

Instruments of Destruction News

Early July Development Updates (and I Did a Game Jam)

I started working on Instruments of Destruction in January of 2020, which means it's now been 3.5 years of development time. But not all of that time has been spent on Instruments. Of the 42 months since the game started, I'd estimate I've worked on the game between 30-34 months total. I've also worked on updates for Speed Demons (Apple Arcade-only until 2024), created + finished Devastator for PC/consoles, and created the Rhythm Storm demos.

After version 0.261 of Instruments in early June, I spent a little time taking some elements of Rhythm Storm to create a new "skeleton project". A skeleton project means a mostly empty project with some basic code for drawing stuff to the screen, playing sounds, getting input, etc. That took a bit over a day to trim it all down and clean it up a bit. Its purpose was to both allow me to have a basic project to start with in the 2023 GMTK Game Jam, and to have something to work from for future mini-projects.

"FUTURE PROJECTS"

The future ended up being the next day, and what I planned to be a 2-3 day "arcade" project turned into a 3 week game that I'll reveal in the future (it's done aside from sound effects needing work). In retrospect I should have finished it in 2 weeks, but I spent too much time waffling between various art styles/variations. Between that arcade project and a couple family vacations, I only worked on Instruments for a day or two more in June.

WRECKLESS

This past weekend was the GMTK Game Jam, and I spent about 38 of the 48 hour event working on a prototype. The theme for the jam was "roles reversed", and after coming up with 10 or so possible ideas, I went with one that felt the most obvious based on my experience: Creating a physics-driving game where you direct the traffic, but can't control your own car. You can read more about the game on the itch.io page. Here's a screenshot:



Wreckless is a fun toy/game, and I can check off "Do a Game Jam" from my bucketlist (I don't have one, but it would have been on there if I did). I'm glad it's over though, and I don't have any desire to keep working on Wreckless or do more game jams anytime soon.

A CLEAR PATH AHEAD

One thing I've realized while working on these various projects: I don't mind jumping between smaller projects, but I don't like having large not-quite-finished projects lingering in the background. I knew the GMTK Game Jam would be a turning point in my focus, and I'm glad the desire is there already: I want to finish Instruments of Destruction. I previously planned to have Rhythm Storm in the October Steam Next Fest, but now I'm less sure. If I really need a break from working on Instruments, it might happen, but I'm also fine pushing everything else off until Instruments is done.

Nothing has changed regarding what I'll be working on: A new/larger/improved single player campaign with dozens of pre-built fun vehicles to use, and redoing build-mode's UI. First up on the agenda is finishing up the work to support multiple vehicles at once (for real), and figuring out the best way to use vehicles built in the game for AI purposes (as both enemies and allies). There's a lot of work to do, but those are the two hardest remaining tasks by far, and I want to take them down now while my resolve is high.

I'm not sure how long everything will take or how frequent updates will be from here on out. But rest assured that getting Instruments of Destruction version 1.0 done ASAP (and done well, of course) is my primary objective.

Version 0.261 Changelist

Added new part: Invisible - everything attached to same rigidbody disappears at game start (but still runs logic)
- Intended for making it easier to create/edit complex logic (no need to hide most things inside other parts)
Added new smaller part: Side Piston S
Updated 8 more parameters to persist/copy when expanding/contracting parts
Added Spread parameter for Bomb Launcher, Cannon, Gauss, and X8 Rifle
Changed default spread for Bomb Launcher, Cannon, and Gauss
Fixed a number of slanted loops that got broken (SP islands)
Made mirror-rotation syncing more robust (mirror pasting in particular)
Fixed copy-paste of ropes being broken
Added sound override for lasers
Removed limits for flex panel offsets (length + width)
Added a selection box to make direction sensor mode more obvious (and allow a speed of 0)
Fixed slot 32 on sequencer being unselectable
Fixed pushing [ or ] making the hovered button activate
Fixed browse workshop pages not working for maps
Made mouse snap to center of screen when FPS mode is activated
EDITOR: Added support for looping paths
- There are now normal (closed/solid) loops, paths, and path-loops

FUN FACTOR Featured Vehicle Winners

In this update we'll take a look at the "Fun Factor" featured vehicles, reveal the next theme, and look at how the campaign progress is going. First, here's the video for the Fun Factor vehicles:

[previewyoutube][/previewyoutube]

FEATURED VEHICLES
  • Eldritch Lord - RequinRanger*
  • Hex-Storm - JacuJ*
  • Stinger - Stranger
  • Nothing Overkill Here - Snicker_Nee_Yo
  • Robot mk2 - Paudl
  • Laser Spear - DarkySilis
  • MCCH Ascended Crystal - Arad
  • Bardl (Object Launcher) - Mazapine
  • TCCH Great Worm - Arad
  • Flying Monster - Paudl
  • Spore V3 - PyroTeknikid
  • Shock Factor - Mr. Bigglesworth


HONORABLE MENTIONS
  • ShatterDrone - AjaxGamr
  • AI Whirligig Saw - Jussi
  • Dragon - Stranger
  • Mammoth - Stranger
  • Junkasaurus - St. Nicolas
  • Tornado Madness - Costello
  • Heavy Escavator - DrBean
  • LCCH Prometheus - Arad
  • Explosive Barrel Mortar - [Arch]B_Glo
  • Mole Shockwave Blaster - Kili
  • HCCH Octopoda mk2 - Arad
  • Gilded Ornithopod - [Arch]B_Glo
  • Junk Muncher - St. Nicolas
  • LCCH Wandering Crystal - Arad
  • 34-Hurricane - Dr.Boom Ultra
  • Flapjack - Zombie Ninja
  • MCMW Secutar C-E - Arad
  • Mosquito - Stranger
  • Spinning Laser Disc - Richard333
  • Harvest - ID24601Right
[Apologies if I misspelled anything in the list]

There were a lot of solid entries into this month's contest, and many close calls between the Honorable Mention and Featured Vehicle list. As I've been finding out over the past couple months, creating a vehicle that has a unique purpose/function, fun and easy-to-use controls, and a cool design is a difficult task. There were two vehicles that were especially impressive this time: Eldritch Lord from RequinRanger and Hex-Storm from JacuJ. Hex-Storm is particularly outstanding from a technical and design perspective, while Eldritch Lord is just so creative and mesmerizing to use. Both of them inspired me to create new vehicles for the campaign, and I anticipate creating a few more that are roughly based on other entries. Thanks to everyone who entered the contest, as this was a very enjoyable contest to try all the vehicles!

NEXT THEME: GRAPPLING HOOK
NEXT DEADLINE: JULY 19TH, 2023


The next theme will be "Grappling Hook". Use the grappling hook itself, or some other combination of ropes/winches and attachers or similar parts to create a machine that uses a grappling hook in some interesting way. Functionality, ease of use, and overall design will be the priorities. It can be a vehicle that climbs stuff (requiring tough structures is fine), one that tears structures down, or anything else as long as a grappling hook-like device is a key element. The deadline is July 19th.

CAMPAIGN PROGRESS

I've been back working on Instruments recently, with various changes to Rhythm Storm completed (more details and new videos on the RS Steam page on June 6th when the beta demo goes live). Mostly I've been working on additional vehicles, some inspired by the fun factor vehicles, and creating a new video for the game to highlight them. That video I'm not sure will be public, as it's mostly for entering PAX Rising and other online games festivals. Will see how it turns out before making a decision.

After the video is wrapped up, I'll continue working on more features for the campaign (objectives/enemy AI/new objects/etc). I have 44 vehicles that are pretty close to final, with 6 more planned. I hadn't been counting and didn't really expect to reach 50 vehicles, but it seems like I might as well aim for it now. I'm not sure all of them will make it into the campaign with their own missions, and some might just be reward vehicles or alternate vehicles. I expect the vehicle lineup to be one of the key selling points for the game, so I'll be polishing and refining them even after the campaign is initially released.

I'm unsure if the number of maps will be more or less than the number of vehicles. The current plan is for each map to have 2 missions, with the main one having 3 stars to achieve (simpler and different requirements than the current system), and the other being a score-based mission of some kind (time/destruction/enemies destroyed/etc). Some vehicles will definitely show up in multiple maps, and its likely you will be able to switch vehicles in the middle of certain missions.

That's a lot of stuff to work on, and I'll also have some sort of beta-testing before the full launch of the campaign. Before getting too deep into all that, I want to do a pass on bugs and other easy suggestions, so look for a new version in the next week or so.

Version 0.260 brings improved ground/terrain (but there's a catch)

Version 0.260 is heavily focused on new ground/terrain editing tools and improvements. These tools add more complexity/potential to terrain generation, and I know they are not exactly intuitive. I intend to make a video about the terrain stuff, but I just don't have enough time to do it this week (due to important non-work stuff).

Rather than delay the build itself, I decided to release it now, as there are some other gameplay fixes that I want to get out there sooner than later. There's also a new sandbox map, Oasis Test, that replaces Bridge Tester. It's not finished, but it shows some smoother, more "hilly" terrain and has a couple of the new path-style terrain loops. There's still a little refinement to do on the terrain editing, but it's pretty close to final. Next week I'll wrap up the refinements and do the tutorial video for Terrain mode (formerly known as Ground mode). Here's the full changelist:

GAME/BUILD MODE:
Fixed the up/down arrow between controls (made it swap instead of selecting both which made no sense)
Fixed flex treads not working with auto-braking
Fixed direction of changing override sounds in the UI being reversed
Fixed flex panel/triangle/etc not going up to 10 in length/width slider UI adjustments
Fixed fog still being active even when it shouldn't be
Fixed bug with camera mod in FPS mode not working when more than 1 is present

EDITOR:
Added new option to use loops as paths instead
- Creates a road/path instead of a loop
- Path points can be moved vertically (independently), unlike normal loops
- Path points have width, y-offset, and slope offset values
- Does not use Upper or Structure-based grass/rock generation
- Control over side generation is start/end/left/right, not per point
Added per-type filters per loop for grass/rock generation
Added Negate option (and Negate Offset) to cancel out grass/rock generation
Added some wider slope widths for loop generation (5x1, 8x1, and 12x1)
Added control over grass/rock tolerance curve slopes (Hold CTRL while editing to see/edit slope with LMB y-motion)
Increased maximum amount of grass points to 360k from 230k (rock points unchanged)
Changed how grass generates on low-angle slopes/edges/etc for more organic terrain
Changed Upper grass/rock generation to only generate within the loop boundaries (instead of everywhere)
Added "Noise Affects Top" option for loops
Made per-loop noise available for all loops
Added backup point highlighting for loops so you're less likely to accidentally select nothing (and deselect the loop)
Resvised how ground plane rock generation works to be simpler, faster, and better
Added tooltips to all more slider settings and named some a bit better
Added SHIFT functionality to editor sliders (slow increments for fine-tuning)
Changed loop mesh generation so triangles below a ground plane are now removed
Renamed Ground mode to Terrain mode to make it a little less ambiguous
Changed Skew settings to affect all loop vertical profile types, not just custom profiles
Fixed arrow keys not working to move camera in Normal cam mode in editors (and fixed Control not speeding up arrow keys)
Fixed editor camera switching to weird modes when going back and forth to build/play mode
- Known issue: orbit cam is still the best for testing, follow/iso change to orbit
Fixed issue with using skew and noise on the same loop
Fixed grid grass/rock generation to not generate stuff outside the borders of the loop (most obvious in ground-plane maps)
Fixed editing some values only changing the current loop instead of all the selected ones

If there are any urgent fixes (hopefully not), I'll be able to get them done for another 16 hours or so. After that, you'll have to wait 'til next Monday.

First Person View and more with the Camera Mod and Sound Mod parts

Version 0.256 brings a number of minor changes and fixes along with two more parts that let you customize vehicles in new ways. I'll focus on the two new parts, with the full changelist below:

CAMERA MOD AND FIRST PERSON

First Person view is finally possible in Instruments of Destruction thanks to the new Camera Mod part. Has it been worth the wait? So far I'm going to say no. The game isn't really designed around FP view, so the effects don't look good from up-close. You can customize a lot about the First Person view, including the FOV, turning limits and speed, and where it appears relative to the part. In general I expect this to only be used for specific weapons/modes of a vehicle, and I don't plan to use it for anything else. Of the existing cabs, only the first 3 have decent interior models, with the Tall Cab and Standard Cab being the best ones. Not sure I'll add interior models to the other cabs. It depends on whether I need them, and when/if I add custom mesh overrides per part/type for vehicles.

Alternatively, you can use the part to offset or override the other camera modes, with different settings for both Follow (the first 5 values) and Iso/Orbit camera modes (the next 5 ISO values) If you set it to Override Cab Pos, it ignores the cab(s) and uses the part position/orientation instead. Otherwise it functions as an offset. If you set it to Always On, it ignores the input. Otherwise the strength value of the input can be used to modify how fast the offsets are applied once activated (this doesn't apply to FP view).

SOUND MOD

The vehicles in Instruments have 10 looping sound slots. Any part with a Sound Override setting (wheels, lasers, pivots, pistons, etc) affects one of those looping sounds, and changing the Sound Override changes which slot is affected by that part. That hasn't changed. But it's important to realize the 10 looping sounds exist, as they are what the Sound Mod part affects. Each Sound Mod can affect 2 looping sounds/slots. Let's break down 1 slot and the various parameters:

Slot 1 (or 2): This is the looping sound SLOT, named for the default sound that is played there and what normally affects that loop. There are always 10 slots, though the sounds are generally silent unless a part causes them to change in volume/pitch. This is the most important parameter because it affects what you are editing/changing. If you have 2+ Sound Mod parts modifying the same slot, only 1 of them will work.

-Sound Effect: This is the audio sample that is used for that slot. When you change the SLOT above, this will change automatically to the DEFAULT sound effect (the default pitch/volume will also be updated). There are 10 default looping sounds (same names as the slots), then 20 more looping sounds to choose from. A lot of them are similar, but I think that's ok because the pitch in particular affects the sound character more strongly than might be obvious at first.

-Pitch: This is the base pitch for the looping sound. 0 means it's played at the default pitch (100% speed) for the sample. At -0.75, it's playing at 25% speed (aka 2 octaves down), while the max pitch is 2.00 (aka 300% speed 2 octaves up).

-Dynamic Pitch: If there's an input set for the [+] value (top left for slot 1, top right for slot 2), that input is multiplied by the dynamic pitch and ADDED to the base pitch value. So how much it affects the pitch depends on the base pitch. If the total pitch value gets to -1 or lower, it essentially stops the sound.

-Volume: This is the base volume for the looping sound. This is straightforward compared to pitch, though volumes above 1 don't do anything by default. 100% is the max volume, but because the loops are affected by other parts or dynamic volume, values above 1.0 are still potentially useful.

-Dynamic Volume: If there's an input set for the [UpArrow] value (bottom left for slot 1, bottom right for slot 2), the dynamic volume is multiplied by the input strength, and then that adds to the part-based volume before multiplying by the base volume to get the final volume. If no part/etc is affecting the volume, then it's a bit simpler: Input Strength x Dynamic Volume x (base) Volume = Output Loop Volume.

There's also a TEST IT button for each slot. That'll play the whole loop once using the base Pitch/Volume settings. Some loops are longer than others, but in-game it's harder to tell that (because they loop).

NOTES: A couple of the slots (Engine1 and Engine2) are affected by the vehicle's speed and cab settings. Some of the slots also have their pitch affected differently based on the dynamic part parameters. There's too many variables to list them all here, but keep that in mind if you just using the Sound Mod to override the base loop sounds and not control them directly. Different slots will sound slightly different (and Engine1/2 are affected by speed and the Cab Engine Volume setting). There is also no default smoothing for the Sound Mod part input stuff, so you'll need Output Modifiers/etc on the inputs if you want to do that kind of thing.

VERSION 0.256 FULL CHANGELIST
Added new part: Sound Mod - customize the various sound loops the player vehicle uses (10 loops)
Added new part: Camera Mod - enable FP cam or offset/rotate the camera (based on the camera mode)
Added optional outputs to most weapons (except lasers)
Added F11 third mode for collision rendering (blue = normal, red = no_collide, green = treads, yellow = tread tracks)
Added 6 new particle type variations for Particle Effects part
Added two new regions for custom islands (and changed Compound + Test Island region)
- Also made it possible to affect exposure/saturation/contrast per region
Added material override on physics modifier and overlapper
Improved how highlighting works in build mode so it's easier to pick between 2 nearby parts (slight distance penalty for current selected one)
Allow small thruster and foot/foot xl to rotate
Added a function to select duplicate parts in build mode (Shift+Y by default)
Fixed low-speed bonus push (and gravity) no longer being used for powered wheels (all sizes)
Fixed: PgUp/PgDn not using new rot increments
Fixed last 4 colors not loading correctly on restarting in build mode
Added another check to remove duplicate selections of a single part in build mode
Fixed wave generator with loops disabled still essentially looping
Fixed not reselecting the right part when playing and returning to build mode (for close/overlapping parts)

The focus continues to be on building lots of unique vehicles for the upcoming campaign. I'm definitely burnt out to some extent, but feel compelled to keep working on vehicles (have around 50 at various stages). I want to start working on more maps soon, but need to add some new terrain generation tools first (hills/paths in particular are not fun to build currently) and I've been starting to think about how to rearrange build mode's UI more. Still don't have everything worked out in my head in that regard, so it probably won't happen yet.

At some point I'll need some beta testing on the new set of vehicles and maps, but that's still a month or more away. I had been hoping to get the campaign done before the Steam Summer sale, but that's looking less likely because good vehicles just take so long to do well, and I have no reason to believe maps will be much faster. On the plus side, I plan to polish about 10 vehicles to essentially final quality, and if I don't find anything significant to add/improve/change, I'll finally move on to non-vehicle work.