Hi there.
For the last couple of months I've delved into the abyss that is rscrevolution classic server/client development as I was curious as to how this all works on the inside. Please note: I'm not planning to create my own server or anything like that and I'm not trying to advertise any of that here. I simply wish to contribute what knowledge I have to RSCR itself.
First, some of my background: I'm a professional senior web application developer with a university degree in Computer Science. I have some knowledge of Java itself since we used it during programming courses, but the OOP fundamentals are my speciality, so it's easy for me to read Java code. I have nearly 20 years of experience with web-based scripting and languages like HTML, CSS, Javascript and PHP. I have in-depth knowledge of the Symfony framework and database design. The application that I've currently worked on for the last five years has been implemented in some of the major government institutes in my country, such as muncipalities and a few ministries.
In my spare time, I like to work on hobby projects and of course I like to play here on RSCR. I've noticed that development on the java-based client and server code has come to a halt in the last couple of years. I think this partly because people lose interest in RSC althogether, but also because I find that the java-based codebase is a labyrinth to most people. People with in-depth knowledge of how it works appear to abandon their projects and there's few people willing/able to continue their work. In my humble opinion, there are more modern languages and technologies available to recreate a game like this. Nowadays, we are no longer limited by dial-up internet and low spec pc hardware, so we should likely have more freedom when redeveloping RSC in a more modern development environment. Java and Flash are plagued by security issues and I foresee that things like HTML5 and WebGL have a much better chance at being the standard for webbased games and applications if they aren't already.
I have therefore come up with an ambitious plan: I want to attempt to redevelop RSC in WebGL/Three.js and possibly a server-side code base in something like NodeJS?
I realise this is a monstrous task, but bear with me. I think that RSC and RSCR specifically is an excellent candidate because:
- The game doesn't need to be designed anymore. We know what it should look like. We have a working Java-based game after all.
- The game's graphics and engine are complex but it should still be less complicated than the modern RS versions.
- WebGL/Three.js are modern technologies that should allow playing RSC on any (modern) mobile device, without having to install things like Java.
- We could have a webpage based "applet" again, without the need for expensive signed certificates.
- Redeveloping the game allows for a clean and well-documented codebase and API.
- We could develop more intuitive tools that allow for faster game content development.
- Possibly doing this open source would reinvigorate the RSC development community and the playerbase itself.
- We could fix a lot of the graphical glitches like the Z-fighting issues with some of the in-game objects.
- We could also try to make the game compatible to VR-headsets. Wouldn't that be amazing?
I've tried to explore some of the resources available in the rsc development scene and I have managed to get some useful stuff, like all of the item images and other game assets. The sprites seem easy to work with. My question is: is it possible to export the RSC models (like trees, rocks, etc.) to a format like OBJ?
For more info on three.js: have a look at the demo's here: https://threejs.org/
Again, I understand this is a very ambitious idea, and it could take years, but I like challenges like these and let's face it: the current Java codebase hasn't seen major progress either the last few years. The content development seems to progress very slowly. Some quests are still not developed. This is not meant as criticism towards the developer(s) here. I fully acknowledge the great efforts they put into RSCR and I realise that they are probably doing this also in their spare time. I'm simply thinking outside the box.
If you guys like the idea, I can try to begin development on some early proof-of-concept. Don't expect too much of it yet though.
Any contribution you'd like to make is very much welcomed. Let's discuss it here.