Latest Posts

Topic: Low FPS

einstein13
Avatar
Joined: 2013-07-29, 00:01
Posts: 1100
Ranking
One Elder of Players
Location: Poland
Posted at: 2018-05-06, 01:05

Hi,

I have tried to play second time my tournament game, but I have a terrible problem here. My game can't proceed any further. Somehow I have very low FPS (around 2?) and this is very problematic to play.

My save file

When I started, I have played with debug version downloaded from appveyor. After some time I have reached a point where my game had short period (1 or 2 seconds) where I had full 25 FPS and 6 FPS one. The average was about 10-15 FPS and it wasn't playable any more. So I downloaded the release version and the game was fluent again. Now I don't know what to do with this.

There is also another problem: when I start Widelands, I get message (translated from Polish):

The program can't be run, because on this computer there is no file libreadline7.ddl. Try reinstalling the program to solve the problem.

After confirming the message, it happen again and after that Widelands starts with no problem. I hope it is not the issue and it is solved in current dev version.

Here I have to repeat information that I use virtual machine for the games on my computer so resources (CPU & RAM) can be a bit slower.

So I have two task for you:

  1. Please download the save file and try to run on your machine & Widelands version (if you use dev ones). Please check if you also have low FPS during the play
  2. If so, I have to ask anyone who knows something about debugging (@Tibor ?) to investigate which part of the engine has trouble with this calculations

My first guess was that many resources are trying to find paths and with my complex (math point of view, not human one) can cause terrible problems.


einstein13
calculations & maps packages: http://wuatek.no-ip.org/~rak/widelands/
backup website files: http://kartezjusz.ddns.net/upload/widelands/

Top Quote
ypopezios
Avatar
Joined: 2018-04-20, 00:22
Posts: 220
Ranking
Widelands-Forum-Junkie
Posted at: 2018-05-06, 01:33

For the message about libreadline, I downloaded "libreadline6.dll" from the internet, put it in Widelands' folder (where the rest of the dll files are) and renamed it into "libreadline7.dll". No more complaints.

If it turns out that pathfinder has troubles with your roads, there are ways to simplify it.

Edited: 2018-05-06, 09:57

Top Quote
GunChleoc
Avatar
Joined: 2013-10-07, 15:56
Posts: 3100
Ranking
One Elder of Players
Location: RenderedRect
Posted at: 2018-05-06, 07:17

I have created a bug for the .dll issue, hopefully our Windows packager can fix this. https://bugs.launchpad.net/widelands/+bug/1769426

Pathfinder is definitely a good guess, and with seafaring, it gets even more to do.

Debug builds generally run a lot slower than release builds, because the compiler can't do a lot of optimization.


Busy indexing nil values

Top Quote
einstein13
Avatar
Joined: 2013-07-29, 00:01
Posts: 1100
Ranking
One Elder of Players
Location: Poland
Posted at: 2018-05-06, 18:42

Ok, I have tried to run the game on Intel i7 processor, Windows 10 (no virtual machine) and the game was... also low FPS. A bit faster, but still low. Is there anyone who can help with the digging what is causing this problem?

@ypopezios, do you want to consider changing path finding for wares? I was thinking about the algorithm for that today and I have one idea. I have noticed that you like such a stuff. So if you want, I can start another topic.

For general notice: after installing Widelands from appveyor today the game had no error message. The same version as mentioned above. So probably this message is windows-7 issue, not all windows one face-wink.png


einstein13
calculations & maps packages: http://wuatek.no-ip.org/~rak/widelands/
backup website files: http://kartezjusz.ddns.net/upload/widelands/

Top Quote
Tibor
Joined: 2009-03-23, 23:24
Posts: 1316
Ranking
One Elder of Players
Location: Slovakia
Posted at: 2018-05-06, 19:47

We have some attempt to address the issue of ware routing, you might test if interested:

bzr branch lp:~widelands-dev/widelands/ware_routing_speedup


Top Quote
einstein13
Avatar
Joined: 2013-07-29, 00:01
Posts: 1100
Ranking
One Elder of Players
Location: Poland
Posted at: 2018-05-06, 20:54

Ohh... I can see that:

https://bugs.launchpad.net/widelands/+bug/1750496

And it was given at the end of January. I will check that, but do I have to compile it by myself?


einstein13
calculations & maps packages: http://wuatek.no-ip.org/~rak/widelands/
backup website files: http://kartezjusz.ddns.net/upload/widelands/

Top Quote
Tibor
Joined: 2009-03-23, 23:24
Posts: 1316
Ranking
One Elder of Players
Location: Slovakia
Posted at: 2018-05-06, 21:13

I can formally ask for merge if you wish...


Top Quote
ypopezios
Avatar
Joined: 2018-04-20, 00:22
Posts: 220
Ranking
Widelands-Forum-Junkie
Posted at: 2018-05-07, 02:18

einstein13 wrote:

@ypopezios, do you want to consider changing path finding for wares? I was thinking about the algorithm for that today and I have one idea. I have noticed that you like such a stuff. So if you want, I can start another topic.

The increase of an empire's size should increase mostly the used memory, not much the processing times. One way to achieve that is by performing the routing per flag, instead of per ware. Then each ware decides its next destination reading solely its current flag's info. Such a change would need cooperation of various people and could not target version 20.


Top Quote
Tibor
Joined: 2009-03-23, 23:24
Posts: 1316
Ranking
One Elder of Players
Location: Slovakia
Posted at: 2018-05-07, 07:18

ypopezios wrote:

einstein13 wrote:

@ypopezios, do you want to consider changing path finding for wares? I was thinking about the algorithm for that today and I have one idea. I have noticed that you like such a stuff. So if you want, I can start another topic.

The increase of an empire's size should increase mostly the used memory, not much the processing times. One way to achieve that is by performing the routing per flag, instead of per ware. Then each ware decides its next destination reading solely its current flag's info. Such a change would need cooperation of various people and could not target version 20.

Algorithm has to find ware that is closest to requestor. It checks wares in warehouses and at flags/roads (referred to as providers). "Closest" means connections via roads and ships, so routing has to be performed.

If there are 5 providers - no problem. If there is 150 of them (like traffic jam full of logs or water) - this kills the performance.

Edited: 2018-05-07, 07:45

Top Quote
GunChleoc
Avatar
Joined: 2013-10-07, 15:56
Posts: 3100
Ranking
One Elder of Players
Location: RenderedRect
Posted at: 2018-05-07, 07:50

Since I have worked on it before, I'll pick up the branch and finish it up for Build 20.


Busy indexing nil values

Top Quote