
#Bloodshore length code
I should also say that the New World team worked on their networking stack for a *long time* between when I saw it and when they shipped, and I'm 100% sure that it's way better than the code that I saw. That's different from if your networking architecture doesn't allow for any client-authoritative code to be written unless you jump over a ton of hurdles, which is how NovaNet (and QuakeWorld/Half-Life/Source/etc) worked. They built their game on an engine that *allows* client-authoritative code to be written, but (I'm sure) they are writing their code server-authoritatively. To be clear, when I said their code is client-authoritative that was a bit inaccurate. So anyway the answer to “how does a multi billion dollar company making games in 2021 write client authoritative code” is “Game development: it’s very complicated.” Please be kind to and patient with the New World team, they’ve been trying to fix this problem for like 8 years. I wanted to say, “Mr Frazzini, there’s nothing in NovaNet that hasn’t existed since QuakeWorld in 1997” but I looked at our studio director, a very smart guy, and he said nothing. Seemed like was considering spinning NovaNet out into a new product or something. It’s an attitude that works in the micro services world of AWS, but not in games.Ī story about how clueless Fraz was about this topic: we were at a Friday beer party around the time Crucible was adopting NovaNet and Fraz was excited about it, and told me something like: “this is very cool tech! It has a big new value proposition!” His attitude was that we could invent our way out of the problems of those codebases iteratively. It’s been rehashed a lot but it mostly comes down on Mike Frazzini, VP of Games. The root cause (my personal view) is that when AGS was new leadership, who had little experience in games, had no experience of the risks of choosing bad tech to build games off of and didn’t get their technology or listen to warnings of seniors and principals. They’re doing the best they can with the cards they were dealt, and it looks like they’re doing a good job. The root cause of the problem here has nothing to do with any decisions that anyone currently on New World made. When faced with a choice between spending millions delaying the game for another year or two vs accepting client authoritative bugs, it’s easy to say “ok let’s just be very careful!” I mean, before it was actually canceled lol New World had already rebuilt their game from scratch once (it was originally less an MMO and more Rust-like) and by all rights Crucible should have been canceled rather than rebuilt. I wasn’t on New World so I don’t know the details but I don’t really blame them that they decided not to share Crucible’s pain. New World was faced with the decision of whether to move to NovaNet. Artists worked on another branch the whole time and designers had basically nothing to do for a year. Crucible was having a lot of problems with GameCore and it’s client authoritative model, so they adopted Nova’s code.Ĭrucible spent about a year and a half rebuilding the entire game under NovaNet. They did this because they had a very large world.Īnyway they were canceled, but they had built some pretty cool tech, and so some people on Nova went off in search of another team to adopt their code. Not only was it server authoritative but it could support shafted servers, where each server would be responsible for a given geographic area but could still tell its clients about entities in other servers/areas. As far as networking layers go, Nova’s was pretty good They saw that GameCore would be difficult to build on so they semi-secretly built their own entity system and networking layer, using Cry/Yard as just a rendering layer. They were eventually canceled, but they didn’t use GameCore. Like I’m pretty sure somewhere in the networking loop they had a recursive graph search through entities to resolve some dependency.Īnyway there was a fourth game team that you probably dont know about codenamed Nova.

I swam around in it once to try to fix a bug, and I don’t remember any specifics but I do remember thinking that just about everything they did was the most complex way they could have done it. This existing code, called GameCore, had never been shipped and was built for another game, and used the CryEngine networking as its bottom layer, but then built some replication logic on top of it. The reason for the two forks is that Lumberyard was replacing basically all of CryEngine (which was terrible) with new code, but the games teams needed to get to work building games, so Crucible, New World, and Breakaway used some existing code that Double Helix had.
