OP.GG For Tecent/WeGame and Chinese SuperServer

Alternative Frontend for WeGame Match History and Account Lookups.

Download: https://github.com/downthecrop/wegame-tencent-china-opgg

Provides account lookups, match history, profile multi-search, statistics and more. Like OP.GG or Blitz.gg for the Chinese (CN) League of Legends Servers. Available for all area ID’s including the Super Server (Dopa/Apdo plays here) which is Area ID 31.

Pregame lobby Multisearch, Game Details and Profile Statistics from WeGame/Tencent League of Legends LoL API

Instructions

Features:

  • Match History
  • Match Details
  • Multisearch
  • Profile Navigation
  • Profile Statistics
  • Open Source (MIT License)

Support

I will not respond to errors or problems on Twitter but you should still follow me. Report problems here on Github


License

League of Legends DirectX 9 vs DirectX 11 Performance Benchmark

League of Legends DirectX9 vs DirectX11 FPS Performance Test Benchmark. Watch the side by side here

With the release of League of Legends Patch 10.16 there is now official (beta) support for the Direct X11 Rendering backend for League of Legends (LoL). I have conducted a side by side comparison between the old rendering backend D3D9 (DirectX 9) and the new D3D11 (DirectX 11). If you want to enable DX11 in your own game you can follow the instructions provided by Riot here.

Hardware

  • RTX 2080 8GB
  • i7 9700K @ 4.6Ghz
  • 16GB DDR4 RAM
  • NVMe SSD

Drivers/OS

  • NVIDIA 451.67
  • Windows 10 1909

League of Legends

  • Medium, Shadows Disabled
  • 240 FPS Framerate Limit (Recommend)
  • VSync Disabled
  • Patch 10.16

Results

  • DX9 Average: 168.6
  • DX11 Average: 175.2
  • Performance Advantage FPS: 6.5+ DX11
  • Performance Gain Percent: 3.91%

Recording Settings

Note: The impact of OBS with these settings is as low as ~5FPS. When running the tests I had no additional software running other than OBS and League of Legends. In a real use case even if you don’t record/stream the performance impact should be similar to having Chrome/Firefox open with a YouTube video or Discord ect.

H.265 NVENC Encoder Max Quality preset, 2300kbps Bitrate, 1280×720

Dota 2 OpenGL vs Vulkan performance in Linux https://downthecrop.xyz/blog/dota-2-opengl-vs-vulkan-linux/

League of Legends Using Wine and Vulkan D9VK Linux Performance vs Windows (Nvidia)

League of Legends Windows 10 vs Ubuntu Linux 18.04 Performance Graph. Watch my video here.

Hey League of Legends players that also happen to be Linux enthusiasts. Today I would like to share a video comparison I’ve created comparing the difference in performance between League of Legends on Windows 10 and League of Legends on Ubuntu 18.04 Linux. This comparison will provides a frame rate (FPS) graph and and a side by side comparison of performance between the two systems handling the same replay from League of Legends patch 9.24 from Late December 2019.

Hardware

  • RTX 2080 8GB
  • i7 9700K @ 4.6Ghz
  • 16GB DDR4 RAM
  • NVMe SSD

Drivers

  • Win10 – 441.08 WHQL
  • Ubuntu – 430 nonfree
  • Wine: lutris-lol-4.20-x86_64 D9VK/Vulkan Enabled

League of Legends

  • Medium Settings & Shadows
  • 240 FPS Framerate Limit (Recommend)
  • AA Enabled Patch 9.24B (Late Dec 2019)

Results

  • Windows Average: 154
  • Windows One Percent Low: 120
  • Ubuntu Average: 140
  • Ubuntu One Percent Low: 106

Recording Settings

Note: The impact of OBS with these settings is as low as ~5FPS. When running the tests I had no additional software running other than OBS and League. In a real use case even if you don’t record/stream the performance impact should be similar to having Chrome/Firefox open with a YouTube video or Discord ect.

H.264 Encoder veryfast preset, 5000kbps Bitrate, 1280×720 (downsampled from 1080p)

Reading/Writing Data from the League of Legends Client

I went on a very fruitful journey of learning about the League of Legends client or LCU API to try and find how I might go about making an automatic team searching tool for champion select. OP.GG already has an extension that does this but due to some seriously strange reasons it appears that the Korean server has different rules about how you are allowed to interface with the client. Because I am in fact in Korea and would like to use this I decided to make a work around. Anyway. I’ve solve both issues and I thought I could be of use to some future explorers of the League client that may be interested in communicating with it.

Rift Explorer

https://github.com/Pupix/rift-explorer

This is a great tool that helped me a lot in this exercise. The public documentation for the client interfacing API seems to be a little bit shrouded. It appears that they have
publicly acknowledged that this API https://developer.riotgames.com/league-client-apis.html you can read more about this history of interfacing with the client here https://riot-api-libraries.readthedocs.io/en/latest/lcu.html

GET and POST Requests

Rift Explorer will give you lots of options for things to look at with a few GET and POST requests. When I was testing I created a custom game lobby and read the state of the chat room and champion select. After messing around with the application I wanted to see if I was able to get the same JSON data that Rift Explorer was able to get using Chrome to create the request.

The League of Legends client hosts a local web server which is able to be found by using the data found inside of the lock file located in C:\Riot Games\League of Legends\lockfile (or where ever you might be running the executable from). This file is created when you are running the game and includes the port number which the server was created on and the password to interface with the server. This was a little confusing to find at first but using this issue https://github.com/Pupix/rift-explorer/issues/4#issuecomment-348681824 by navigating to localhost:(lockfile port) and using the username “riot” and the generated password in the lockfile you can now make requests with Chrome or any HTTP agent you like.

OP.GG extension modifications

All of your extensions for Chrome are located in C:\Users[login_name]\AppData\Local\Google\Chrome\User Data\Default\Extensions
from here you can read any Javascript or check out all the files that an extension comes with. Thankfully the OP.GG extension isn’t obfuscated so digging through the code is incredibly easy. There a check to see if you’re on the Korean Server for your region. In this case the lobby information will not be displayed.

Although you are technically able to modify the files that are located here in AppData, Chrome checks out the integrity of these files to see if they have been modified. Because of this we need to uninstall the official extension in favor of our own offline version. Since the extension is fully locally stored you can simply make a copy of the folder and place it somewhere nice like your documents and modify anything. For example I’d like to modify the part where I’m not able to use the extension here in Korea. By simply bypassing this check the application now works perfectly.

Project Ideas

When checking out some of the options inside of the client API there are a lot of ideas for projects popping into mind. One of those would be a rewritten version of the OP.GG extension as a desktop app in C# or something. Another idea is an automatic ready check accepter. There was always talk about some kind of app or high ELO players to have on their phone so that if they walked away from their PC for a second while the queue popped they’d be able to accept the game remotely. There is a post function for accepting the match in the API so something like this would be really easy to make actually.