Server-side Custom POIs

str0ngb4d

Refugee
I would love for server-side custom POIs to be fully supported as long as they only use assets (e.g. blocks) that are also server-side friendly.

Custom server-side POIs _sorta_ work. You can build a world using them, visit the POIs, get and complete quests in them, but if you want to use the POI teleporter or know when you're actually inside a custom POI and what tier (skull level) it is, you need at least some of the POI assets on the client as well. There may be other things that are broken, but so far I haven't seen any. It's so close to fully working!

So it seems like a couple small features would unlock a whole lot of potential. POIs are such an amazing part of the game. And not everyone is comfortable installing client mods, or supporting folks in doing that. It would be great if server-side custom POIs were supported.

Regards,


Strong
 
I would love for server-side custom POIs to be fully supported as long as they only use assets (e.g. blocks) that are also server-side friendly.

Custom server-side POIs _sorta_ work. You can build a world using them, visit the POIs, get and complete quests in them, but if you want to use the POI teleporter or know when you're actually inside a custom POI and what tier (skull level) it is, you need at least some of the POI assets on the client as well. There may be other things that are broken, but so far I haven't seen any. It's so close to fully working!

So it seems like a couple small features would unlock a whole lot of potential. POIs are such an amazing part of the game. And not everyone is comfortable installing client mods, or supporting folks in doing that. It would be great if server-side custom POIs were supported.

Regards,


Strong
It would be nice, but I'm not sure it will happen. Many world have hundreds of thousands of different custom POI on them. The download of the world for those would be much larger if it has to include all the custom POI information. If a player really wants to use custom POI, they will make the effort to figure out how to do so. If they don't want to do that, then they don't really care about the custom POI.
 
There may be other things that are broken, but so far I haven't seen any. It's so close to fully working!

Key racks don't work (and some other triggers). That sounds minor, but would involve the server having to send down the XML files for all of the POIs so the information for those kinds of triggers were available for the client to process.

Clients don't have the imposters. That sounds major. Without downloading the imposter, clients would have to download all of the blocks for all POIs that are distant from the player and generate their own local imposters. The network and CPU load would be large.
 
The download of the world for those would be much larger if it has to include all the custom POI information.

Are you sure everything in the Prefabs folder is needed or just the XML? I agree that if it's everything that's too much to ask, but based on the behavior I'm seeing, it may be just the XML, which shouldn't be very much to send.
Post automatically merged:

Clients don't have the imposters. That sounds major.

This is a good time to ask, because I see it all the time in the logs: what's an imposter? How does it relate to POIs? Is it like a placeholder block that might become many things based on RNG? Different types of cars or something?
 
This is a good time to ask, because I see it all the time in the logs: what's an imposter? How does it relate to POIs? Is it like a placeholder block that might become many things based on RNG? Different types of cars or something?

An imposter is basically a simplified 3D model of a POI that is to be shown at a distance. It's job is to allow the client to display buildings in the distance without having to have all of the blocks for all POIs.

POIs have 6 files, one of which is the MESH file, which is that 3D model. The Prefab Editor has a tool that makes them.

The POI "abandoned_house_02" has MESH file that is 162KB. If you installed my modlet (250 POIs, 50+ Tiles) you might have about 50 MB to download to each client just for the MESH files. (Not all POIs have a MESH file that big, but it is one of the larger files.)
 
Are you sure everything in the Prefabs folder is needed or just the XML? I agree that if it's everything that's too much to ask, but based on the behavior I'm seeing, it may be just the XML, which shouldn't be very much to send.
Post automatically merged:



This is a good time to ask, because I see it all the time in the logs: what's an imposter? How does it relate to POIs? Is it like a placeholder block that might become many things based on RNG? Different types of cars or something?
Imposters are how the game shows things in the distance without displaying them in full detail to improve performance. Those aren't part of the XML.

ZZTong beat me to it with a much better explanation. 😁
 
50 MB to download to each client just for the MESH files

Ah, yeah, that's a bigger deal. Thanks for explaining.

I would be okay with putting a limit on things. Either imposters just aren't used for those POIs on the client or there's some limit on how big they can be. Or maybe there are some common ones you can reuse. Do all the houses need to have different imposters ("little houses, on the hillside; little houses, all the same")? Or the factories? Maybe there are a few of each that come with the game that work well enough. Like you can provide a custom imposter, but there's also a pointer to a stock imposter "if you must."

Maybe it's not possible, certainly it's not a simple as I was hoping, but I think it would be so great for the playerbase--the large percentage of the player base that don't or can't use client mods--to have access to the great work you do zztong along with all the other prefab artists. So even if there are some pretty severe limitations, maybe it would be a worthwhile investment.
 
Or maybe there are some common ones you can reuse. Do all the houses need to have different imposters

Yes, the game doesn't attempt to have some standard MESH to show. A MESH is built for each POI so that the MESH looks like each POI. A MESH for a skyscraper will look like THAT skyscraper.

Another thing to consider is that since POI can be changed, MESH files can go out of date. For instance, in an earlier version of the game some friends and I destroyed a skyscraper. (We took out the foundation and collapsed it.) From a distance we could still see the skyscraper because we were being shown its MESH.

Then, in a later version, the game was given the ability to recompute a MESH is the background. IIRC, they let 2 CPU cores be dedicated to that task. There were performance issues with that. I'm not sure that feature is still there. I want to think it is but perhaps works more slowly. I should go looking for those options again, but haven't.

What you could do is make the world so much more foggy that it no longer needs to show POIs in the distance.

I, and other Prefab makers, would love for POIs to be server-side only. It would save me some support effort. Something I could see coming might be a combination of things:

  1. Steam Workshop Support and POI modlets appearing there.
  2. Servers given the ability to say "here's a list of modlets to be installed on the client from the Steam Workshop before you can login."
 
Back
Top