This game has been Greenlit by the Community!

The community has shown their interest in this game. Valve has reached out to this developer to start moving things toward release on Steam.

July 8 - Nition


Testing wreckage spawning with placeholder wreckage models.

A scrap is a fight, but scrap is also junk that can be reused. When a vehicle part is destroyed in a Scraps game, it'll drop some wreckage. Nothing like the amount you see above, but enough that maybe you can scavenge some and get back to an evac pad, where you can spend it on improving your vehicle.

To pick up scrap, you'll need something to put it in. So far, I've made this tall container:

Pretty much like something you'd buy at Storage Box.

The white fill bars and plastic viewing window help you - and your enemies - see how much scrap you're carrying. The lid also bounces around as you drive:

Scrap that you pick up is divided evenly between all your containers. Scrap does have some weight, so putting all your containers on one side may not be a good idea.

I'm going to anticipate someone suggesting an even cooler way of handling scrap collection by both proposing and debunking it as an option now: Wouldn't it be cool if the scrap you collected actually went into your containers? Like, the actual scrap piece sat in a container with its own physics, instead of this abstract representation on how full your containers are?

Yes it would. It would be the coolest. You could try to carry too much while driving carefully like a combat version of Tricky Truck[]. You could ram people who were carrying too much to topple some of their scrap and steal it.

