emo-rt4-client/README.md

62 lines
2.0 KiB
Markdown

[Fork of Pazaz/RT4-Client](https://github.com/pazaz/rt4-client)
## Goals
* Identify all classes
* Create new static classes by grouping related members
* Identify all methods
* Identify all fields
* Identify all local variables
* Remove any remaining obfuscation (possibly none left)
* Fix poor decompiler behavior (fernflower)
* Replace magic numbers and bitmasks with named final fields
* Refactor code to improve behavior/readability
* Modernize code/libraries (High DPI support, modern refresh rates, ...)
* Support existing servers via global config flags that adjust packet behaviors
* Organize classes into packages
OpenRS2 annotations are left in the source to build a deob map from, in case some of my changes aren't desirable.
That mapping can be used to generate a new deob with everything renamed for you.
## Instructions
Build requirements:
* Java 8+
Runtime requirements:
* SD: Java 8+
* HD on Windows, use Java 15 or lower. There is a JOGL issue on 16+ related to how they grab the WGL context from the window.
* HD on Linux: Java 8+
* HD on macOS: Not possible yet on latest macOS. Might work for earlier OS versions.
```
git clone https://github.com/Pazaz/RT4-Client.git
cd RT4-Client
./gradlew run
```
You will be connected to a test server automatically.
This server is provided by 2009scape for their own internal developments.
## Deviations
Configurable:
- Packet behaviors to make it compatible with existing servers
- View distance in HD
- Bilinear map filtering in HD/SD
- Tweening enabled by default (existed in client)
- Shift-click behavior on inventory items enabled by default (existed in client)
Unconfigurable:
- JOGL was updated to 2.4.0
- Update/render loop was decoupled to tick indepedently from each other
- Camera panning input rewritten to use render loop timing
- Varp array size was extended to 3500 instead of 2500
- Mouse wheel camera movement (click middle button and move mouse)
- Render FPS is set to your monitor's refresh rate
## Libraries Used
- JOGL/Gluegen 2.4.0rc
- Google Gson 2.9.0