The problem with building a car in Jalopy

This is The Mechanic, where Alex Wiltshire invites developers to discuss the difficult journeys they’ve taken to make their games. This time, Jalopy [official site].

”A lot of people have made the correlation between game development being a janky mess and the car in the game being a janky mess,” says Greg Pryjmachuk, the sole developer of Jalopy, a game about driving a Laika 601 Deluxe through the countries of the former Soviet bloc with your uncle. “It does seem quite apt.”

But he’s definitely being a little hard on himself. Jalopy is a game he never intended to be as big as it’s become, a project he started to escape from mainstream development. A couple of weeks back, after two years in Early Access, it finally reached its official launch, and with it has come a slew of negative reviews and angry forum threads born of a weight of expectation that Jalopy’s rattling old chassis was never really designed to live up to.

More apt for Jalopy is the fact that it was inspired by a film called Le Grand Voyage, which is about a father and son who drive on a 3000-mile pilgrimage from southern France to Mecca, and takes as one of its principal themes the idea that the journey is more important than the destination. Jalopy is now feature-complete, with the procedurally generated highways and border crossings of Germany, the Czech and Slovak Federative Republic, Hungary, Yugoslavia, Bulgaria and Turkey to travel, many new engine parts to install, items to trade between nations and a story about the uncle to follow.

But it began as a free portfolio piece called Hac that Pryjmachuk hoped would help him exchange making annualised Formula One games at Codemasters for the indie life. Hac was a narrative-based driving game in which you’d fit water bottles and other gear into the trunk of your car alongside your uncle and drive along the autobahn, and its distinctive setting immediately gained attention from both players and publishers. “That’s when I thought I could make some money on this, especially when a publisher says they’d give a down payment,” Pryjmachuk tells me. “That’s your contingency plan right there, two years’ development paid for. Go on then!”

Signing with publisher Excalibur, the game’s scope immediately began to change and grow. There would be different types of tyres, repairing and dirt and grime. “It was very modular, where I’d build one part of the car and send it to the publisher, who was really good about it. It was a very organic process. So we did dirt, tyre changes and then we’d talk about where to go next.”

The place they went next was the car’s engine and its trunk, and that’s when the key problem with Jalopy reared its head. “I’d taken one game and moulded it into another, and there were all these caveats I kept forgetting about,” Pryjmachuk says. The idea was that the car’s engine would become built out of different components which players could upgrade, giving the game an RPG layer, and that they’d stow things in the trunk. So he spent three months building them, but when he added them to the game, a year of fixing the bugs they caused began.

One of the problems was the fact that when objects are placed in the car they have to become part of it so they’ll stay attached as the player drives. To achieve this, Jalopy subjects objects to complex tiers of parentage when they’re installed: their immediate parent is the specific node in which they’re sitting, then the inventory the node is in, then the trunk, and then the car, and if there were any errors in parentage, the game will assign them the wrong scale.

Other issues came from Pryjmachuk’s attempt to avoid a world of even greater pain. If you’ve experienced, for example, Far Cry 5’s vehicles going wild when they interact with physics objects then you’ll be familiar with the problems physics can bring to a game. “Physics bug out loads,” he says. “Users can be quite forgiving of that sort of stuff because it’s funny and makes great videos, but especially with a game where you’re driving 20-minute journeys from A to B, if all the stuff you put in the trunk has bugged out and fallen through the world, that’s quite frustrating.”

His approach removes the physics from objects when you placed them in the car and forces them into positions. But if physics is a world of pain for developers, manipulating 3D objects in space can still sting sharply. Pryjmachuk noticed that when the game was reloaded, wheels would become oval. Bits would be flipped over. Part of the problem was quaternions, an almost entirely non-intuitive number system used in the mathematics of 3D space which I don’t remotely understand, and which regularly confounds programmers, too. Get any calculation wrong and items would be twisted around.

Still, Pryjmachuk couldn’t dodge physics entirely. As a relation of the firstperson immersive sim, Jalopy has to accept players doing things that aren’t necessarily in the game’s best interests. So when players are sitting in the car, they can open the door, pick up items from the ground and drop them inside the car. “I was going to fix that, but so many people use it as a glitch. It doesn’t unbalance the game and it’s quite useful, so if you fix it people will get quite upset,” he says, remembering when a glitch in Minecraft was fixed that allowed players to leave spaces between ladders and still climb. “People were in uproar and that stuck with me. It’s one of those things, your game isn’t yours at that point, it’s the players’ and they get to dictate.”

