Client performance update thread

Forum for alternative clients, mods & discussions on the same.

Re: Client performance update thread

Postby shubla » Sun Apr 07, 2019 2:10 pm

shubla wrote:Client performs quite well when there aren't many objects visible. (Especially animated ones, like animals)

I am sure that FPS will drop when people build bigger villages.

In my village my fps is only 35 If I disable shadows, it increases to around 40-50. If I also disable animations (morphed meshes or what they were) it increases to 60. But of course, the game looks pretty bad then!
Image
I'm not sure that I have a strong argument against sketch colors - Jorb, November 2019
http://i.imgur.com/CRrirds.png?1
Join the moderated unofficial discord for the game! https://discord.gg/2TAbGj2
Purus Pasta, The Best Client
User avatar
shubla
 
Posts: 13043
Joined: Sun Nov 03, 2013 11:26 am
Location: Finland

Re: Client performance update thread

Postby DPblH » Tue Apr 09, 2019 9:58 am

I am agree with shubla. I also have sets of modded resources without mesh morph animations, texture rotations and some disabled skeleton animations. This is only way for me to play at 50-60 fps, but yeah, the game become too ugly :(
Give a man a game engine and he delivers a game. Teach a man how to make a game engine and he never delivers anything.
User avatar
DPblH
 
Posts: 427
Joined: Wed Jun 09, 2010 4:57 pm

Re: Client performance update thread

Postby Alitis » Tue Apr 09, 2019 10:04 am

:o I get around 19-20 fps with shadows disabled... And my laptop is not old. Nvidia950 on it
No extra meshes or anything
User avatar
Alitis
 
Posts: 123
Joined: Wed Jun 20, 2018 5:04 pm

Re: Client performance update thread

Postby loftar » Mon Jun 03, 2019 2:02 am

It's (finally) time for another status update. The new client is actually mostly working at this point. Since the last update, most of the things I've been doing is converting lots of small things here and there, too numerous and piecewise insignificant to list, but the last "block" of things I've completed is all the "custom" graphics for various different objects, like cow textures, barterstand items, display signs, tracking effects, smoke, drug effects and all those various little miscellaneous things.

I think the only real things that are missing at this point are instanced rendering and shadows, and out of those I'm currently working on instancing. I expect shadow rendering to be a fairly small thing (given that it uses much of the very same infrastructure that click-testing does). I'm only saving it for last to see whether it can properly re-use the same instancing data as the primary rendering uses. Instancing is certainly the bigger sub-project of the two, but it's coming along.

Technically, it should actually be possible to start testing the client publicly at this point, since instancing is really only a performance optimization (albeit a very important one), but setting up a public testing environment is not completely trivial since it requires a separate set of resources (with differing versions). It has to be done sooner or later, of course, since the client will have to be tested before switching to it entirely. I'm just waiting with that until the real work is done. The "future work" part of the OP still remains, though.


Time-wise, since everything seems to be almost complete, I actually don't expect it to take all that much longer. I'm sure there will be bugs aplenty to fix once public testing starts, but unless there are any really hard-to-fix ones (here's to hoping there aren't), I'd expect the new client to be done and in use before summer is over, hopefully sooner rather than later.

Performance-wise, it's actually looking somewhat better than expected. It is, of course, hard to test actual realistic situations (so perhaps I shouldn't be counting my chickens before they hatch, and such), and the lack of instancing and shadows also makes it hard to compare to the current client, but as intended, the "actual client rendering" (as defined in the OP) has been pretty much removed as a bottleneck. More surprisingly though, the OpenGL dispatch performance also seems to have improved somewhat significantly (30% faster in one recent test, when compared to the current client with shadows turned off), and that's despite the current lack of instancing. I'm honestly not sure why that even is, but it might be related to the OpenGL backend having more information to order rendering more intelligently. I expect the "vertex-data atlasing" mentioned in the OP to improve it further. Experimentally, I've also tried parallelizing per-tick work over several cores, which does seem to cause a somewhat significant improvement when there are many animated objects being rendered at once, but also has a not insignificant amount of overhead, so there is probably some kind of balance to be struck for when to use it, and I'm not yet entirely sure where that balance lies.


