NVIDIA WaveWorks 2.0 Debuts in Grapeshot Games’ ATLAS

Atlas is a new multiplayer pirate adventure from Grapeshot Games. The spectacular oceans in the game have been made possible by NVIDIA WaveWorks 2.0, the next generation of water simulation technology.

We sat down and talked to Jesse Rapczak, the co-founder of Grapeshot Games, to find out what it was like to work with WaveWorks 2.0 from a developer’s perspective.

WaveWorks 2.0 will be available soon.

Sign up here to learn more: https://developer.nvidia.com/waveworks

NVIDIA: Jesse, can you explain what Atlas is?

Jesse: Atlas is the largest action MMO ever created on the high seas. It lets players tell amazing stories within a world that we [Grapeshot Games] have created. It’s an evolution of the gameplay people know and love in Ark: Survival Evolved, and builds on it with so many new mechanics: Sailing, melee, combat, looking for treasure, fighting mythological creatures, and PVE islands.

NVIDIA: Atlas is the first game to use the new NVIDIA WaveWorks 2.0 technology. From your vantage point, how do you define WaveWorks 2.0?

Jesse: We are a company that likes to create gameplay. Given that, WaveWorks 2.0 is an important tool for us… We don’t want to sit there and develop very complex systems that are going to take a ton of our time, and take our focus away from making a really fun and amazing game for the players. So, WaveWorks 2.0 was an answer to our biggest problem: How do we get really great water in this game?

We want seamless transitions for players between servers which only take a couple seconds.

We made the technology to do that, but the problem is we needed the oceans to look good and feel good, too. And that’s when WaveWorks 2.0 came in for us as a solution. And we got it in very early. It was one of the first things we got into the game. It ties into the physics system. It ties into characters swimming in the water, ships, and buoyancy, whether you’re underwater or above water or post-processing. We’ve put hooks in the game for all sorts of visual effects and other things that need to happen related to the water. From the very beginning, WaveWorks 2.0 has been an integral part of the game’s development.

NVIDIA: How does WaveWorks 2.0 compare to other waves simulation programs you might be able to get off the shelf and put into your game?

Jesse: Well, I would say WaveWorks 2.0 is pretty ready to go compared to a lot of other solutions. One thing we really appreciate about NVIDIA’s approach is that there’s always a sample of the Unreal technology that’s been implemented in Unreal Engine 4. You get an example of what the technology can do, and how it looks in the exact tool that you’re using. And I think NVIDIA has been very smart to take the approach of putting all of the samples on UE4 because, for developers like us, it really shortcuts our time to decide to use the technology, and then to get it into the game.

There’s a lot less ambiguity about, “Will this really work?” When you can just fire up UE4 and see it working. Maybe there’s some stuff we didn’t think about, but it’s functioning and we know we have a list now of what we need to do to get this into our engine. And if it wasn’t there from the start, it’d be a lot harder for us to get it going and make the decision to go with any particular tool. But WaveWorks was great and obvious right from the start. And having that Unreal integration from the beginning was really key to get us going as a development team.

NVIDIA: Your game is a set at sea. But what about a game that’s not set at sea? That just has water in the backdrop? Is there still value for developers in that instance to use WaveWorks 2.0?

Jesse: Definitely. We spent a lot of time on water for Ark and you know, it wasn’t the greatest water. I would say it’s very flat. We had some game limitations for physics. But if we had more time and we didn’t have to enter the water, we probably would have tried to emulate some of the stuff that WaveWorks 2.0 is already doing. We actually had a very early prototype of these Gerstner Waves rolling into shore in Ark that wasn’t WaveWorks 2.0, but it was just tech artists trying to figure this stuff out because we didn’t have technical resources.

But the problem for us was that took a really long time to make our water look good enough for our game. And for anyone who wants good looking water in their game, WaveWorks 2.0 is a great solution because you don’t really realize until you start working on water how many things actually go into making it look good, and how challenging and time consuming it is. So, for us, our tech artists were able to take the WaveWorks 2.0 samples on UE4 and get them working very quickly. We worked with the materials and shader system, and the examples that NVIDIA had created, and built on that, and just dropped in a great looking water system in a day or two. And that is hugely valuable because we spent many weeks just working on a custom water solution for Ark and it wasn’t as good as WaveWorks 2.0 is out of the box.

NVIDIA: From a gameplay perspective, how did the integration of WaveWorks 2.0 change gameplay? For instance, when you’re fighting against other players?

Jesse: Well, I would say the gameplay impact of WaveWorks 2.0 in our game is huge because so much of the game does take place at sea. There’s a lot of things that gameplay programmers might not be thinking about that they have to account for. You’ve got rolling waves all the time. You’ve got multiple physics simulations happening at once. We had to make a lot of gameplay systems where players could transition from one physics simulation to another on WaveWorks 2.0. We also had to do a lot of gameplay sequences with swimming. Being in the water, we had to implement simple buoyancy for things we want to float in the water. There were so many things to consider. And it did change our development a lot because this is something we never had to deal with before, which is a constantly moving surface that is physical in the game.