Then there are the physics of the car itself. The Laika 601 Deluxe has to be very light because of issues Pryjmachuk faced with Unity’s collision system. So to avoid the car from flipping over easily, he placed its centre of gravity 10 metres beneath it. That would be fine, but it means the car can never act as a full physics object in the world. “The reason you have to put the handbrake on before you exit the car is because as fun as it’d be to see the car roll away, I can’t actually do that because the car movement has to be controlled by the player. There’s no free-wheeling system in there. Nothing relies on physics, it’s all player input-based.”

If the car was given a free-wheel system, its hacked-in centre of gravity would be too tight for its wheel colliders. But if Pryjmachuk removed its centre of gravity, it would easily flip over. And if he made the car heavier so it won’t flip, it’d run into problems with collision.

And if this wasn’t enough, the way the car is set up and the number of hacks Pryjmachuk has made to Unity’s physics has prevented him from being able to keep Jalopy running in the latest versions of the engine. To upgrade the engine would mean rebuilding the whole game from scratch, potentially doubling its development time.

Now, if you speak to most game developers, they’d tell you Pryjmachuk was dead right to stick to 4.5, the version of Unity to which Jalopy is inextricably bound, but the grim irony is that they’re wrong. It happens that 4.5 has a bug, a memory leak during build. Building Jalopy is a process which takes 20 minutes and often fails, and because it can only use 2gb of Pryjmachuk’s PC’s memory, there’s a hard limit on the amount of stuff he could fit into the game. He’s fully aware that some of the longer routes in the game just don’t have enough happening on them, but the tools simply stopped him from being able to add new things.

“These issues ended up doubling the development time, and probably made a poorer version of the game I could have made,” he says. “If it was working freely, I can imagine I’d still be working on it, still in Early Access, adding more features. But it’s the path I chose.”

Perhaps Jalopy would also feature Poland and Russia and other countries which players have enthusiastically requested. But it probably won’t feature multiplayer, another thing players often ask for. “I did ask somebody what that’s about, and they said it’d just be nice to sit next to their friend,” Pryjmachuk says. “I started off explaining why it won’t have multiplayer, but people don’t read previous threads, so then it became just saying no, and then I couldn’t be bothered to reply. I’m doing this all myself and there are only so many hours in the day.”

Dealing with Jalopy’s players has been both rewarding and challenging, often at the same time. There was the time during Early Access when they were frustrated with not being able to place items on the back seat, a decision Pryjmachuk made because it would make the game too easy. His response was to place something covered with a blanket to demonstrate that there’s no space to store anything else. But because the change in which the blanket was added came in the same update that temporarily removed the uncle from the game (because he was causing bugs), players joked that he was under the blanket, dead.

Pryjmachuk also learned that he had to be clear with players as to what they could expect. He knew that if he added Poland it’d only increase pressure to add other countries. “Those are the players you love, because they love the game so much, and you’ve got to kill them with kindness. You’ve got to be really apologetic and upfront about why something might not be in the game, because as soon as they get a hint that it might in the game, they’ll lambast you.

“As far as I know, everything I’ve promised from the beginning is in the game: the uncle, all the countries, the components. They’re always expecting more. The trouble with Early Access is releasing, and yet if you’re not releasing then you’re DayZ and what are you doing?”

But Early Access has also been fundamental to Jalopy’s development, giving Pryjmachuk ideas for what it should grow into and providing feedback on his successes and failures. As he faces insults and continues to fix bugs at his game’s journey’s end, he remains positive. “Even with the emotional toll it takes on you and how draining it is dealing with the community, I still think Early Access is the best process for this. You get an expectation for sales and you can plan your game. I want to still be doing this in 25 years, and it’s still the best job I’ve ever had.”

