Scraps is a vehicle combat game where you can build your vehicle from functional parts, with design as your ally and physics as your accomplice. Compete against human or AI opponents in a combat arena, and scavenge from their wreckage to repair and upgrade your own creation.
User reviews:
Overall:
Mostly Positive (82 reviews) - 70% of the 82 user reviews for this game are positive.
Release Date: Jul 7, 2015

Sign in to add this item to your wishlist, follow it, or mark it as not interested

Early Access Game

Get instant access and start playing; get involved with this game as it develops.

Note: This Early Access game is not complete and may or may not change further. If you are not excited to play this game in its current state, then you should wait to see if the game progresses further in development. Learn more

What the developers have to say:

Why Early Access?

“I've already been working on Scraps for quite a while, and it's starting to look a lot like the game I always imagined. It's available through Early Access now because I think it's fun and complete enough to be worth the price already, and worth playing as-is, but obviously you should make a judgement on that yourself. There's still more content to come.”

Approximately how long will this game be in Early Access?

“Scraps is an ongoing project and honestly any transition from Early Access to a Full Version is going to be fairly arbitrary. My suggestion is to buy it if you like how it looks now, rather than how it might be in a certain amount of time. Development is slow because it's mostly just me making this and I have other work on as well, but it will get done.”

How is the full version planned to differ from the Early Access version?

Planned content includes:
- A new singleplayer mode called Gauntlet
- More parts
- One or two new propulsion types, like tank tracks
- Bug fixes
- Performance optimizations”

What is the current state of the Early Access version?

“Right now Scraps has a solid playable base but is missing some planned content and will still have some bugs and performance limitations.

The main game mode is ready and working, which is a "deathmatch"-style mode where each player gets x amount to spend on a vehicle, and pits it against others' designs. Scrap can be collected on the battlefield from destroyed parts and used to repair or add parts during the game.

You can play Multiplayer over LAN or Internet, joining an existing game or hosting your own with the ability to list it in the global list. Dedicated servers are supported as well as hosting and joining on the same machine.

Single-player is the same as Multiplayer except against AI-controlled players. AI is somewhat complete and will fight, collect scrap, and repair itself pretty well. The AI can be assigned any vehicle to use, but some designs (e.g. vehicles with no weapons, or side/rear facing weapons) won't be handled too well right now.

As you play, you'll also earn points which will unlock more vehicle parts.”

Will the game be priced differently during and after Early Access?

“Unsure at this time. Most likely no.”

How are you planning on involving the Community in your development process?

“I've taken community input throughout Scraps' development, and this won't change now that it's in Early Access. Feedback and bug reports are welcome on the Steam forum or via email.

Please note that Scraps is just me, so my time to read and reply to everything is limited. I still keep up with the community as much as I can, and so far the community has been fantastic.”
Read more

Buy Scraps

 

Recent updates View all (57)

July 30

Free repair time in Gauntlet mode

Gauntlet tasks to do before initial release
Get local games fully working
Object for holding game state in Gauntlet mode
Auto-repair system + vehicle swap ability
– Gauntlet game flow from menu to end
– Score system
– Level generation tweaks
– Update scrap drop system
– Item unlock system
– Update How To Play screens
– Test and balance gameplay
– Music?

Free repairs
At the end of each Gauntlet level I'm giving the player some amount of free repair and rebuild time.



This is measured in "minutes" because I don't want people to think it's using up some of their scrap, but there's a straight conversion between "minutes" and "scrap". For instance one minute might give 50 scrap worth of repairs. The implementation of all of this could change, but at the moment I'm giving the player some amount of free repairs (which can include rebuilding lost parts) at the end of each Gauntlet level, and each level gives a bit more time than the last (covering the fact that that player's vehicle is probably getting bigger).



The free repairs are currently automatic, but they'll try to be not too dumb, and always repair cockpit and chassis first.

Why
The thing is, Gauntlet mode will be a series of levels where you keep the same vehicle, so if I don't provide any free repair time then there'll be a huge spread in potential vehicle value once the player has completed a few levels, which becomes hard to manage.

Say I want to have the player be able to, on average, increase their vehicle value by 3000 at the end of a certain level, and I also decide that I'd like to let them recover from about 50% damage. I calculate what I think their vehicle will be worth at that point following the formula - say it comes out that their vehicle might be worth 4000 scrap. 50% damage = 2000... So I'd put 5000 scrap in the level to cover 2000 repair/rebuild + 3000 upgrade. But of course they might take more or less damage than that, and compounded across several levels you have potentially HUGE ranges in vehicle value. Someone who takes no damage can increase their vehicle's value by 5000. Eventually, just by dropping enough scrap for an "average" player to repair 50% damage, the player who cleverly takes no damage could have a vehicle worth even more than I really want to allow for performance reasons. Or just totally streamroll through levels that are balanced for lesser vehicles.

The more free repairs I give, the more levelled the playing field becomes. With unlimited free repairs, all scrap collected could go to vehicle upgrades. I'm still experimenting with how much free repair time I actually provide. I don't want everything to be totally balanced and boring either.

How
That big repair/rebuild button that you see on the Build screen in Melee mode, I've actually updated that (in my dev version, not live) to use a GUI more like the above screenshot except with scrap showing instead of minutes. Then the end-of-level repairs are actually a special case of the same system. Internally instead of repairing using the player's banked scrap, a special temporary wallet is created with some scrap in it, and that's used to do the repairs. So the code path is exactly the same except the "money" for it comes from a different place. Keeps things simple vs. having two different systems to maintain.

Vehicle Swap
This just means you can swap your vehicle out somehow, so if you start with e.g. a Small chassis you can upgrade to a Medium or Large. I won't say much about this now because how I handle it might change.

Game Flow
The next task on the list is the flow between levels. I've already been working on that as well, with a major issue being level loading times. Loadnig a Gauntlet map was taking about 15 seconds on my relatively decent PC, but I've now got it down to around 5½ seconds. I'll talk about that next time.

***

I know there's been a bit of a gap between the last update and this one. I've actually been fixing a few other issues around the game as well. Nothing really worth talking about, although if you've ever done a repair/rebuild on a vehicle and had it error out saying a part can't be attached, I discovered that issue too and it'll be fixed when Gauntlet releases.
5 comments Read more

May 22

Gauntlet game state object (and some technical rambling)

Gauntlet tasks to do before initial release
Get local games fully working
Object for holding game state in Gauntlet mode
– Auto-repair system + vehicle swap ability
– Gauntlet game flow from menu to end
– Score system
– Level generation tweaks
– Update scrap drop system
– Item unlock system
– Update How To Play screens
– Test and balance gameplay
– Music?

"Object for holding game state in Gauntlet mode" is probably the most boring entry on the task list (wow what a great way to open a blog post), but let's talk technical stuff.

Scraps and persistent state
The Unity engine that Scraps is written in has this concept of "Scenes." You can put stuff in a scene, like make a level for your game. You can attach stuff to stuff in your scenes, like lights and physics and scripts that run code. A nice thing about Scenes is that when you go to a different one, everything you put in the first scene is unloaded, so you know you didn't accidentally leave anything hanging around taking up memory[1].

But sometimes obviously you want stuff that doesn't go away on scene change. Scraps Melee games need to remember who's playing when the map changes, Gauntlet games need to remember the player's scrap amount/score/etc when they move between levels, everything needs to remember which vehicle the player has selected and so on. You can create code that doesn't get destroyed on scene changes, either by making it totally separate from the scene system, or by marking it in the scene with a special DontDestroyOnLoad flag.

Anyway, in the Scraps system:

(click for big)

Everything there except ServerStartupInit (which just gets things going on the server) is persistent between scenes. Server is an object on the server, sort of a master controller. Client (for multiplayer) or Local (for singleplayer) are its client-side equivalents. There's a ScrapsPlayer for each player in a game - both AI or human. VehicleBase is a script on the vehicles themselves. It's subclassed into Client and Server variants. Having a ScrapsPlayer rather than having a player be their vehicle means that a player can continue to exist and run code when they don't have a vehicle, like between being destroyed and respawning. Whereas having VehicleBase on the vehicle means that vehicle-specific actions can still be done on the vehicle itself.

For instance say a ScrapsPlayer decided to set the health level on a vehicle in 1 second's time, and within that time the player's vehicle changed to a different one, it could end up setting that health level on the wrong vehicle. If the vehicle script decided to do the same thing and the vehicle got destroyed within that second, the command would get destroyed as well and never happen. OK that's a pretty contrived example, but I do remember something somewhat like that being a real issue at one point. Network latency in particular makes everything need a bit more careful protection.

ANYWAY, I haven't needed to update any of that very much, that's just some random info about the whole system. What I have needed to do is add a new type of GameData, because GameDataServer/GameDataClient/GameDataLocal were more like MeleeModeGameData.

I mean look at this stuff in GameData:

(SUPER SECRET SCRAPS CODE DO NOT STEAL™)

Number of players, networking stuff, starting scrap and other melee game settings. None of that's needed for a new singleplayer mode and adding Gauntlet mode stuff to it would just make it a big mess.

So anyway GameData is now MeleeGameData and there's a new GauntletGameData too. It stores the player's score, what level they're on, etc. When a new game is started the appropriate GameData object is created based on the game type.

I'm not sure if the next item on the list completed will be "Auto-repair system + vehicle swap ability" or "Gauntlet game flow from menu to end". The former is part of the latter but I might be able to do the game flow without having the new build screen systems totally ready.



[1] As with many things code-related, this is sadly true only in the most naïve, optimistic theoretical way. If you have anything that doesn't get destroyed on a scene change (like a static class or a class with DontDestroyOnLoad), and it references something that should, the thing will still stay in memory until the reference is cleared.
14 comments Read more
See all discussions

Report bugs and leave feedback for this game on the discussion boards

Reviews

“Build your own combat car and watch it fail hilariously. After all, that's at least half the fun.”
Kotaku

“It looks like a vehicular combat game but it’s also something far more important ... Scraps is a stage on which to act out physics-based farce.”
Rock, Paper, Shotgun

About This Game

----------
PLEASE NOTE: Scraps is the side project of a single developer at this time. Consequently development is slow, so my suggestion is to buy Scraps now only if you want to play it as it is now.
----------

Scraps: Modular Vehicle Combat is a vehicle combat game where you build your vehicle from parts, and where success lies just as much in designing a well-crafted vehicle as in your combat skills. Design from the chassis up, then pit your creation against humans or AI in a combat arena. When you take out other players, scavenge from their wreckage to repair or upgrade your own vehicle in-game.

Scraps lets you create a vehicle that’s great or a vehicle that sucks. Maybe your vehicle falls over when it corners or doesn't have enough power to fire its weapons – that’s okay. Maybe it doesn't need an engine because it moves by firing its cannons backwards. You decide what you drive.

Your design choices aren't just cosmetic - they're truly functional and at the very least affect the weight and balance of your vehicle. Battle in single-player against the AI, on LAN, or over the Internet. Easily host your own LAN or Internet games. Using the Scraps demo version, your friends can join a LAN game even if they don't own the full game.

language Note:

The only complete language at this time is English, but partial in-game volunteer translations are selectable for Russian, Danish, Dutch, Norwegian, Romanian, French, Swedish, and Polish.

System Requirements

Windows
Mac OS X
SteamOS + Linux
    Minimum:
    • OS: Windows XP SP2+ or newer
    • Graphics: Radeon HD 6570 / Mobility Radeon HD 5850. Shader model 3.0.
    • DirectX: Version 9.0
    • Network: Broadband Internet connection
    • Storage: 1 GB available space
    • Additional Notes: Broadband is only required for Internet play.
    Recommended:
    • OS: Windows XP SP2+ or newer
    • Graphics: Radeon HD 5750 / Radeon HD 6750M
    • DirectX: Version 9.0
    • Network: Broadband Internet connection
    • Storage: 1 GB available space
    • Additional Notes: Broadband is only required for Internet play.
    Minimum:
    • OS: OS X 10.8 or newer
    • Graphics: Radeon HD 6570 / Mobility Radeon HD 5850. Shader model 3.0.
    • Network: Broadband Internet connection
    • Storage: 1 GB available space
    • Additional Notes: Broadband is only required for Internet play.
    Recommended:
    • OS: OS X 10.8 or newer
    • Graphics: Radeon HD 5750 / Radeon HD 6750M
    • Network: Broadband Internet connection
    • Storage: 1 GB available space
    • Additional Notes: Broadband is only required for Internet play.
    Minimum:
    • OS: Tested on Ubuntu
    • Graphics: Radeon HD 6570 / Mobility Radeon HD 5850. Shader model 3.0.
    • Network: Broadband Internet connection
    • Storage: 1 GB available space
    • Additional Notes: Broadband is only required for Internet play.
    Recommended:
    • OS: Tested on Ubuntu
    • Graphics: Radeon HD 5750 / Radeon HD 6750M
    • Network: Broadband Internet connection
    • Storage: 1 GB available space
    • Additional Notes: Broadband is only required for Internet play.
Customer reviews Learn More
Overall:
Mostly Positive (82 reviews)
Review Type


Purchase Type


Language


Display As:


(what is this?)
69 reviews match the filters above ( Mostly Positive)
There are no more reviews that match the filters set above
Adjust the filters above to see other reviews
Loading reviews...