And so we created a lot of gameplay hooks for the programmers to know about the water, to query whether something has entered or left the water. Whether something is touching the water. Whether you’re on a shore or on the ocean. There are so many code hooks that programmers need to check. It’s kind of a pyramid of abstraction. But I think that it really was important for us to get all of that stuff working early in development so that we weren’t trying to retrofit stuff later. And we were developing all of this gameplay content later on that built on the foundation of WaveWorks 2.0 being a key part of the game world.

NVIDIA: How do you maintain the balance of realism and fun with water simulation?

Jesse:  There’s definitely some magic stuff in there. There’s a few things you have to do. You must consider what players expect versus what might really happen. One example is grappling hooks. It’s very hard to aim a grappling hook if the realistic water simulation is going all over the place, and you’re trying to lead the target. So, one of the things we did is whenever you launch the grappling hook, we have a marker that’s like, “this is where the player was trying to throw it,” and the grappling hook goes to that location. So the player feels like they were successful. The player already did the hard thing, which was to line it up and pull the button. We don’t make it go there if it won’t get there in terms of distance, but in terms of aiming and accounting for all of the physics, there’s a lot of help to get the grappling hook to that target.

And then when firing things too…you know, when you’re aiming at something, you kind of expect your item to kind of go where you aim. So, we did a lot of work too. If I’m shooting from my ship and I’m targeting another ship,I’m going to transfer instead of making that projectile be in the physics space of me since I’m aiming at something else. The minute that projectile fires, it’s now in the physics space of the thing it’s trying to hit, so that it’s going towards where I shot it rather than just drifting off in some other random direction because I hit a wave and now I’m off target. So, there’s a lot of little things like that all over the game code that really go away from what would really happen and more towards what players might expect to happen at that moment.

And I think the key is not pushing it too far, so it feels like you just did something totally unrealistic while still giving players that satisfaction and fun and without frustrating them. Because sometimes, realistic simulation is very frustrating, you know, and you want to account for that in the game code.

NVIDIA: What challenges, if any, did you face and overcome with WaveWorks 2.0?

Jesse: There was some stuff with multiplayer that’s very challenging. I would say that was probably our biggest unknown early on and we worked with Nvidia to get some good tips on what we could do with WaveWorks 2.0, to improve a little bit on our server synchronization of the simulation. Because it’s one thing to render the water and look good for me, but the servers actually have to render the water and have the same result for all of the clients that are playing in the game world. And the clients then have to take that same stimulation and render it to look really good in the game. And that’s a key technological challenge.

Fortunately, we were able to solve that. With WaveWorks 2.0 the server has the ability to run a simulation that’s at the resolution and appropriate CPU costs just for physics, and then that is synchronized to all the clients. And then the clients can up the graphics quality of that simulation and render much higher visual fidelity of that same simulation. And that was a key thing that if it didn’t work, we’d have to make a different game.

NVIDIA: Sometimes it’s the little details that people feel, but don’t articulate because they are not processing how important it is. Can you point out maybe one or two little details that are in Atlas because of WaveWorks that you’d like them to see?

Jesse: Yeah. So, there’s a couple little details on the water simulation and the ocean itself that are in Atlas that are a little bit apart from the global simulation, the little details you might say that the visual effects and the tech artists want to put in there to give a little bit more eye candy. You know, some examples are, we’ve got some GPU foams simulation, spray that comes off of the WaveWorks 2.0 surface around your ship. So, when you get the foam forming on the waves, we spawn all these cool spray particles that drift off into the wind. For our short particles, we’ve got some really cool foam emission. So, as the waves roll into shore, it’s got all this realistic looking foam that you might see if you’re at the beach, emitting from the water surface and creating cool patterns in the water.

Having light refracted through the water and up from the water is also very important subtle thing that’s not part of the base simulation, but really helps the visual fidelity. And then we’ve also created some systems where visual effects can know about the water, so they can appear on the water. You know, if there’s an explosion or there’s some sort of thing that happens on the water surface, we’ve got all sorts of ways where the water can stick to that surface and take all of the WaveWorks data, like displacement vectors and stuff like that to kind of shift around its own material and geometry. So, it feels like it’s actually on top of the water moving with the water rather than just kind of sitting there and being in its own world, just letting the water slide underneath it. So, little subtle details like that I think really tie everything together.

NVIDIA: With all those subtle details, how does that enhance the playability of the game or the user experience overall?

Jesse:  I think a lot of the subtle details improve the user experience. For instance: giving you an idea of which way the wind’s blowing because you see the spray coming off the waves and you can see which way the foam is spraying.

And then along the shorelines, that’s where it’s really important to deliver high fidelity detail. I think it really improves the visual result for the players of entering and leaving the water. When you can see stuff that you’re used to from going to the beach in real life, and the in-game water looks like you’d expect it to in the real world, I think it gets people a excited to just sit there and take in the beauty of the environment. And it’s not just a flat plane intersecting the shore and having a little bit of translucency through it. It gives that extra level of immersion, which makes the world feel real and a place that they want to hang out in for hundreds of hours.