Scraps will require Steam

After some deliberation, I want to give early notice that once the full version of Scraps is ready for release it’s going to require Steam. This will allow me to provide a better experience overall and reduce total development time as well. In case anyone has somehow avoided interaction with Steam so far, it’s the largest games distribution platform for PC, and it’s basically a game launcher which is also a store, plus it handles various additional game components like achievements and so on.

I know this may be an unpopular decision for some. When I started the Scraps Kickstarter I hadn’t been accepted onto Steam yet and I didn’t mention specifically how the game would be distributed because I didn’t yet know. In the interests of complete fairness I’ll make an offer: To anyone who donated to the Scraps Kickstarter, if you really don’t want to play the game at all if you have to launch it through Steam, then I’d be willing to refund your pledge. But please do read the following reasoning first.

Why Steam?

Steam doesn’t ask for exclusivity, but they’re smart businesspeople, and they try to gain exclusivity through features. Steam offers a lot of built-in, free to use features to developers – but of course you have to be using Steam to take advantage of them. I’ve looked at what they offer versus doing those things myself, and it’s worth the trade. Some examples:

– Steam is an automatic updater. It’s free to push updates for your game, and everyone can get them right away. Writing good software that checks for game updates and automatically downloads them, while also being reliable and secure, is hard. Kerbal Space Pogram went through I think three different updaters to try and get one that worked properly. There are still no decent third-party solutions out there that I can just buy either. With Steam, you’ll automatically get the latest version of Scraps whenever there’s an update, plus their servers and network code are way better than I could come up with.

– Steam is also cross-platform to the same platforms Scraps is on: Windows, Mac OS and Linux. Often other solutions are on one or two of those only.

– Steam has a built-in account system. So if you’re a Kickstarter backer that’s set to get a special item or effect, I can just apply it for your account. Accounts can also be useful for multiplayer. Writing a custom account system without Steam would be another major job.

– Steam has awesome multiplayer support, with tons of useful features. I’m not going to use this right away because I’m already using another system, but it could well be useful in the future.

What this means is that you’ll need to have Steam installed (it’s free) and run the full game from it. The builder demo will remain free and won’t require Steam. Steam may not be be the only place to buy Scraps – other places just need to be able to provide a Steam key. Buying through Steam is easy though; you can even do it through their website. Kickstarter backers will receive Steam keys to redeem when the game’s ready.

Currently I’m hoping to have something ready to release to the public around the end of the year, but I’ll see what I can do about getting something out to Kickstarter backers who bought the game to test before the public release (particularly since I wrote July as the estimate like an idiot – software is really hard to estimate!). Please don’t take that statement as a guarantee of release date, I’ve never given an official date and Scraps will be ready when it’s ready. Oh, that’s another built-in feature of Steam though – you can do limited releases to specific people.

Recent Work

Over the last two weeks one of the major things I did was rewrite the underlying health system to be more universal, so any object in the world can have a health script that gives it hit points and destructibility, and health now works in single-player as well as multiplayer. To test the new system, I made the cubes on the test map destructible:

It’s still possible to send them flying instead, when you’re not hitting them with damage from five cannons at once! They also drop some wreckage if they’re destroyed. You can pick up wreckage now too:

The pick-up effect if a bit silly, but at least it’s obvious when you’re collecting it. Parts of this stuff still need to be implemented fully in multiplayer.

I did some bug fixing. Here’s a fun one: When I picked up a container off a vehicle, the lids on every container would frantically fly around.

My fault for trying to be clever and add hinge joints I guess. Anyway, this bug was easy to fix, so bouncing container lids are safe.

Although I had destructible vehicle parts working in last fortnight’s update, they wouldn’t check for reliant parts. Now when a part gets destroyed, all reliant parts are destroyed as well. For example, hitting this extender block also takes out the containers:

Right now they all drop as wreckage, but I’m going to make it possible for complete parts to drop in this sort of situation. There’ll be an element of luck as to which type drops, so you can potentially get lucky and get a whole part to use rather than lesser-value wreckage to spend. It might be just the part you want, or it might not. I hope this system also inspires crazy franken-vehicles with a bunch of scavenged parts on them.

What else… I did some work on the object pooling that Scraps does. I noticed that performance with vehicles that have tons of guns is often not too bad, but when their weapon hit effect plays sometimes performance stutters. This was partly because the explosion effects were created each time. Now they’re kept and put away to be re-used which is a bit more efficient than creating them each time, and I also made the whole object pooling system more universal (I was already using it for projectiles) so I can easily pool just about anything.

See you next time.