There are two reason why that wouldn't work unfortunately, one much bigger than the other:
  • Minor reason: Getting physics-based scrap into containers. Dropping scrap correctly into containers on moving vehicles would be hard, but working out where there's space to spawn scrap inside a container would be a lot worse. There'd probably be some cases where you picked up some scrap but it didn't make it into the container properly even when it clearly should have.
  • Major reason: Network bandwidth. When scrap is spawned as a part is destroyed, it does its own special deterministic physics, ignores anything moving, and the server tells it exactly where to go (it's partly random, but the server sends a seed to use, like how putting a seed into Minecraft always gets you the same "random" map).
    Using actual physics-based scrap pieces flying all over the place, with Unity's physics being non-deterministic as well, would just be impossible. If scrap was just cosmetic, it'd be fine because it wouldn't matter if the server's scrap pieces didn't match the clients, but it can be picked up by anyone. So the positional data of every active piece of scrap on the map would have to be synchronised over the network all the time.
So that's why I'm using a more abstract representation here. You can still destroy their container to get the scrap that's in it!


New: Half-height blocks and slope blocks.

I also made a few more cosmetic blocks this week. I will put these into the demo, but not right now: It's not in a good place to update right now because my demo branch is getting too out-of-date to merge changes into, but in the main game the vehicle building and testing process is a little broken and not tested properly since I've made lots of changes. When things are more stable I'll be able to put this stuff into the demo.

This isn't Minecraft - We have slopes! This would be even better if the game calculated aerodynamics, which is a future possibility.

I have one issue with half blocks that I'm not sure of the ideal way to solve. It's easiest to show via image:

Any clever suggestions are welcome. For now, I've omitted snap points from the sides of half-blocks, which limits some arrangements but at least everything sits nicely.

June 21 - Nition

Recently I’ve been working mainly on multiplayer in Scraps.

Here’s a video update on what’s done so far and how things are working.

I’ve also put up a minor update to the builder demo ([]), mainly because it includes a couple more language translations (thanks August and Floris), but it also has a few bug fixes as well. Demo changelog:

2014-06 –
- Updated engine from Unity 4.2 to 4.5
- Added Dutch and Norwegian language translations (likely to be some issues with layout in some places, but the text is there)
- Canged weapon default link state to All instead of None
- In-game camera control tweaks
Bug Fixes:
- Fixed projectiles flying through the glass on edge walls
- Fixed a texturing bug on the medium chassis
- Fixed centre of mass bug with rotated parts (thanks Carbon on the forums for finding this and the one below)
- Fixed a bug with snap points being disabled in places where armour could actually fit

May 9 - Nition

I designed Scraps with multiple language support in mind, and over time a few different people have offered to do translations, but there were a few things missing that I wasn't ready to commit to just yet. After a new thread[] was created about language support recently I decided that there wasn't really any harm in enabling people to create translations if they want to.

I didn't really expect anyone to actually translate the whole English file as there's quite a lot of text in the game already, and I can't offer any compensation in return. Almost immediately though I got a full Romanian file thanks to Vladdy​290 on the forum, with everything properly translated (as far as I can tell at least) and every formatting mark left in place exactly where it was required. I'm super impressed!

I've created an official translations thread here which has the required information[].

There are a few things that language support still doesn't cover:

  • Only English-style plurals are currently supported; that is, a version of the text for one of something, and another version for anything else.
  • In-game, part names are not yet translated. Neither is the controls list on the control options screen (although the information at the bottom is).
  • Some parts of the game will automatically resize their buttons etc to fit any length of text, but others won't at the moment. If translation text ends up too long, I can adjust the space later, but if possible please try to keep things within reasonable length. e.g. Don't translate “OK” into the equivalent of “That is absolutely fine with me” if you can make it shorter.
There are a few other minor things, like Arabic text being left aligned in some places where it should be right aligned. Nothing that's really hard to fix, but other tasks have higher priority than minor language fixes for now. It works enough that other language files can be dropped in and tested at least.

I've put up a builder demo update that has the multi-language support (Options->Game->Language) and I've dropped in the Romanian translation from Vladdy​290 as an initial extra option. It also has a few other minor changes, mostly in response to reported issues with the last version:

2014-04 -
- Added basic multiple language support
- Improved exception handling for some file operations
- Added game credits button on the main menu
- Improved engine sound when going over max speed (e.g. travelling down steep hills)
Bug Fixes:
- Fixed a graphics options bug with view distance
- Fixed a bug with ground landing effects playing when they shouldn't
- Fixed a bug with ground movement effects not playing when they should



Almost forgot: I've also put the octree I wrote for Scraps up on GitHub under a BSD licence. It's a dynamic, loose, general-purpose octree implementation. Someone can probably make it faster and better than I managed, but it may be useful to some Unity or C# devs. It's easy to use and pretty efficient. Get it here[].

April 20 - Nition

I've integrated some of my recent work on Scraps into the builder demo release, which as always is available here[]. In this release:

2014-04 -
- Weapon tracers are now a post-render effect. Improves visibility at distance, and faster to process
- Added camera shake effects
- Added more terrain dirt FX
- Removed skidmarks effect
- Some graphics tweaks
- Added a screenshot key (F2 by default).
- Price is now in scrap (S) instead of dollars ($)
- Further performance improvements for loading complex vehicles, and picking up or removing lots of parts at once
- Vehicle price previews in save/load/select dialogs
Bug Fixes:
- Fixed view clipping through some objects. General improvements to looking around in-game
- Part tooltips now show mass in the selected way (kg or lb), instead of always kg
- Added workaround for a bug which caused weapon hit effects to sometimes appear in the wrong place (related Unity bug: {LINK REMOVED - Please don't spam, and be wary of scams.}
- Minor engine sound fixes

The skidmarks code was always bad (complex and performance-intensive) and it also didn't port well to the way I'm doing FX now: Vehicles used to create their own terrain FX, but now the terrain creates FX for any objects on it (see this post[] for some more on that). Skid sounds and smoke remain.

The skidmarks code was also probably the only thing in Scraps that I didn't really write myself - It was modified code originally from the Unity Car Tutorial (Unity's tutorial code is free to reuse), and they'd used an... interesting method of drawing the skidmarks. Their method was clever, but it basically created a 3D mesh out of all the skidmarks in the scene every frame and then threw it out and did it again the next frame. Those thrown-out meshes would then get disposed of by the C# garbage collecter[], using up a whole bunch of frame time a couple of times every second.

Unity's Car Tutorial shown here taking 25% of a frame to garbage collect all the old skidmarks. Scraps' skidmarks code was based on this, giving it similar issues. One can only hope that their engine code is better than some of their scripting...

So that's been thrown out, but some other new dirt FX are in. The new camera shake effect (also mentioned here[]) is pretty nice and IMO adds a much better feeling of force to vehicles with big arrays of weapons. It does have limits on it, so it'll never shake the screen to the extent that it becomes unplayable.

I'm not adding anything super exciting (like new parts) right now because I'm focusing on getting the actual game working well first: I like the freedom of being the sole developer on Scraps but I do have to prioritise carefully. So, I apologise that these playable updates aren't super interesting and probably won't be for a while.

Behind the scenes, things are a bit more interesting. I've been working largely on the multiplayer lobby for the past couple of weeks. In the lobby the host can choose a map, select the scrap cost limit etc, and players can choose a vehicle, chat, and indicate they're ready. The basic  networking setup is working and it's possible to start games, connect to them etc, but the whole lobby area still needs some work before we can finally make it right into an actual game.

The multiplayer prototype I have is sort of the opposite of that - it's like a stripped-down version of Scraps that's pretty much only the in-game stuff. I've also been tweaking some of the networking system there, but that still all needs to be ported into the main game. In the prototype, everyone drives a set type of vehicle, which is much simpler than the main game where people's vehicle choices need to be passed around, verified by the server, shown correctly on everyone's computers etc.

The server needs to load up vehicles it receives to verify that they're within the cost requirements and haven't been messed with somehow (they shouldn't have unknown parts, floating parts, or parts overlapping). It can skip the visual stuff, but it still shares most of the loading code with build-screen vehicle loading, so that's spurred the further reduction in loading times that you'll see with big vehicles in the latest builder update.

Playing Games
There are three options for a multiplayer game of Scraps:

Join: Find a game and join it via LAN or Internet.

Dedicated Server:  Scraps has a server application that can be run separately to the main game, so that a PC can host a game without someone playing. It has an optional GUI that shows settings and status messages, but can also be run in no-GUI mode where it's all in the background.

Host: From Scraps, you can host a LAN or Internet game. Hosting actually starts a local no-GUI server in the background and connects you to it, but the process happens invisibly. You'll be dropped into a game lobby where you can then choose the details of the game. This is similar to the Dedicated Server option except that the server PC also has a player, and that player has some extra privileges (namely, they can change game settings).

The intention is for Scraps to have a Master Server online, so that anyone can create an Internet game and register it with the Master Server for other players to find. People looking for a game to join can then search for games and find people's servers. Of course you can also play locally on a LAN.

March 23 - Nition

As mentioned in the last fortnightly update, work in the last couple of weeks has been a bit disrupted since I was also moving house.

Here's a video showing a bit of new content though.

What I called "Repair Pads" last time should probably be called Evac Pads. I could allow them to repair your vehicle just by sitting on top of it, but there are a few potential issues with that system:

- It could repair damaged parts, but it probably shouldn't magically re-create destroyed parts
- You'd have no opportunity to spend collected scrap metal on new parts, only on repairs
- Most importantly I think, it'd be easy for one player or team of players to sit on a repair pad and gain a big advantage against everyone else trying to get to it

So at the moment at least, repair pads are "evac pads." Entering its area of influence "calls an evac", which starts a countdown timer until the evac arrives. At the end of the countdown, the actual evac starts and you're beamed up back to the build screen, where you can repair, rebuild, and then re-deploy at any time. You can exit the evac pad at any time during the countdown or beam up sequence to cancel the process.

< 1  2  3  4 >
Showing 1-5 of 17 entries