Back to search

Now that EVA is physicalized, what is the current plan for implementing push and pull?asked by Bree Base

TL;DRPush and pull is an extension of physicalized EVA, handled by the FPS team with grab assists planned, alongside a broader refactor into a unified, component-based Item System 2.0 that is still a couple of months from being fully in.

Chris RobertsFounder, CEO and Chairman

Well, push and pull is just an extension of what we're doing with the physicalized EVA. So the idea is that you'll be able to grab onto things or push away from things. Pushing away is a physical impulse that you'll push away, and grabbing onto things will be a constraint on the articulated body, the human body that we're simulating. So when you grab onto something, like if you're going this way, you'll swing and you'll be constrained by the point. So it'll be fairly physically accurate. It's something that's going to require a lot of playing around with to make it usable and fun. So we'll probably do things like you can reach out for a grab point, and if you're close enough to it, we kind of let you grab on and push in. Because otherwise, if you actually have to be exact on everything, it's going to be really difficult. But the physicalized EVA is stage one of what the push-pull is. So it's one of the things that's on the plate of what we call the FPS internal team. So we have a group of people that are just working on you running around on foot, and that's the FPS team, and they're handling all the player motions and actions, the state machine for the player. I think in 2.4 we'll have vaulting. I'd have to double-check, but I think it's in. But all things like vaulting or sliding and mantling and all the rest of the stuff. So ultimately, the FPS side of things will be 100% equivalent to anything you'll see out there in the best of other FPSs. You'll be able to do all the same kind of things. That's on our roadmap, and one of those things will be the push-pull. And I actually do think the EVA and the zero-G aspect of the game is one of the things that sets it apart, because you just don't get that in other FPS games. So our goal is to have everything else be at least as good as any other FPS, but on top of that, have this extra dimension. It'll take a while to get there. It's a lot. I mean, we've got about four engineers on that team working just on the FPS and a bunch of animators supporting them and some tech designers doing it, but there's a lot of stuff to implement it right. We're trying to do everything in a very systemic way, so there's a lot of very specific stuff that, say, CryEngine does a certain way because it knows you're only in first person, you're only on foot, and so it handles everything in very specific ways for a gun versus... Whereas with us, we're building a much more generic system. So gun and grenade aren't necessarily concepts that we want to have specific different code paths for. And so there's a lot of refactoring that's been going on to make it a much more extendable system, so that down the road, when we decide to create new weapons and new items and new functionality, it's pretty easy to do because we've got a system. So we've talked about Item System 2.0. Well, that encompasses both personal items, stuff that you would use yourself, like armor you would wear or a gun or a grenade or a hat or clothes you would wear, as well as items that are on ships, like a gun on a ship or a power plant on a ship. Or a seat is an item. Doors will be items. So everything runs with the same systemic code base. They all connect to each other. Doors need to be connected to power. So there'll be a power plant. It should be the same on a space station, where a power plant would give power to, say, the doors and the lights. And if someone destroys the power plant, then the lights go off and the doors don't function. You have to manually open them. Everything in the engine [works] with that. And ultimately, even the spaceships themselves: right now we have this concept of a vehicle, and then we add all the items to them. And the items deliver most of the functionality. Thrusters deliver the ability to move things around, and the power plant delivers the power. So really, right now, a vehicle is kind of a hull, and it can't really do anything until these items are attached to it. People will know when items go away, then suddenly the ship stops moving and working. So we're actually going to take that one step further, and instead of it being a vehicle anymore, you're basically going to have a hull item. And so you'd have a hull item, and then if you want a car, you plug in four wheels. So it's basically like a chassis item. You plug in four wheels and an engine and a steering wheel and a seat, and that's a car. If you want a spaceship, it's a power plant with thrusters and an IFCS avionics system, and it flies around. And the nice thing about doing that is we unify vehicles and items. So the way damage is handled, the way all these things are handled is one system. So it makes it much easier for us to optimize and make sure there aren't bugs. Because a lot of times you have problems in games when you have two parallel systems that kind of do the same thing, and a lot of code. So you change something over here, but you didn't change it over here. And then if there's a bug you fix here, but then you forget to fix it over here, then there's still problems over here. So we're trying to bring everything down to this new design, basically what we call Item System 2.0. It's ultimately almost going to be what you would call in game programming the core entity class. So it's a core concept, and then we just take the item and the entity, so to speak, and we add these components to it. So the components you add to it add the functionality. So it adds the render mesh, or adds the physics simulation, or adds the network component, or adds certain behaviors. Like an item port component adds to it, and that allows the ability for other items to plug into it. And so that's kind of what we shift to do. That is the current, the next-gen way game engines are built: very componentized. CryEngine was built quite a while ago, so it doesn't quite have that implementation. So under the hood we've been completely re-engineering all that to a very different [approach], because that's basically the way you would build an engine in today's world, and it allows us a lot of flexibility. And because we have such a big world, and we want a space station to have all this functionality where the doors and the lights and everything work and security systems work, but have the same on an Idris corvette, where you as the captain could shut down areas and do all the rest of the stuff. And even if you're wearing your armor suit, it's powered or you've got a life support system on the back. And if someone shoots the life support and damages it, then you won't get any oxygen to your helmet and you may asphyxiate. So all that systemic behavior has been built in, and it kind of comes with Item System 2.0. So there are little bits of that in the game right now, although we won't be fully across to it probably for another couple of months, because there's a huge [amount of] engineering stuff, and they've been working on this for close to a year now on this whole build and refactoring of what we've been doing. But when it's in, there's a lot of functionality that you don't have in the game now, a lot of systemic behavior. You'll be able to do all sorts of really cool things in boarding or defending a boarding action or on a space station. There'll be more than one way to solve a problem. And I think it'll be fun. And it will pay off in Squadron 42, definitely in the Persistent Universe. So I'm actually really quite excited. We have quite a few internal prototypes we've done of the stuff, and it's pretty cool. You guys may have seen the little space station prototype that was done. So yeah, there you go. That's probably a longer answer than you asked.