317refactorAn educational renaming of the #317 client
This has been a project of mine for almost the last year. I have always had a passion for client development - it is a lot more fun to play with than server development, in my opinion. However, whilst developing this, I have been unable to add any features or modifications to the client and therefore the time has come where I must release this to the public and allow others to continue the project. Many sources have been used for the refactoring however besides the audio classes (which were refactored by veer) this is almost all my own work. Why?
There is nothing more prohibitive to client development that many tutorials, snippets and tools are unsuitable for the large number of clients due to the deobfuscation process. All your client needs is a slightly different naming scheme to the author's and the guide is no longer applicable. There is little use in switching to a typical "refactored" client because the majority of these also lack a lot of renaming and therefore are not useful - whilst method names may be refactored suitably, the variable names may differ along with the method signatures and class names.
To combat this, and aid client development, I have refactored the near-majority of the code in the #317 client. This will, hopefully, give client developers a good base to work from and encourage users to share snippets and tutorials as they will actually be used by a lot of people.What have I done?
The code throughout the client has been refactored. Every class has a suitable name (even the less used ones, such as GameObjectSpawnRequest
. Almost every method has a suitable name along with having the arguments in a suitable order ([player, x, y, z] rather than [x, player, z, y]). The majority of global and local variables have been renamed to allow their meaning to be understood. Methods and variables within classes have been sorted in alphabetical order.Where can I get it?
You can find the project at Jameskmonger/317refactor on GitHub
. If you do not have Git, or do not wish to use it, you can simply download the project as a zip archive.How can I contribute?
If you wish to contribute to the codebase directly, the best way would be to fork the GitHub repository
, make your changes, and then submit a pull request. If you do not wish to do this, you are welcome to send me a forum PM detailing your changes and I will submit them to the repository.
However, the way I would prefer people to contribute to this would be by using it for their own personal projects - whether they be private or public. I created it with the intent of allowing people further understanding of the client and so I'd like to see that! Credits
Jagex - the client
Ambokile - majority of the renaming
veer - the sound system
Clienthax - reference
Cyberus - reference