Game rendering the outside of building first and the programming challenges

Would it be possible to program the renderer of the game to render the outside build pieces of an enclosed structure first ? Is there a programming or game engine issue preventing this from being possible? I know this suggestion has came and went many times and have yet seen this issue being corrected.

This is a primarily pvp issue in the game renderer will show sometimes the whole inside of a structure before it finally closes up by rendering the outside last. This literally shows nearly everything a pvper would want to know about what is contained and where it would be in the structure.

Again is it a programming issue that is preventing this correction or is it something else ?

2 Likes

Off the top of my head and from mobile

It is certainly not a trivial issue to fix. In general you can easily use a technique called raycasting to determine what object is ‘first’ from a given point of view. But you’d need to do a whole bunch of those every frame to determine the entire ‘outer perimeter’. For every player observing a building. Baking or batching that information is probably possible, but the extremely dynamic nature of building in CE means those bakes would be out of date very quickly - though that’s probably the route I would take. It might mean your base would be ‘out of date’ while its perimeter was being modified, but that would at least be relatively rare (compared to every frame).

3 Likes

I know that for a guy like me, taking information from this limited time you see the base in, with rendering, it’s nearly impossible.
BUT

For a really charismatic person, that can read thousands informations with just a glimpse, this is a fortune cookie :rofl::rofl::rofl:.
I cannot blame the company for my console (ps4), but if this is happening on new gen consoles, or pc, it would be nice to be fixed.

1 Like

Yeah, it happens on PC from time to time. Like when there are 5 to 7 large-ish bases that suddenly come into view - like, as you breach a hilltop or something. If there are also more than about 10 or 15 players online, the partial render can last well past the time it takes to inventory or see hidden chambers.

On rendering the outer walls first, sure, it’s very possible. But doing so will slow everything down and overall take longer to completely render. It would need to figure out which pieces constituted “the outer walls” and from that specific player’s position and view angle. Solving for that is going to eat some major CPU cycles.

2 Likes

@TeleTesselator
Thank you for the reply. It would be awesome for this to change with the update.

Yeah
 I guess that “change” is affected by renting faster servers. :wink:

1 Like

Oh. OK :rofl::rofl::rofl:. No comments then I guess :man_shrugging:.

1 Like

Yes. This has been dealt with before. I bugged Funcom about doors rendering late and allowing everybody to walk through before re-rendered. Doors and outerwalls



convex calculus is such a pain to teach.

As to determining the outer side a suggestion if possible would be the outside would be the side with a lack of building pieces close by.

I would guess proximity and angle to the player. And for multiple players?

I don’t think our thoughts on this matter though - they’re not likely to do that. If they cared about this issue and I seriously doubt they do, the better way would be to leave the whole thing invisible (rendering it “unseen by player camera”) until everything was “loaded” and then pop it into place in a single render frame. But that would likely present other problems - and maybe worse ones.

It used to be that if you built a medium Wheel, it would render first, and block all the stuff behind it. Something changed in the coding so that everything sort of flops out when it wants to.

Would it be possible to create a new piece, let’s call it a solid fence, where if placed would always be rendered first? If so, what if that attribute were applied to our present Fence Foundations?

1 Like

Yeah, or how about just giving walls, frames, fence foundations and maybe ceiling times, a higher priority than everything else
 that would likely solve most if not all the issues. Likely the only thing they might be able to detect then would be the layout - but I think that would be pretty difficult - I mean to judge the layout from just walls on the few times stuff didn’t actually render in real-time.

1 Like

Does anyone know whether this is primarily an issue with rendering or with receiving the data from the server?

On my PC, this generally manifests itself only when I’m coming into the range of the build in question after I’ve been far enough that it got unloaded, which is why I assumed it wasn’t a rendering issue, but now I’m doubting that assumption.

I don’t know for sure but I think it’s all server side. The DB sort is determining the order things are sent (to be rendered) and the packet throughput (or lack thereof) is limiting the speed and/or number of items that the client is tasked with rendering. Again, just guessing.

2 Likes

This is one of those situations where client and server doesn’t make sense. Some server parts are there and some are here. Some client parts are here, too. Before it gets too vague, rendering or receiving, we can still imagine the parts that fit in proper order. Receiving data should be easy because there is a lot of support for its standards. Rendering always feels like bleeding edge. Keeping the connection up can be tricky. One is stable and the other is
 “experimental”

I would lean towards this being the case. Again not a programmer, but sounds like it makes a certain amount of sense.

1 Like

Servers are also dynamically configured which makes it more complicated to imagine in our thought-models. For example given the same data center and maybe or maybe not even the same physical cluster within, resources are constantly allocated and reallocated as they are needed and where they are needed. There are many different models from being low priority hyper-dynamic across a large facility (inexpensive) to a dedicated box (blade) sitting on a shelf (rack) with your name on it (expensive).

So this makes it difficult to assume the server condition or “horse power” given the information we have access to - like time of day, distance, number of players logged on, and etc. For example when there is no one on a specific server maybe it’s resources are completely allocated away from it. When one player joins said specific server like “Official #1334” the data center or cluster therein aggregates or allocates the needed resources for let’s say 1-3 players. This can take time depending what those resources were doing (like maybe running SETI@home - LOL). It might have to finish up first before it can then begin to reallocate - usually determined by priority hierarchies - which is usually determined by contract ($). When a 4th player joins more resources are again called in to support the load for that server “Official #1334”, and again this might take some time. It’s also a similar case with networking bandwidth allocation at every major hop - although this switching is usually very fast.

To complicate things even further there are more than a few data centers being used to host FC CE servers and each one will have different software solutions running. This means that maybe an Asian server will almost never cause the conditions whereby we see bases rendering incrementally but the facilities in the EU are constantly causing such conditions.

So are we the 1st or 4th player in the above scenario and seeing the server lagging because of those reasons, some combination of other things as well; like number of hops, our ISP’s load at the time, our own line-speed, our own client’s environment, and so many other things?

It becomes very complicated to assume the various points of stress but we can often generalize and simplify as I attempted, and not be entirely wrong. :slight_smile:

1 Like

Switching is literally the dumbest network model to run. On a small scale it fools you to think it will automatically scale to larger models. No magic here.

We want the internet instead of switchers. It’s faster and smarter. I’ve heard of putting a linux kernel on the RJ45s plugged into a switch. Is it dire?

I don’t know enough to comment further really. In fact I’m so ignorant on the topic of networking I don’t even know what you’re talking about. I just know that there are thousands of network switches in every data center, hundreds or thousands in every ISP, and at least one in every home. For data to get from one place to another it “switches” from one line or “address” to another. At data centers network bandwidth allocation is dynamic similarly to how other resources are dynamically allocated like I explained in my overly simplistic explanation above.

But beyond that I’m pretty clueless!

I blame it on the paywalls. It’s not intuitive while the standard for paywall HTTP protocol is (not) defined. I guess that can be read two ways. :innocent: