The technical state of 'sharing' condos & The Workshop

Animal Crossing largely supplanted my virtual decorating kick for most of the year, and in wake of that, I had hoped that a handful of particular issues that have mired my experience with hosting would be resolved by the time that I returned to building.

Unfortunately, this is not the case, and guessing from the development roadmap, it would seem we’re on the eve of Workshop Condos releasing, but I have concerns with these long standing visual bugs as they’re especially relevant when it comes to showing condos to other players, even more so as community condos come to fruition.

These particular bugs all deal with discrepancies between the host & connecting guest clients. These do not affect the one hosting. They’ve been previously reported in the past. I’ve created a smooth dirt snapshop specifically to show off these peeves:

What you’re looking at:
FlatDiagram


Starting with my absolute biggest problem;
Possibly all canvas objects disappear at far distances.

Please watch this video recorded from my friend’s perspective when I am the host and he’s the guest:


This started occurring since the Unreal Engine 4.20 upgrade update. Before then, it was never an issue. Canvas items loaded and stayed loaded for the duration of any guest connections. It doesn’t affect non-canvas items, and our later tests revealed that even canvas items without a URL disappear just as well.

This is a problem for a few of my larger scale condos, and will 100% be an issue when my friends and I start building co-op/community condos that involves building in areas that are far apart from each other, like cities and villages. Using canvas domes as a replacement skybox is more-or-less broken unless you concentrate everything in one condensed area and expect people to not wander off.

To give another example, I have another friend who decorated the skyline of the Highrise condo with billboards made from canvases. Such things are now invisible to guests when they weren’t in the past.
image

I’m almost certain that this is responsible for crashes we repeatedly experienced, as we had several instances where approaching distances that made many canvas items start rendering again caused the game to break.


You may have noticed this in my friend’s video above.

  1. Tree Colors always display as default (Unless changed after that particular guest has loaded in)
    This one is oldVERY old. I appreciate the swiftness and zeal with which the recent tree color problem was resolved, but this sadly only fixes one side of the issue. Guests continue to see default colors upon initial load.

  2. Soda machine canvas URLs don’t display (Unless changed after that particular guest has loaded in)
    Same deal as above. I’m willing to bet there are more items this is applicable to, but that’s what I know at the moment.


Lastly, Disjointed Items locations.

Regrettably, I have no idea how to replicate this one.

Items that look perfectly arranged for the host can be in a separate location for guests. This can make finely arranging objects to be perfectly aligned a fruitless effort, and the differences can be large. A common issue that represents this would be like framed pictures sinking into walls, or carpets and trim sinking into the floor.

Here’s an example in my friends house:
What he sees:


What I see:

Note how the stairs don’t connect to the second floor, and the room he built underneath the stairs pokes out. He’s able to walk straight up no problem, but guests have to hop up the last step. This is just one of many examples in their condo.


Anyway, this is my last-ditch plea to bring some attention to these problems in hopes that they can be ironed out for both my own personal sake, and before Workshop Condos go live and start getting shared on a wider scale.

I know there are lots of bugs with condos, but I consider these ones more souring because their split-nature often means that both the host and guests aren’t aware of it even happening.

8 Likes

Good summary and visual examples. These desyncing issues definitely are an problem. The worst part is you have no idea what your guests are actually seeing until someone tells you. What scares me is I don’t know how easy these issues would be to resolve. While I agree this is important for Workshop Condos, I think it’ll be vital for Community condos where multiple builders are working in an environment hosted by one person.

Really hope these are things that aren’t difficult to fix or workaround.

6 Likes

This is due to Canvas items having net relevancy settings being applied now. Basically, once you are far from a canvas item, it’ll remove them as they are no longer relevant.

This has a huge benefit when you first load into a condo, it won’t load and download all the canvases all at once, as it’ll only load canvases that are near you. It has a negative where it removes the canvas when you are far, though.

There is no in between unfortunately with Unreal 4. I’ve been wanting a system that only loads nearby canvases when you first join and never remove them afterwards, but a system like that doesn’t exist in Unreal 4. I plan on addressing this soon by creating our own network scheme for canvas items where they do load in, but their images don’t load until you are nearby them, solving both issues. However, there’s also the VRAM issue. Having canvases loaded at all times will cause your VRAM to be filled with canvas data at all times.


As for the desync/placement issues. I currently don’t know why it’s caused. We use Unreal’s built in replication system for location and rotation and it should be accurate to about +/- .001 units (cm) for location and +/- .01 units (°) for rotation.


For the trees, we can look into that issue. And I’ve known about the soda machine for awhile, it’s just been lost in our bug tracker as other bugs are more important. But, we’ve been focusing on Condo fixes due to the Workshop Condo focus.

11 Likes

Looked into the trees and the soda machine, they both should be resolved in the next update.

11 Likes

I think this might be the oldest bug condos have. This has been present for aslong as i remember (possibly even in the beta) its very weird that some items are effected worse than others.

Alright, be that the case, I have to make another point.

After being confused about this for most the of the year, I truly appreciate your willingness to elaborate on these mechanics, though I am disappointed to find out that it’s by design and not just a bug that can be fixed. That said, I have to resent the current system AND the potential, future one that was described. It’s overlooking one major disadvantage, and it’s the main one that spurred me to make this thread: Canvases that are intentionally placed to be viewed from a distance will essentially never render.

To rephrase, it isn’t just items disappearing, so much as items NEVER appearing because they’re placed in areas that people aren’t expected to be, but are still expected to see.

I can’t say if this affects tons of players, but it definitely applies to myself and the friends I’ve made in-game through our ambitious crafting. I touched on this briefly with the Coke billboard example in the OP, but I’d like to provide some grander examples that are harder for me to brush off. Please, pardon the completely shameless showboating of my condos.



In this example, I made a simple transparent graphic streteched out to act like a bridge of light. Because of the necessity for transparency, I used a default canvas. The default canvas has an origin point in the center of the object, meaning they need to be near the center of the object for it to appear.

For visitors, the end result of teleporting into the scene is this:


(FYI canvas spheres seem largely unaffected by these network constraints)

Here’s another. One of the most impactful ways I can change the scenery and feel of an entire map in an optimized way that uses very few objects is via imposing large graphics in the distance:

This isn’t purely for aesthetics either. The canvas serves as a screen that blocks the player’s view of all the other standard & workshop items that don’t have distance limitations. Your plaza also employs methods of hiding constructs and interiors out of view by extreme distances, granted it’s not so crudely done with flat pictures as I’ve done, but I feel like the point still stands if community condos are meant to take the place of player-hosted lobbies.

And you can probably imagine all the other examples that got gimped on this specific snapshot if you look in the background.

Here’s some to drive the point home.



I can’t say whether you guys planned for condos to be made with this level of extreme scale in mind or not, but regardless, this is the kind of freedom that I’ve been messing around with since launch, and it was only since earlier this year that they become impossible to properly display in-game to other players.

I know kneecapping already-implemented optimization isn’t really feasible, but I personally consider these (unintentional) creative restrictions in the favor of optimizations to be just as bad, and in my personal case, obviously worse. I hope there can be some respite.
.
.
.
.
.
.
.
.

thanks tho, lol :+1:

3 Likes

To clarify, it’s not by design. Unreal 4 only has a few networking options that we can tap into for replicating actors (canvases) and there’s either net relevant always (which means load every canvas upon joining, which also means keeping all the canvas data in your VRAM) or load canvases that are nearby (keeping VRAM usage lower).

Yes, this is because of Unreal’s net relevancy. Objects that are far away will no longer be network relevant and will pop out of existence on the client. The fact is that Unreal 4 does not have a networking scheme for what we are doing with Tower, as they did not design for it.

That’s because we set Canvas Primitives to always be network relevant as we know they are used for buildings. Regular canvases were designed for pictures hanging on walls, so they didn’t need to be always relevant. That’s why it’s best to use Canvas Walls or Canvas Cubes.


I am planning on making canvases always net relevant (which solves your issues), but the VRAM usage within Condos will take a major hit by doing so. Having 400-500MB of canvas data filling up VRAM can will impact users who don’t have a lot of VRAM and then they will get blurry textures.

I am presently working on a canvas debugger tool that displays a list of all your canvas data and the total size of all of them so condo owners can manage their VRAM usage. Other than this, there’s not really a lot we can do as this is custom content that can dramatically change based on the condo owner’s usage.

7 Likes

Is it perhaps possible to have a condo tool akin to the Scaler or Copycat that lets people specify themselves which objects they want to always have displayed? Something like a “Prioritizer” tool maybe?

I know it may not be as simple as just flipping a switch and forcing a specific canvas to be network relevant, but if it were possible it could solve the issue of eating up VRAM needlessly, while also allowing furniture items to be viewed from a distance too.

2 Likes

I thought of making the same suggestion, but it sounds kinda sloppy on paper, and, in an ideal setting, the player wouldn’t be wrestling with designing around limitations they themselves can’t even see.

I feel like it’s a reasonable tool. The description can be simplified as “Use this tool to make an item be visible from any distance” or something like that. I think it’s understandable enough for anyone who needs to use it and fills that niche for any condos that require some really far out canvases/furniture.

In any case I still don’t know if it’d be possible but I think it’s a valid solution to this problem if it is :slight_smile:

1 Like