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 (79 reviews) - 72% of the 79 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 (56)

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.

0 comments Read more

May 8

Singleplayer without networking

I'm going to try and post news about what I'm working on a bit more often again. Here's my list of what I need to do for an initial Gauntlet mode release:

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?

Looks a bit long and scary, and yes it is rather a lot, but not all of those things are major. I thought the first one was pretty major and I've already got it done. What I'm going to do is, each time I complete one of those, I'll make a post and talk about that line item in more detail. When they're all done there'll be a real game update.

Let's talk about "Get local games fully working".

Local Singleplayer
I'd like to start with Minecraft as an example here. When Notch originally made Minecraft, the singleplayer and multiplayer components of the survival mode were separate. Bugs would often appear in one but not the other - usually multiplayer because networking is hard, man. A lot of work had to be done twice, in the singleplayer game and also in the multiplayer one. I read an interview somewhere where Notch mentioned that one thing he'd have liked to have done differently was going fully multiplayer from the start, and having the singleplayer just run on a local server. Eventually that's exactly what happened: The game was changed to be always multiplayer behind the scenes, and that's why anyone can easily join your singleplayer game on LAN now if you choose to open it up.

When I built Scraps I decided that likewise, having one networked system that everything used was the way to do. In the interests of simplicity, the Melee game mode always runs a separate server. That's why it was easy to add the "Allow other players to join" option to singleplayer games. Whether you host a multiplayer game or whether you start a singleplayer game, a local server starts up and you silently connect to it.

I don't think I made a mistake in doing it that way because it works well, but there is an effect on CPU performance because some calculations have to be done twice (the graphics card gets away free here because I run the server with no graphics). For Gauntlet mode I want to have good performance on moderate PCs even on later levels with big vehicles, and getting rid of the need for the server is an obvious win there. Plus I'd done a lot of the work already as I'd needed it in the past for testing. The changes basically entailed writing new paths for things when there was no network present, so what usually had to wait for server confirmation etc would do its own thing.

Now, converting a singleplayer game to multiplayer is always a big job, sometimes such a major change it's just about impossible. But converting a multiplayer game to singleplayer has been a lot easier! Not least because things always get simpler rather than more complex. This class structure in Scraps:



becomes this:



I've actually still got a couple of minor issues to fix but it's basically all working. As a bonus, when the Gauntlet update comes out you'll also be able to play the Melee game type in a true local mode - I've got that working as well - if you have "Allow other players" unticked:



That should give a bit of a performance boost for people with low-spec CPUs (to be clear, you won't see this performance boost now, it'll come with the Gauntlet update).

 

3 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.

What Curators Say

11 Curators have reviewed this product. Click here to see them.
Customer reviews Learn More
Overall:
Mostly Positive (79 reviews)
Review Type


Purchase Type


Language


Display As:


(what is this?)
68 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...