OpenArena / engine

OpenArena modifications to the ioquake3 engine
http://openarena.ws
GNU General Public License v2.0
211 stars 50 forks source link

.pk3 file download rate slow(no more than 13kb/s) in my ubuntu16.04 #42

Closed suijingfeng closed 6 years ago

suijingfeng commented 6 years ago

issue1

I have downloaded many maps files, but none of the download rate can exceed 13kb/s, I uploaded a video to show the case: lowDowloadRate.mp4.zip

My OS is Ubuntu16.04, win7 don't have this issue. Onetime when I play OA on WIN7, I find that the map download speed is much faster than my ubuntu, so i try to figure out where the problem is.

It may cause by libcurl 7.35.0 lib. As I remove the libcurl-7.35.0 folder from the engine SDL2 codebase, then make it link the system default libcurl (7.47.0). After that, the download rate up to 100+kb/s, sometime i can get 1Mb/s.

My system default libcurl is installed by sudo apt-get install curl, the following is the returned information.

Reading package lists... Done Building dependency tree
Reading state information... Done curl is already the newest version (7.47.0-1ubuntu2.6).

Integrating latest libcurl can be done in later time.

You can try my code repository( https://github.com/suijingfeng/engine ), to see if the download speed can be improve in ubuntu16.04.

sago007 commented 6 years ago

For the Windows version I believe that we ship libcurl or compile it with static linking. Problem with that approach is that you really want to be able to update it especially if compiled with SSL support.

Looking at https://curl.haxx.se/libcurl/abi.html it appears that all versions since libcurl 7.16.0 are compatible. Apparently it has been so long that Ubuntu does no longer mark the ABI compatibility level. In that case the problem might be as easy as always looking for libcurl.a if neither libcurl.so.3 or libcurl.so.4 is found.

sago007 commented 6 years ago

The above claim can be tested by setting "cl_cURLLib" to "libcurl.so"

The-Gig commented 6 years ago

If I understood correctly, you are using an ioquake3 fork of your own, using SDL2, instead of the official OA packages (which use SDL1, IIRC), right?

suijingfeng commented 6 years ago

@The-Gig Yes. I use the code fork from https://github.com/OpenArena/engine/tree/sdl2, but my computer also have openarena installed by sudo apt-get install openarena and compile the source git from https://github.com/OpenArena/engine/tree/master. In either way, the download rate is slow sometimes can not download .pk3 files at all. The compiled executable openarena.x86_64 link libcurl.so.4 in my ubuntu16.04. Just as the following snapshot shows, the UI stay at there,dont show the transfer rate, without any change for a long time. issue2

By the way, the master branch can not be used in the case of two displays. In that case, either display will only show "half" of the game window. The super key, Alt key, and PtrSc(print screen) can not be used also. This mean that you can not minimal the game UI window to the ubuntu Launcher.

sago007 commented 6 years ago

After having tested this. I noted that it worked fine for me on Ubuntu 17.10 as long as I compiled with:

make USE_CURL=1

This makes me want to try the nightly Windows builds to see if they have trouble too.

The-Gig commented 6 years ago

Is the SDL2 engine branch actually "active"? I thought that part was removed from Windows Nightly Builds due to not being really supported, but maybe I don't remember correctly...