====== Information ====== * RT4 Client ((https://gitlab.com/2009scape/rt4-client)) * These notes provide a game client for 2009Scape * Last tested commit: [[https://gitlab.com/2009scape/rt4-client/-/commit/cd081deb896dc7280da547220074375bb9150a21|cd081deb]] ===== Prerequisites ===== * [[linux;distros;opensuse_tumbleweed_gnome|openSUSE Tumbleweed (GNOME)]] ===== Resources ===== * [[https://cdn.2009scape.org/wiki/quest_guides/quest_guides|Quest Guides]] * [[https://cdn.2009scape.org/wiki/quest_guides/quest_experience_by_skill|Quest Experience by Skill]] ===== Notes ===== * :!: This is for private server use * See [[servers:linux:games:2009scape_localhost|2009Scape localhost Server]] to set-up a server ====== Dependencies ====== * https://gitlab.com/2009scape/rt4-client#instructions sudo zypper install git-core java-17-openjdk-headless java-21-openjdk ====== Download Source ====== * https://gitlab.com/2009scape/rt4-client/-/commits/master?ref_type=heads cd ~ && mkdir -p ~/'Projects' && rm -Rf ~/'Projects/RT4-Client/src' && git clone --branch 'master' --depth '1' --recurse-submodules 'https://gitlab.com/2009scape/rt4-client.git' ~/'Projects/RT4-Client/src' && sync ====== Build ====== ===== Settings ===== sed -i 's/USE_TWEENING = true/USE_TWEENING = false/g' ~/'Projects/RT4-Client/src/client/src/main/java/rt4/GlobalConfig.java' sed -i 's/BILINEAR_MINIMAP = true/BILINEAR_MINIMAP = false/g' ~/'Projects/RT4-Client/src/client/src/main/java/rt4/GlobalConfig.java' sed -i 's/USE_SHIFT_CLICK = true/USE_SHIFT_CLICK = false/g' ~/'Projects/RT4-Client/src/client/src/main/java/rt4/GlobalConfig.java' sed -i 's/MOUSEWHEEL_ZOOM = true/MOUSEWHEEL_ZOOM = false/g' ~/'Projects/RT4-Client/src/client/src/main/java/rt4/GlobalConfig.java' cat ~/'Projects/RT4-Client/src/client/src/main/java/rt4/GlobalConfig.java' | grep 'public static boolean' gnome-text-editor ~/'Projects/RT4-Client/src/client/src/main/java/rt4/GlobalConfig.java' ===== Build ===== **** cd ~/'Projects/RT4-Client/src' && JAVA_HOME='/usr/lib64/jvm/jre-17-openjdk' ~/'Projects/RT4-Client/src/gradlew' 'clean' --no-daemon && JAVA_HOME='/usr/lib64/jvm/jre-17-openjdk' ~/'Projects/RT4-Client/src/gradlew' 'jar' --no-daemon ====== Settings ====== ===== localhost ===== * [[servers:linux:games:2009scape_localhost|2009Scape localhost Server]] mkdir -p ~/'Projects/RT4-Client/conf' && nano ~/'Projects/RT4-Client/conf/localhost.json' { "ip_management": "localhost", "ip_address": "localhost", "world": 1, "server_port": 43594, "wl_port": 43595, "js5_port": 43595, "mouseWheelZoom": false, "pluginsFolder": "null" } ====== Scripts ====== ===== Client Update ===== mkdir -p ~/'Projects/RT4-Client/scripts' && nano ~/'Projects/RT4-Client/scripts/client-update.sh' && chmod +x ~/'Projects/RT4-Client/scripts/client-update.sh' #!/bin/bash git -C ~/'Projects/RT4-Client/src' reset --hard git -C ~/'Projects/RT4-Client/src' pull origin 'master' --rebase sed -i 's/USE_TWEENING = true/USE_TWEENING = false/g' ~/'Projects/RT4-Client/src/client/src/main/java/rt4/GlobalConfig.java' sed -i 's/BILINEAR_MINIMAP = true/BILINEAR_MINIMAP = false/g' ~/'Projects/RT4-Client/src/client/src/main/java/rt4/GlobalConfig.java' sed -i 's/USE_SHIFT_CLICK = true/USE_SHIFT_CLICK = false/g' ~/'Projects/RT4-Client/src/client/src/main/java/rt4/GlobalConfig.java' sed -i 's/MOUSEWHEEL_ZOOM = true/MOUSEWHEEL_ZOOM = false/g' ~/'Projects/RT4-Client/src/client/src/main/java/rt4/GlobalConfig.java' cd ~/'Projects/RT4-Client/src' JAVA_HOME='/usr/lib64/jvm/jre-17-openjdk' ~/'Projects/RT4-Client/src/gradlew' 'clean' --no-daemon JAVA_HOME='/usr/lib64/jvm/jre-17-openjdk' ~/'Projects/RT4-Client/src/gradlew' 'jar' --no-daemon zenity --title '2009Scape Updater' --text 'RT4 Client update complete' --icon ~/'Projects/RT4-Client/src/client/src/main/resources/saradomin.png' --timeout '2' --info # End ~/'Projects/RT4-Client/scripts/client-update.sh' ====== Desktop Launcher ====== ===== 2009Scape (localhost) ===== mkdir -p ~/'.local/share/applications' ~/'Projects/RT4-Client/cache' && nano ~/'.local/share/applications/2009Scape-localhost.desktop' && sed -i 's/'CHANGEME'/'$USER'/g' ~/'.local/share/applications/2009Scape-localhost.desktop' && update-desktop-database --quiet ~/'.local/share/applications' [Desktop Entry] Name=2009Scape Categories=Game; Exec='/bin/bash' -c "cd ~/'Projects/RT4-Client/src/client' && mesa_glthread='false' vblank_mode='3' java -Dsun.java2d.uiScale='1' --add-exports='java.desktop/sun.awt=ALL-UNNAMED' -DclientFps='140' -DclientHomeOverride=$HOME'/Projects/RT4-Client/cache/' -Djava.io.tmpdir=$HOME'/Projects/RT4-Client/cache/' -jar ~/'Projects/RT4-Client/src/client/build/libs/client-'*'.jar' --config ~/'Projects/RT4-Client/conf/localhost.json'" Type=Application StartupNotify=false Icon=/home/CHANGEME/Projects/RT4-Client/src/client/src/main/resources/saradomin.png Actions=HiDPI;Server;Saves;Server-Update;Client-Update;Client-Notes;Server-Notes; [Desktop Action HiDPI] Exec='/bin/bash' -c "cd ~/'Projects/RT4-Client/src/client' && mesa_glthread='false' vblank_mode='3' java -Dsun.java2d.uiScale='2' --add-exports='java.desktop/sun.awt=ALL-UNNAMED' -DclientFps='140' -DclientHomeOverride=$HOME'/Projects/RT4-Client/cache/' -Djava.io.tmpdir=$HOME'/Projects/RT4-Client/cache/' -jar ~/'Projects/RT4-Client/src/client/build/libs/client-'*'.jar' --config ~/'Projects/RT4-Client/conf/localhost.json'" Name=Client (HiDPI) [Desktop Action Server] Exec='/bin/bash' -c "ptyxis --standalone --title='2009Scape Server — ' -- ~/'Projects/2009Scape-Server/scripts/localhost-server-start.sh'" Name=Launch Local Server [Desktop Action Saves] Exec='/bin/bash' -c "~/'Projects/2009Scape-Server/scripts/localhost-save-backup.sh'" Name=Save Data Back-up [Desktop Action Server-Update] Exec='/bin/bash' -c "ptyxis --standalone --title='2009Scape Server Updater — ' -- ~/'Projects/2009Scape-Server/scripts/localhost-server-update.sh'" Name=Update Local Server [Desktop Action Client-Update] Exec='/bin/bash' -c "ptyxis --standalone --title='2009Scape RT4 Client Updater — ' -- ~/'Projects/RT4-Client/scripts/client-update.sh'" Name=Update Client [Desktop Action Client-Notes] StartupNotify=false Exec='/bin/bash' -c "gio open 'https://wiki.realmofespionage.xyz/games:linux:rt4_client_runescape_530'" Name=Client Notes [Desktop Action Server-Notes] StartupNotify=false Exec='/bin/bash' -c "gio open 'https://wiki.realmofespionage.xyz/servers:linux:games:2009scape_localhost'" Name=Server Notes # End ====== Quick Commands ====== ===== Execute ===== **** mkdir -p ~/'Projects/RT4-Client/cache' && cd ~/'Projects/RT4-Client/src/client' && mesa_glthread='false' vblank_mode='3' java -Dsun.java2d.uiScale='1' -XX:+UseSerialGC -Xms1G -Xmx4G --add-exports='java.desktop/sun.awt=ALL-UNNAMED' -DclientFps='120' -DclientHomeOverride=$HOME'/Projects/RT4-Client/cache/' -Djava.io.tmpdir=$HOME'/Projects/RT4-Client/cache/' -jar ~/'Projects/RT4-Client/src/client/build/libs/client-'*'.jar' --config ~/'Projects/RT4-Client/conf/localhost.json' ==== High DPI ==== * ''-Dsun.java2d.uiScale=2'' mkdir -p ~/'Projects/RT4-Client/cache' && cd ~/'Projects/RT4-Client/src/client' && mesa_glthread='false' vblank_mode='3' java -Dsun.java2d.uiScale='2' -XX:+UseSerialGC -Xms1G -Xmx4G --add-exports='java.desktop/sun.awt=ALL-UNNAMED' -DclientFps='120' -DclientHomeOverride=$HOME'/Projects/RT4-Client/cache/' -Djava.io.tmpdir=$HOME'/Projects/RT4-Client/cache/' -jar ~/'Projects/RT4-Client/src/client/build/libs/client-'*'.jar' --config ~/'Projects/RT4-Client/conf/localhost.json' ==== Testing ==== GDK_BACKEND='x11' GDK_SCALE='2' GALLIUM_HUD='cpu0+cpu1+cpu2+cpu3;API-thread-offloaded-slots+API-thread-direct-slots+API-thread-num-syncs;fps' mesa_glthread='true' vblank_mode='0' -DclientFps='999' === FPS === * Uncapped/''999'' FPS limit * ''vblank_mode=0'' * ''GDK_BACKEND=x11'' mkdir -p ~/'Projects/RT4-Client/cache' && cd ~/'Projects/RT4-Client/src/client' && GDK_BACKEND='x11' GALLIUM_HUD='cpu0+cpu1+cpu2+cpu3;API-thread-offloaded-slots+API-thread-direct-slots+API-thread-num-syncs;fps' mesa_glthread='false' vblank_mode='0' java -Dsun.java2d.uiScale='1' -XX:+UseSerialGC -Xms1G -Xmx4G --add-exports='java.desktop/sun.awt=ALL-UNNAMED' -DclientFps='999' -DclientHomeOverride=$HOME'/Projects/RT4-Client/cache/' -Djava.io.tmpdir=$HOME'/Projects/RT4-Client/cache/' -jar ~/'Projects/RT4-Client/src/client/build/libs/client-'*'.jar' --config ~/'Projects/RT4-Client/conf/localhost.json' mkdir -p ~/'Projects/RT4-Client/cache' && cd ~/'Projects/RT4-Client/src/client' && vblank_mode='3' java -Djdk.gtk.version='3' -Dsun.java2d.uiScale='1' --add-exports='java.desktop/sun.awt=ALL-UNNAMED' -DclientFps='146' -DclientHomeOverride=$HOME'/Projects/RT4-Client/cache/' -Djava.io.tmpdir=$HOME'/Projects/RT4-Client/cache/' -jar ~/'Projects/RT4-Client/src/client/build/libs/client-'*'.jar' --config ~/'Projects/RT4-Client/conf/localhost.json' ===== Update ===== * https://gitlab.com/2009scape/rt4-client/-/commits/master?ref_type=heads git -C ~/'Projects/RT4-Client/src' reset --hard && git -C ~/'Projects/RT4-Client/src' pull origin 'master' --rebase && cd ~/'Projects/RT4-Client/src' && sed -i 's/USE_TWEENING = true/USE_TWEENING = false/g' ~/'Projects/RT4-Client/src/client/src/main/java/rt4/GlobalConfig.java' && cd ~/'Projects/RT4-Client/src' && ~/'Projects/RT4-Client/src/gradlew' 'clean' --no-daemon && ~/'Projects/RT4-Client/src/gradlew' 'jar' --no-daemon && cd ~ && sync ~/'Projects/RT4-Client/scripts/client-update.sh' ptyxis --standalone --title='2009Scape RT4 Client Updater — ' -- ~/'Projects/RT4-Client/scripts/client-update.sh' ===== gradlew ===== * Lists available ''gradlew'' commands * ''tasks --all'' for more Tasks * ''gradlew.bat --stop'' to stop Gradle daemons in-lieu of ''--no-daemon'' cd ~/'Projects/RT4-Client/src' && ~/'Projects/RT4-Client/src/gradlew' 'tasks' --no-daemon ===== Git ===== git -C ~/'Projects/RT4-Client/src' fsck --full --strict git -C ~/'Projects/RT4-Client/src' gc --aggressive --prune='all' ===== File Manager ===== ==== Root ==== **** gio open ~/'Projects/RT4-Client/src' ====== Tests ====== ===== GTK3 ===== * ''jdk.gtk.version=3'' sudo zypper install 'libgthread-2_0-0' ~/Projects/RT4-Client/src/client> mkdir -p ~/'Projects/RT4-Client/cache' && cd ~/'Projects/RT4-Client/src/client' && java -Dsun.java2d.uiScale='1' --add-exports='java.desktop/sun.awt=ALL-UNNAMED' -DclientFps='999' -DclientHomeOverride=$HOME'/Projects/RT4-Client/cache/' -Djava.io.tmpdir=$HOME'/Projects/RT4-Client/cache/' -Djdk.gtk.version='3' -jar ~/'Projects/RT4-Client/src/client/build/libs/client-'*'.jar' --config ~/'Projects/RT4-Client/conf/localhost.json' ===== Flags ===== * VK and ''WLToolkit'' need JetBrain's java -Djdk.gtk.verbose='True' -Djdk.gtk.version='3' -Dawt.toolkit.name='WLToolkit' -Dsun.java2d.vulkan='True' -Dsun.java2d.vulkan.deviceNumber='1' J2D_TRACE_LEVEL='1' _JAVA_AWT_WM_NONREPARENTING='1' GDK_BACKEND='wayland'