Jump to content
  • 0
Sign in to follow this  
WijkagentAdrie

RESOLVED Game performance / entity amount limitations

Question

Hello!

I'm hoping to get a discussion going (also with the rest of the players!) about block limitations. I've tried to find the limit of what's possible for both the game and the editor when building my Modular Stadium:

Whether using the play area or not, high or low graphics or not, the game will keep stuttering when moving/driving around, probably when loading blocks. The result is that it's not really doable to have a race in there. My PC specs are i7 5700, 8GB of ram and a GTX 960M. Definitely not the best, but not bad either. The play area is definitely very useful though! I also have no idea on the actual part count, but be advised that the roof is made of 1x2 slopes and 1x1 blocks, double layered.

Anyway, my point isn't to say "the game isn't optimised", my question is, should this game be more optimised? Are the devs already working on this? Should we even be able to build this much? Ofcourse there is gonna be a limit to what is realistically possible and maybe I have went over that limit already with this stadium. What should we be able to build? A few houses? What will happen when groups of players build cities and literally fill an island?

I'm curious to see how both the Ylands team and the rest of the players think about this :) 

Adrie

Share this post


Link to post
Share on other sites

9 replies to this bug / suggestion

Recommended Posts

  • 0

In current version this should much better, but of course there are always limits, Blueprints can be used up to 50K blocks on PC (not dynamic ones of course). Many players have building with 100K+ blocks on their maps and it works. 200K blocks on one block of terrain (96*96*96meters) makes loading times very long so it is not recommended

500K + blocks on one terrain block makes the game loading times unbearable.

Share this post


Link to post
Share on other sites
  • 0
1 hour ago, WijkagentAdrie said:

Hello!

I'm hoping to get a discussion going (also with the rest of the players!) about block limitations. I've tried to find the limit of what's possible for both the game and the editor when building my Modular Stadium:

Whether using the play area or not, high or low graphics or not, the game will keep stuttering when moving/driving around, probably when loading blocks. The result is that it's not really doable to have a race in there. My PC specs are i7 5700, 8GB of ram and a GTX 960M. Definitely not the best, but not bad either. The play area is definitely very useful though! I also have no idea on the actual part count, but be advised that the roof is made of 1x2 slopes and 1x1 blocks, double layered.

Anyway, my point isn't to say "the game isn't optimised", my question is, should this game be more optimised? Are the devs already working on this? Should we even be able to build this much? Ofcourse there is gonna be a limit to what is realistically possible and maybe I have went over that limit already with this stadium. What should we be able to build? A few houses? What will happen when groups of players build cities and literally fill an island?

I'm curious to see how both the Ylands team and the rest of the players think about this :) 

Adrie

I found that I had to abandon the idea of the Racing & Resort game mode I made, primarily because every time you came back around the island to the 'resort' side of it, it would cause some lag and stuttering as it loaded all the blocks in, which was likely going to be the case, I just didn't think about it in advance of building it!

My second attempt - Race Yland, is almost flawless as far as smooth fps goes, primarily I presume down to the 'play area', and the fact that the only blocks consist of a tower that is generally too small to cause and loading issues. I think one thing that could improve this in the future, would be that of bundling of blocks together in to larger blocks, as you mentioned earlier. Effectively only having to load in one giant block, instead of thousands of individual blocks etc.

Share this post


Link to post
Share on other sites
  • 0

Before I say how I think it should be fixed lets go into why you are having the performance issues in the first place.

