The latest Scraps update adds a little air control, a save format upgrade, tweaked weapon hit forces, and a terrain graphics upgrade.

Full changelog:

2016-3 – 0.5.4.0

– Terrain graphics upgrade. But no more switching to greyscale terrain when in low grav mode I’m afraid

– Magically, vehicle save files are now also PNG image screenshots of the vehicle itself

– Separated weapon recoil and hit force, so they don’t have to be the same anymore. Reduced hit forces in general – should help with Medium Cannon spam in particular

– Rewrote the weapon movement range calculation AGAIN. More bugs fixed with it. Hopefully very correct and consistent now

– Added a little air control: Pitch = Throttle forward/back. Roll = Throttle + Steering. More engine power gives more control

– Finally the test map side road is actually 100% flat, right up to the ramp

– Updated uLink and Steamworks.NET to their latest versions

– Added grass density graphics option

Bug Fixes:

– Tooltips now update their text to match language changes without requiring a restart

– Fixed mass from held wreckage not being subtracted after wreckage was offloaded on evac

– Stopped evac pad ambient sound from playing when the pad is turned off (Test map)

Air control

I showed this off in the last update, but now it’s live. You can control your pitch with throttle and your roll with turning. You can’t control yaw – it’s a car, not a plane OK? Practising in Low Gravity mode is a nice way to get the hang of it.

Recoil

Weapon recoil and hit forces used to always be the same, which was arguably more realistic, but it meant that if I wanted a big kick on a weapon it also had to have a big hit. Often because of hit angles and multiple shots hitting in one spot, the hits would end up even worse than the recoil.

I’ve changed it so that I can set them separately, and reduced some hit forces. Hopefully there’s less of a problem with Medium Cannons and Plasma in particular throwing vehicles around now. Of course you can still push your enemies around to some extent.

Save Format

Those are actual save files. When you save vehicles now they’ll end up in a new format, which is also a png image – so now it’s easier to see what a vehicle is if you’re sharing it around.

The easiest way to see your vehicle saves is probably to open the Save/Load dialog in the game and click the button at the top right which takes you straight there.

Hosting these on an image host will most likely break them – you can try, but you’re probably better off using a file host of some sort. Anything that won’t try to modify or re-encode the image file.

Dev note: There are several ways to do something like this. Gimbal has awesome image saves, as does the Spore creature creator. One potential method is to use the image’s metadata fields to add your custom data, although sometimes those have size limits. Another method is to use something in the image itself that’s invisible or hard to see, like something in the alpha channel or the least significant bits. Or even just extend the image to have the data encoded in an extra part of it, using all the available colour data.

However, I’ve done this with the dumbest and simplest method possible: Just dumping all the save data at the end of the file! It was one of the options I’ve read about so it’s not totally unheard of. Sure image hosts will probably break it but all those other methods get broken by image hosts anyway. Seems like as long as you still end the png part of the file properly (works for JPEG too!), every PNG reader that I’ve come across reads the files with no problem. Scraps just ignores the image part and looks for my special marker, then starts reading the save from there.

Graphics

Scraps’ terrain graphics have always been pretty meh, and I wanted to get a better system for new stuff, so I’ve also back-ported that to the existing maps.

What’s actually better? Well, there’s nice perlin shadowing on things (how much there is varies with the terrain texture):

Although I had to get rid of the black outline FX on terrain.

Bumpy stuff is… bumpier:

And you can see there that the grass is better too, not just denser. The default Unity grass shader is a simple cutout thing: It takes a texture and says OK, if the alpha value is above whatever, I’ll show that pixel, otherwise I won’t show it. That gives really crisp but jagged looking grass. It also means that when the terrain engine tries to fade out distant grass, instead of getting semi-transparent grass you get grass that sort of gets cut down more and more at the edges.

I did a literally one-minute edit to the grass shader to make it do “proper” transparency, and the difference is huge!

I don’t think Unity has updated their grass shader for a long time. There’s a comment about Mac OS 10.4 in there. I was sure I must’ve killed performance as a tradeoff, but if anything the grass performance seems to be slightly better. Here are my replacement shaders if any Unity dev wants them, it’s like jumping from 2002 to 2012 in one fell swoop: https://github.com/Nition/UnityTerrainGrass

There’s also now texture blending based on heightmaps:

What’s happening above is, when there’s a mixture of two different terrain textures, it used to just blend, but now it’ll show the higher parts of the texture first (based on a greyscale height map I supply it), so the new texture sort if “raises up” out of the other one as it increases in opacity. For Unity devs, most of these new features come from using Tomasz Stobierski’s Relief Terrain Pack (it’s not exactly drop-in-and-your-terrain-looks-amazing, but it is very good once you bend it to your will).

I also wrote some custom terrain editing tools of my own to let me make stuff faster:

The heightmaps and splatmaps (texture layout) used there are pre-created – my tools aren’t that amazing – but it automates a whole bunch of stuff that was previously tedious. It also means I can edit heightmaps and splats and basically just click to update. Without much more work a terrain like the one above starts looking pretty good:

Still working on a new single-player mode.