Since the new client isn't really intended to look different in any way, screenshots don't really say a whole lot, but I thought I'd include one anyway if only because it makes the post look more significant:
ss.jpeg
ss.jpeg (633.67 KiB) Viewed 1008 times

I guess the stats look a bit different.
"Object-oriented design is the roman numerals of computing." -- Rob Pike
User avatar
loftar
 
Posts: 8926
Joined: Fri Apr 03, 2009 7:05 am

Re: Client performance update thread

Postby loleznub » Mon Jun 03, 2019 2:21 am

Why does that cow have an anvil in its chest?
loleznub
 
Posts: 596
Joined: Sat Sep 14, 2013 4:26 am

Re: Client performance update thread

Postby loftar » Mon Jun 03, 2019 2:27 am

loleznub wrote:Why does that cow have an anvil in its chest?

I apologize to the cows. They, and the anvil, were inside a house that has since decayed.
"Object-oriented design is the roman numerals of computing." -- Rob Pike
User avatar
loftar
 
Posts: 8926
Joined: Fri Apr 03, 2009 7:05 am

Re: Client performance update thread

Postby loleznub » Mon Jun 03, 2019 2:52 am

loftar wrote:I apologize to the cows. They, and the anvil, were inside a house that has since decayed.


Ah this makes sense, thanks for the clarification.

loftar wrote:... They, [...] were inside a house that has since decayed.


Image


Wait, what? You're stuffing that many cows inside your house???
loleznub
 
Posts: 596
Joined: Sat Sep 14, 2013 4:26 am

Re: Client performance update thread

Postby Ardennesss » Mon Jun 03, 2019 3:22 am

I sincerely hope you're coding on a potato if you're getting 32 FPS with only that on your screen... Otherwise, I don't have super high hopes for the outcome of this project.
ImageImage
ImageImageImageImage
User avatar
Ardennesss
 
Posts: 1127
Joined: Sun Oct 06, 2013 4:22 pm

Re: Client performance update thread

Postby loftar » Mon Jun 03, 2019 3:27 am

Ardennesss wrote:I sincerely hope you're coding on a potato if you're getting 32 FPS with only that on your screen... Otherwise, I don't have super high hopes for the outcome of this project.

Actually, that's just because I have a weird issue with my GPU sometimes in that, when it isn't loaded enough, it stays clocked down to the power-saving performance state even though that causes individual frames to run over (since the next frame is still mostly idle due to vsync, the driver doesn't consider it loaded enough to clock up). It's happens particularly often to me in houses or caves, but sometimes also outside like this. It's actually pretty retarded, but I also haven't cared enough to try to solve it.
"Object-oriented design is the roman numerals of computing." -- Rob Pike
User avatar
loftar
 
Posts: 8926
Joined: Fri Apr 03, 2009 7:05 am

Re: Client performance update thread

Postby Ardennesss » Mon Jun 03, 2019 3:52 am

loftar wrote:
Ardennesss wrote:I sincerely hope you're coding on a potato if you're getting 32 FPS with only that on your screen... Otherwise, I don't have super high hopes for the outcome of this project.

Actually, that's just because I have a weird issue with my GPU sometimes in that, when it isn't loaded enough, it stays clocked down to the power-saving performance state even though that causes individual frames to run over (since the next frame is still mostly idle due to vsync, the driver doesn't consider it loaded enough to clock up). It's happens particularly often to me in houses or caves, but sometimes also outside like this. It's actually pretty retarded, but I also haven't cared enough to try to solve it.
A good real world test would be to test the new performance with ~100 animals on screen.
ImageImage
ImageImageImageImage
User avatar
Ardennesss
 
Posts: 1127
Joined: Sun Oct 06, 2013 4:22 pm

PreviousNext

Return to The Wizards' Tower

Who is online

Users browsing this forum: Bytespider [Bot] and 12 guests