Both sides previous revisionPrevious revisionNext revision | Previous revision |
games:linux:rt4_client_runescape_530 [2025/01/21 06:11] – Sean Rhone | games:linux:rt4_client_runescape_530 [2025/04/26 03:41] (current) – [Testing] Sean Rhone |
---|
| |
* These notes provide a game client for 2009Scape | * These notes provide a game client for 2009Scape |
| * Last tested commit: [[https://gitlab.com/2009scape/rt4-client/-/commit/cd081deb896dc7280da547220074375bb9150a21|cd081deb]] |
| |
===== Prerequisites ===== | ===== Prerequisites ===== |
| |
* [[linux;distros;fedora_workstation_gnome|Fedora Workstation]] | * [[linux;distros;opensuse_tumbleweed_gnome|openSUSE Tumbleweed (GNOME)]] |
| |
===== Resources ===== | ===== Resources ===== |
* [[https://cdn.2009scape.org/wiki/quest_guides/quest_guides|Quest Guides]] | * [[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]] | * [[https://cdn.2009scape.org/wiki/quest_guides/quest_experience_by_skill|Quest Experience by Skill]] |
| |
==== Web ==== | |
| |
* [[https://forum.2009scape.org/viewtopic.php?t=1038-singleplayer-server-rt4-client-master-branches-scripts-and-desktop-start-launchers-on-windows-linux|2009Scape Forums]] | |
| |
===== Notes ===== | ===== Notes ===== |
* https://gitlab.com/2009scape/rt4-client#instructions | * https://gitlab.com/2009scape/rt4-client#instructions |
| |
sudo dnf install git java-openjdk java-17-openjdk-headless | sudo zypper install git-core java-17-openjdk-headless java-21-openjdk |
| |
====== Download Source ====== | ====== Download Source ====== |
| |
===== Settings ===== | ===== Settings ===== |
| |
==== Disable Tweening ==== | |
| |
sed -i 's/USE_TWEENING = true/USE_TWEENING = false/g' ~/'Projects/RT4-Client/src/client/src/main/java/rt4/GlobalConfig.java' | sed -i 's/USE_TWEENING = true/USE_TWEENING = 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 'USE_TWEENING' | 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 ===== | ===== Build ===== |
**** | **** |
| |
cd ~/'Projects/RT4-Client/src' && JAVA_HOME='/usr/lib/jvm/jre-17-openjdk' ~/'Projects/RT4-Client/src/gradlew' 'clean' --no-daemon && JAVA_HOME='/usr/lib/jvm/jre-17-openjdk' ~/'Projects/RT4-Client/src/gradlew' 'jar' --no-daemon | 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 ====== | ====== Settings ====== |
| |
===== Client Update ===== | ===== Client Update ===== |
| |
* https://gitlab.com/2009scape/rt4-client/-/commits/master?ref_type=heads | |
| |
mkdir -p ~/'Projects/RT4-Client/scripts' && nano ~/'Projects/RT4-Client/scripts/client-update.sh' && chmod +x ~/'Projects/RT4-Client/scripts/client-update.sh' | mkdir -p ~/'Projects/RT4-Client/scripts' && nano ~/'Projects/RT4-Client/scripts/client-update.sh' && chmod +x ~/'Projects/RT4-Client/scripts/client-update.sh' |
| |
sed -i 's/USE_TWEENING = true/USE_TWEENING = false/g' ~/'Projects/RT4-Client/src/client/src/main/java/rt4/GlobalConfig.java' | 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' | cd ~/'Projects/RT4-Client/src' |
JAVA_HOME='/usr/lib/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' 'clean' --no-daemon |
JAVA_HOME='/usr/lib/jvm/jre-17-openjdk' ~/'Projects/RT4-Client/src/gradlew' 'jar' --no-daemon | JAVA_HOME='/usr/lib64/jvm/jre-17-openjdk' ~/'Projects/RT4-Client/src/gradlew' 'jar' --no-daemon |
| |
notify-send -i ~/'Projects/RT4-Client/src/client/src/main/resources/saradomin.png' '2009Scape RT4 Client update complete' | zenity --title '2009Scape Updater' --text 'RT4 Client update complete' --icon ~/'Projects/RT4-Client/src/client/src/main/resources/saradomin.png' --timeout '2' --info |
| |
# End</code> | # End</code> |
| |
| ~/'Projects/RT4-Client/scripts/client-update.sh' |
| |
====== Desktop Launcher ====== | ====== Desktop Launcher ====== |
===== 2009Scape (localhost) ===== | ===== 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' | 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' |
| |
<code> | <code> |
Name=2009Scape | Name=2009Scape |
Categories=Game; | Categories=Game; |
Exec='/bin/bash' -c "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'" | 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 | Type=Application |
StartupNotify=false | StartupNotify=false |
| |
[Desktop Action HiDPI] | [Desktop Action HiDPI] |
Exec='/bin/bash' -c "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'" | 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) | Name=Client (HiDPI) |
| |
| |
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' && 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 ===== | ===== Update ===== |
* https://gitlab.com/2009scape/rt4-client/-/commits/master?ref_type=heads | * 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' && JAVA_HOME='/usr/lib/jvm/jre-17-openjdk' ~/'Projects/RT4-Client/src/gradlew' 'clean' --no-daemon && JAVA_HOME='/usr/lib/jvm/jre-17-openjdk' ~/'Projects/RT4-Client/src/gradlew' 'jar' --no-daemon && cd ~ && sync | 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' | ~/'Projects/RT4-Client/scripts/client-update.sh' |
* ''gradlew.bat --stop'' to stop Gradle daemons in-lieu of ''--no-daemon'' | * ''gradlew.bat --stop'' to stop Gradle daemons in-lieu of ''--no-daemon'' |
| |
cd ~/'Projects/RT4-Client/src' && JAVA_HOME='/usr/lib/jvm/jre-17-openjdk' ~/'Projects/RT4-Client/src/gradlew' 'tasks' --no-daemon | cd ~/'Projects/RT4-Client/src' && ~/'Projects/RT4-Client/src/gradlew' 'tasks' --no-daemon |
| |
===== Git ===== | ===== Git ===== |
| |
gio open ~/'Projects/RT4-Client/src' | 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 |
| |
| <code>-Djdk.gtk.verbose='True'</code> |
| |
| <code>-Djdk.gtk.version='3'</code> |
| |
| <code>-Dawt.toolkit.name='WLToolkit'</code> |
| |
| <code>-Dsun.java2d.vulkan='True'</code> |
| |
| <code>-Dsun.java2d.vulkan.deviceNumber='1'</code> |
| |
| <code>J2D_TRACE_LEVEL='1'</code> |
| |
| <code>_JAVA_AWT_WM_NONREPARENTING='1'</code> |
| |
| <code>GDK_BACKEND='wayland'</code> |
| |