18 Comments

  1. Premium User Badge

    keithzg says:

    I’m just still confused by the lack of Linux support, considering if one wanted to pirate it people have added the necessary Unity Linux wrapping to torrent versions. Rarely has piracy been as tempting, considering it would literally allow me to play a game I couldn’t otherwise. I hope he’ll reconsider; being able to actually play the game at all is the “more” I’m personally “expecting” . . .

    • Mokinokaro says:

      According to the Steam forums, they’ve ran into an unfixable issue with their current version of Unity on Linux and OSX. The game is unlikely to come out now as they can’t update Unity versions for the reasons given in this article.

      The wrapper route is available, but that wrapper used in pirated versions might be pirated itself.

    • poliovaccine says:

      Is Linux support really so default an expectation? I was under the impression that it remained a pretty niche platform for gaming, and that if any game offered Linux support it was lucky. Has that changed? Or is it more like the devs once promised Linux support at some time?

      • Janichsan says:

        A bit of both in this case: the mentioned prototype for Jalopy, Hac, was available for Windows, Mac, and Linux, and Jalopy was originally supposed to be released for these platforms as well.

        Secondly, it actually has become more the rule than the exception for indie games to be released for Linux, especially when they are using a crossplatform engine like Unity.

        It apparently helps that the entry barrier for Linux development is relatively low, as you can simply dual-boot your normal PC into Linux. And depending on the complexity of your project, it can actually be as simple as clicking a checkbox to get a fully functional Linux version with Unity.

      • Premium User Badge

        phuzz says:

        Everything Janichsan said ^^ and also remember that Linux fans can be super vocal and if they think they’re not getting the same attention as Windows then they’ll follow you down a dark alley and shank you complain loudly.

      • Lord Byte says:

        And then the Linux version has an issue that isn’t reproducible in the windows version. Then what? He’s alone, he may not be versed in Linux, then he’s going to have to spend his limited time into fixing things he has no clue about, and he can’t just compile it “at your own risk”, you paid for it, you’re going to expect something… And so on. It’s where the risk/reward would make it most likely unprofitable, and hence cost the majority of the players for the 15 linux users.

        • Janichsan says:

          And that’s precisely were the possibility of dual-booting your Windows PC into Linux comes into play. Even a one-man outfit can do that.

          However, I give you that the bigger difficulty is not building a Linux/Mac version of a game, but properly testing it. I’ve seen more than one game were the developers seem to have completely eschewed that – and I’m talking not only about small indie developers.

  2. MiniMatt says:

    Once drove the length of the UK in a 1.8 Ford Sierra which drank as much oil as it did petrol and freely exchanged both with it’s coolant and required two fan belt repairs on the (~250 mile) journey.

    Cost me 50 quid, that car.

    I think I want to buy Jalopy.

    • Someoldguy says:

      Never quite managed that level of amateur mechanic skill, but I did do a whole bunch of maintenance on my creaky old 1.3 escort estate to keep it running – it spent a considerable fraction of its total mileage on trips to the scrap yards in search of more parts.

      I think there’s room in my life for one car maintenance game, but I’m not sure if it should be this, my summer car or another vehicle building game I dimly remember RPS mentioning in years gone by. If there was a tank equivalent I’d jump on that in an instant, having avidly watched all episodes of Tank Overhaul featuring the dedicated crew from the Isle of Wight Military Museum. Might be a little harder to drive the finished product across Europe afterwards, but so be it.

  3. Metalfish says:

    I like jalopy. It’s not an experience I’ve had with other games.

    My unsolicited opinions for you to read for some reason:
    *It’s still somewhat buggy, which is not ideal when you’ve come out of early access. It’s mostly only the run-stoppers like not being able to pick up the tires you’ve just bought ’cause they’ve fallen behind the cashier that upset me, mind.
    *It feels like there’s a vast amount of upgrades that there’s no reason to buy/you won’t have enough money for, like ever/you don’t need to reach the end.
    *I slowly turned into a travelling scavenger, grabbing armfuls of sausages from an box in a lay by and shoving them in the boot before driving 50m to the next crate of abandoned meat.

    • DeepFried says:

      if by “somewhat buggy” you mean “you’ll find 5 game breaking bugs in the first hour” then yeah, its somewhat buggy. Still great though.

  4. DeepFried says:

    Jalopy is as wonderful is it is broken and sadly short, when playing it I just cant help feel how much of a better game there is hiding under all the rust and dents. But still its great for what it is and I’ve amassed 30hrs on it in the last 2 weeks.

    However I have now graduated on to harder substances, i’ve taken to snorting neat My Summer Car,, which although less of a game and more of a sim is still wonderful and hilarious with its dark Finnish humour and endless beer chugging and pissing in the sauna.

  5. caff says:

    I have a real love-hate relationship with this game – it bugged out on me hard. Yet I feel like that probably encapsulates the feeling you’d get of owning a real Laika, hence perhaps was more authentic than I first realised, in a 4th wall-ish sort of way.

  6. poliovaccine says:

    This is exactly the sort of thing I think about when I see people take an attitude of “how hard can it be?” about whatever thing they want to see added into some game. Like, a car rolling downhill is not straightforward in a world where you must manually build every last law of physics. That’s a great example. If it didn’t take attention span to digest, I’d say I’d link this piece next time that quibble comes up.

    Always fun reading these Mechanic pieces in any case. I happen to adore Jalopy, but I didn’t realize all the flak it was catching lately. That’s a shame, but hey, if that’s the case then at least this piece is a nudge in a more positive direction.

  7. Urthman says:

    THE MECHANIC: You are a mechanic.

  8. CyberAngel says:

    I don’t understand what’s so hard about making Unity 4.5’s build system stable? WTF?