In your stadium your main building block is a stone block which is a very small block for what you are building. It looks like there are well over 10,000 of them in your stadium. Each block has 6 faces so your computer has to render over 60000 faces(This number could be a lot lower depending on if they are rendering faces that you can't see). Rendering that many faces can put a lot of strain on a computer.

There are 2 ways to fix it that I can think of.

1. If two or more of the same blocks are touching they would combine edges.

Pros:

  • The user wouldn't have to do any work to make sure their builds are optimized

Cons: 

  • It may be impossible to do based on how blocks are handled
  • It would take a lot of time to implement correctly

2. They can add new blocks called "Wall Blocks". Wall blocks are a bigger block that looks like it is made up out of multiple smaller blocks(There would be different sizes of them).

Pros:

  • Easy and quick to implement

Cons:

  • The players would have to make sure their builds are optimized
  • The issue may still exist with larger builds
Edited by Shadow72

Share this post


Link to post
Share on other sites
  • 0
8 minutes ago, Shadow72 said:

Before I say how I think it should be fixed lets go into why you are having the performance issues in the first place.

In your stadium your main building block is a stone block which is a very small block for what you are building. It looks like there are well over 10,000 of them in your stadium. Each block has 12 edges so your computer has to render over 120000 edges(This number could be a lot lower depending on if they are rendering edges that you can't see). Rendering that many edges can put a lot of strain on a computer.

There are 2 ways to fix it that I can think of.

1. If two or more of the same blocks are touching they would combine edges.

Pros:

  • The user wouldn't have to do any work to make sure their builds are optimized

Cons: 

  • It may be impossible to do based on how blocks are handled
  • It would take a lot of time to implement correctly

2. They can add new blocks called "Wall Blocks". Wall blocks are a bigger block that looks like it is made up out of multiple smaller blocks(There would be different sizes of them).

Pros:

  • Easy and quick to implement

Cons:

  • User would have to make sure their builds are optimized
  • The issue may still exist with larger builds

Interesting views there! I've tried to use as many 1x4x2, 2x4x2 and 1x2x1 stone slopes as possible to reduce the part count. One place where this is impossible is the roof, which is mainly built out of 1x1x2 slopes and 1x1x1 cubes.

I have the vague feeling that solution 1 is already being used, because when I place 2 modules against each other I feel that the performance gets better. One thing that I do notice in the editor however, is that not every block gets placed correctly. Rotations and positions randomly vary between -0.000010 and 0.000010, when blocks are placed exactly on grid. Sometimes the variations are bigger and more odd numbers. If the system you mentioned is quite sensitive, it may affect the optimization and the rendered won't combine the edges. One of the other problems I can see with this is that Ylands apparently doesn't use any textures at all, but relies on polygons being colored. I'm not sure if this way of optimization is possible that way?

For solution 2, say if you build a large city/town consisting of many small, detailed buildings this isn't quite a useful solution right? It mainly works on large, repetitive buildings/structures.

Adrie

Share this post


Link to post
Share on other sites
  • 0

I have also noticed how the blocks will sometimes be slightly off grid. Solution 1 isn't being used right now, the reason why you get a slight performance increase is because they are not rendering faces you can't see.

I am not too sure if them using polygons to color blocks instead of textures is affecting performance but if they were using textures it would be a lot easier to optimize.

Solution 2 would only help with bigger buildings, but that is where most of the lag comes from so you would still see a big fps increase.

Edited by Shadow72

Share this post


Link to post
Share on other sites
  • 0

This would probably require a longer explanation (and there will probably be one as a part of some future Dev Diary) but to make the long story short: yes, the game should be more optimized :).

There's still a lot of things we can do on our side (some of them quite major) plus the Unity engine itself is getting more efficient performance-wise. My rough estimate is that we will be able to tell where the actual limits lie after the most of the planned optimizations are finished which should be in about six months or so (definitely before the game comes out of Early Access).

  • Upvote 1

Share this post


Link to post
Share on other sites
  • 0

Something else to keep in mind is this IS an alpha currently and typically performance isn't a top priority at this point as content normally is whilst making sure it still runs smoothly but probably not at its best. Beta is typically where performance & optimization becomes a core focus in the development cycle with adding new content being of slightly less priority, Although what I have stated can vary and may not be the case all the time as different studios/team function differently depending on what works best for them.

The Unity Engine like Ales said has come a long way in terms of optimization and performance and even ways to allow developers to do that extra mile in terms of performance, for example, GPU Instancing which can go a long way if used correctly.

I do not think that limiting how much the player can build as yeah sort of suggested is an option as that is basically like limiting the player creativity and I don't think the Team wants that at all, If anything they'd want to expand your ability to be creative even further, Mesh combining could be an option but idk how much quicker that would actually be since you have to combine and then render the mesh in real time which may be just as slow as loading the objects.

An option could be to moving the building blocks to a voxel-like system much like the terrain but w/o the terrain stuff, uh yeah sorta hard to explain clearly and I do not wish to ramble on but you should get a general idea of what I mean, This would be much faster than combining meshes in real time.

Edited by nohalfmeasures
  • Like 1

Share this post


Link to post
Share on other sites
  • 0

I build castle and touched game limits too (unity error). I know how to improved castle for better optimalization now (thanks @Adam Snellgrove ), but for castle future and more details - is there something new with this topic? 

Sorry for my english...

@Aleš Ulm
Konkrétně Vás se zeptám v češtině, protože angličtinu moc nezvládám. Na stavbě hradu bych chtěl pokračovat a chtěl bych docílit co největšího možného počtu detailů. Již jsem situaci řešil s polobohem ? @Adam Snellgrove, (nechápu, jak může být tak úžasňákový!) :D  a HOOOODNĚ mi poradil, ale řekl jsem si, že to budu řešit v topiku tomu přímo určeném. Když se Adam přidá, budu jen rád. Tedy...

V dřívějších příspěvcích se psalo, že se to bude řešit. Tak se ptám nyní "aktualizovaně" - přecejen to bylo v roce 2017. Je v plánu další vylepšení možností, případně jaký je nejlepší možný způsob, jak docílit NEJLEPŠÍCH výsledků? Má team v plánu vydat nějaký tutorial? Momentálně na radu Adama, potažmo někoho z teamu od podpory, jsem rozdělil od sebe vzdálené svařené entity na trošku menší a provedl automatickou optimalizaci. Problém s dropy to částečně vyřešilo, ale i tak se ale potýkám v určitých situacích s drop hry, byť  s méně častými - konkrétně s unity crashy a to hrad zatím nemá ani střechu ? . Je pravdou, že v hradu je mnoho entit naprosto zbytečných (např. vnitřní zdivo, které není vidět) a mám v plánu stavbu i rapidně zredukovat o tisíce nepotřebných entit, ale i tak... Vzhledem k tomu, že na střechu budu potřebovat tisíce dalších entit, je mi jasné, že se pohybuji již teď na hraně možného, což mě dost mrzí. 

Alternativně se zeptám. Není možné udělat, aby se bloky, které nejsou vidět nerenderovaly a nezatěžovali tak hru? Momentálně se pohybuji na cca 5-6 milionech zobrazených polygonů, ale kdyby se nerenderovaly nepotřebné polygony, budu odhaduji na sotva třetině....

PS: fotka hradu není zcela aktuální, hra začala padat až s hotovým krovem nad palácem u bergfritu a další věží, tzn. cca +3000 entit. Případnou odpověď zvládnu přeloskat i v angličtně, to mi nevadí...

S díky... Petr / Azaren

image.png.5b3c637df1859eb37911d70167dc1497.png

Edited by bures.peter

Share this post


Link to post
Share on other sites
  • 0

Now i try test game with 50 milions polygons cubes and game (unity) dont drop and my PC have still 30 FPS. My castle have in maximum wiew 11 milions polygons, but game sometimes drop. I will need more tests...  

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×