Gana FPS en juegos desactivando Unity Engine Telemetry

Gana FPS en juegos desactivando Unity Engine Telemetry

Javier López

La cantidad de motores para juegos se va agrandando, lo que obliga a las compañías que los desarrollan a innovar constantemente. Muchas de esas innovaciones no van, precisamente, en pos de mejorar el rendimiento del juego que lo porte o incluir mejoras como tal, sino en perjuicio del propio usuario. Un ejemplo es Unity Engine, del cual ahora se sabe que incorpora telemetría para la compañía. Por suerte, ya existe una herramienta que puede desactivarlo y con ello ganar rendimiento.

La polémica llegó a través del usuario RTB, el cual vio que tras jugar a Kerbal Space Program el motor Unity incluía con este un conjunto de DLL que se encargan de realizar funciones de telemetría bajo el apodo de Unity Analytics.

El problema, es que esta telemetría no se puede eliminar y se implementa de forma automática entre las versiones del motor entre los años 2017 y 2019, donde es esperable que siga en el futuro. Por suerte, dicho usuario ha creado una utilidad para evitar esto llamada UnityAnalyticsKiller, la cual realiza lo que su nombre indica, terminar con dichos procesos y de paso hacernos ganar algo de rendimiento.

UnityAnalyticsKiller: la solución al espionaje del motor Unity

Esta utilidad tiene la función de terminar con la telemetría, pero para ello quizás sea interesante entender cómo lo hace y en que se basa.

UnityAnalyticsKiller produce la llamada Clear Room, lo cual invalida las DLL del motor y permite que siga funcionando sin tener que borrarlas con los consecuentes problemas que entraña esto. Para ello, tanto el usuario RTB como su socio Dan usaron ingeniería inversa para comprender cuales eran los daños que este tipo de software produce en el rendimiento y qué estaba haciendo en concreto.

Los resultados fueron más comprometedores en el caso de la privacidad, ya que según afirman, algunas actividades podrían violar la EULA. Por ello, ambos escribieron el código de las DLL en blanco, algo que en programación se denomina como dummy class DLLs.

Pasos a seguir para terminar con la telemetría

Lo primero que tenemos que hacer es encontrar la carpeta o carpetas que incluyan las siguientes DLL dentro de nuestro juego:

  • Unity.Analytics.DataPrivacy.dll
  • Unity.Analytics.StandardEvents.dll
  • Unity.Analytics.Tracker.dll
  • UnityEngine.CrashReportingModule.dll
  • UnityEngine.PerformanceReportingModule.dll
  • UnityEngine.UnityAnalyticsModule.dll

Para encontrarlas, o bien puedes abrir una ventaja del Explorador de archivos en Windows y buscar los nombres en el cuadro de búsqueda, o mejor todavía sería acotar dicha búsqueda yendo directamente al directorio donde tengas el juego instalado y realizándola ahí (tardará muchísimo menos tiempo en encontrar los archivos).

Como ya hemos comentado UnityAnalyticsKiller lo único que va a conseguir es reemplazar dichas DLL por unas que están en blanco y enfocarlas a que el juego siga funcionando sin dichas restricciones.

Cabe decir que en juegos anteriores con Unity podríamos encontrar una DLL más llamada «UnityEngine.Analytics.dll». Dicho esto, una vez que tengamos localizadas todas las DLL, podremos descargarnos la utilidad desde Github, donde está cada poco tiempo actualizándose.

Una vez que bajemos el .zip, tendremos la siguiente visión de las DLL:

UnityAnalyticsKiller

Solo tendremos que descomprimir dichos archivos en el directorio donde estén las DLL originales, sobrescribirlas si se precia y listo.

Al iniciar nuestro juego lo único que veremos (si usamos algún software como Wireshark) es que se hace ping a los servidores de Unity, pero las cadenas están en su gran mayoría en blanco, tras lo cual, no volverá a molestar al rendimiento del juego.

Por desgracia, y si bien se sabe que hacer esto tiene un impacto positivo en el rendimiento de los juegos que usan el motor Unity, en cada caso es diferente y no lo han cuantificado. En otras palabras, el juego va un poco mejor pero no han determinado cuánto mejor.