Help with improvement-suggestions

Hello! I have a project I really would want to get feedback on what to improve with the game-architecture. So if you could take a look at the current version (source code of course included), and tell me what to improve, that would be very appreciated.

Download: http://www.uploadyour.info/download.php?filename=geminus80755.rar

Pictures from the game itself (when we hosted it):

http://www.uploadyour.info/uploads/images/party71894.png

http://www.uploadyour.info/uploads/images/training_236019.png

http://www.uploadyour.info/uploads/images/smelting_23864.png

http://www.uploadyour.info/uploads/images/smithing_326236.png

What really bothers me with the game, is that whenever we are many players online at the same time, all packet-sendings become out of order. For instance, players disappear at random times, and players tend to walk away from their current location when they shouldn’t. And of course, there are probably more things that could be improved.

The source code includes around ~80 .class files, and alot of .xml files (for definition).

By the way, this might maybe not be the proper place to post this topic in. If so, I would want to get moved to the correct place.

Thank you,
Semaphore.

Is this forum totally dead or something? It seems as so, to be honest…

Questions like “Please download 80+ source files and tell me what’s wrong” don’t tend to get many answers.

You need to package it as an executable jar or as Webstart. You will get a lot more people trying it out.

If you need a place to host it, then you can try the free http://www.myjavaserver.com/

Wow, can I just say that if you’re using software rendering, those graphics are quite impressive! 8)

I notice that it’s just like Runescape. I would love to know how you are rendering the scene and what kind of performance you got. I intend to download the source and try it but I’m really busy until the weekend.

About the packet-sending, you’re probably using UDP then and this is what happens. If you use TCP instead then things won’t get out of order and packets are guaranteed to be delivered. I would be quite surprised if you didn’t already know this since you have achieved what looks like a good demo-game. Is graphics more your thing?

Nice job!
Keith

it’s looking awesome… :o
it’s realy an excact copy of the past version of runescape
Are you telling me that you can make runescape :o how long did it took you? I think it is the dream of every developer to be able to make that!
Because the real game has like a bunch of people who get paid and do nothing else then creating and maintaining the game 8)
The graphics look realy good what did you use?
i can’t help you with the game architecture because i’m still learning :slight_smile:

I try it if you make it a web start link ;D

First of all, the graphics is nothing that I have done myself… The graphics have been done by the company itself (JAGeX). So, to emulate the game, you first of all need to obtain a client for the correct version (in this case version 135). Once you have obtained this, you need to deobfuscate it (obviously because it was obfuscated). Once that is settled, what you need to do is refactor the most parts of the client to get a brief understanding of what is actually happening in there. All this is of course just some parts of the reverse-engineering you need to do to be able to make it. I havn’t done it all by myself, but I have been in a team developing it.

What you really need to do, is create a “copy” of the protocol that is being used between the real server and client. The client sends different packets for different events, and you need to read those incoming packets according to the protocol to get all proper values. When you send back a new packet, that packet must be according to the correct event on the client once again.

It is run by a TCP, and not UDP protocol. And what I believe is actually making it appear strange when alot of players are logged in, is that it doesn’t synchronize them all correctly. This also because it uses one Thread per logged in player.

I forgot to send a client with the source code, so I guess I have to do this… So here it is:
http://www.uploadyour.info/download.php?filename=geminus_test_client6671.rar

To be able to run the server, you need to setup Apache Ant properly. The ones of you who really knows your Java, won’t have any problems with that (I believe?).

And one last thing. If anyone of you here (with great skills) would want to be a part of the development on my newest server, that would be appreciated. I started a new one, because I wanted it to be as good as possible all from the start. So, if so is the case, please feel free to add my MSN, wsup40@hotmail.com.

this forum is not death at all, at first sight however this doesn’t seem too kosjer.

Do you hold the needed rights for your (current) undertaking?

Mr_Light: As my main language is not English, I must ask you, what did you mean by the following “Do you hold the needed rights for your (current) undertaking?”?

And for webstart… I have never tried to do such a thing, so I don’t really know how to do it right now. If I got time over, I probably could spare some and make it. But not right now.

You will get a lot more people trying your game if you learn Web Start. It is very easy. Here is a tutorial:

http://www.cokeandcode.com/webstarthowto

Mr_Light is asking if the content or code you are using was taken from another source and if you asked permission to use it.

He asks, if you are legally allowed to do what you are doing.

I am no legal expert, but if you have decompiled runeescape, you might have broken the law while doing so. Also the use of their graphics is most probably a copyright infringement.

Thanks CaptainJester and cylab… Yes, the client is JAGeX property, aswell as I believe the protocol used in the server. However, the protocol was totally made by us, and so with the whole server. I havn’t asked them for permission, but I am almost sure that I remember someone (by JAGeX) who told that this kind of thing is a good learning-proceedure. I am not really going to sell it, which is the real illegal thing, I believe?

And, seeing as the real RuneScape Classic (which this is a copy of) is discontinued, while the real RuneScape (RuneScape 2) is not, and there are many, many more private servers for RuneScape 2, I don’t really see this being a big threat towards JAGeX. If they would stop private servers, they would most probably make an attempt to stop RuneScape 2 private servers first, before they even think of focusing on RuneScape Classic private servers. That is just my thoughts, however (and they seem more reasonable than any other I can think of).

You would think that, but I have read about companies taking action against people even though their game is from the late 70s and hasn’t been played in an arcade in over 25 years.

The illegal part is not selling it per se, the illegal part is unauthorized distributing of copyrighted content.
I can imagine that Jagex could be equally damaged by a Runescape clone that is free, or that is sold without permission.
The thing with selling it, is that it will be easier for them to claim damages. If it’s not free, they can still at least shut down your game.

Of course, in the end it’s up to Jagex to take legal action or not (maybe they just don’t bother or don’t care), but that doesn’t change anything about the fact that unauthorized distributing of copyrighted material is illegal.

If you keep your stuff private and don’t make it accessible to others, I don’t think it’s illegal.

I’m not a lawyer, so take all the above with a grain of salt

Also the pure act of decompiling the client may be illegal depending on the license agreement you have accepted either explicit with Jagex or implicit by downloading or installing it. But since you seem to have been in contact to Jagex it may be a different matter in your case. Anyway, I would contact them and ask them for a written permission for the things you are doing - just to be sure.

I cannot see the decompiling being illegal, as that has not been stated in their agreement of use (terms and service). If so would be the case, they probably would let people know that their source (the client) is made in an unsafe way, in their perspective. But as with everything that can be created, it also can be “destroyed”, or secrets revealed no matter what you do. Just if you do it correctly.

I also havn’t been in contact with JAGeX personally. But what I stated earlier was more or less just a rumour I have heard at some point.

Another point I have to make is that, as with everything else virtual, I cannot see them in any way or shape being able to fully stop this issue. Just if you take a look at downloading illegal MP3’s etc, which is practically the exact same thing. They can only sue the great “abusers”. If they would take action against everyone doing this, they would first of all have to pay enough money to ruine their own company’s financial achievements, just to stop it. And still, it wouldn’t be stopped… If they sue one person, I really don’t think there is anything they can do that stops him from uploading and releasing his achievements, so that it can spread even more.

You have rights to reverse engineer code (through fair use of copyright law) that features techniques not known publicly, however since all technology behind runescape is known publicly it is not covered by fair use (or something like that).

I see. If it is not forbidden in their terms and services or eula, there should be no problem in decompiling. I was just suspecting it would be, since the code was obfuscated.

No doubt; in fact there have been many threads in this forum discussing the impossibility to “secure” your code, so trusting your customers might be better and cheaper in the long run.

That’s a broad statement. It may be true, that a company cannot stop “abuse”, but we were more concerned with your personal fate. You could get in a lot of trouble and I think you would not give a shit to the fact, that the suers cannot sue anybody if they really sue you with all the personal and financial consequences it brings. Hence the suggestion just to ask them (It also may be polite to do so ;)).

That’s true, cylab. But won’t they have to send a warning before they can sue? And if they did send this warning, I definitely would stop… I guess. :slight_smile:

And I also checked upon the terms and service at RuneScape.com. They apparently have changed it slightly, in difference to when I read it last time (which indeed was long ago). They also stated that they can change it at any time, so that is totally OK aswell.

Here is what they stated now:

[quote]You must not reverse-engineer, decompile or modify the Game client software in any way. You must not use a modified/customised version of the client software. You must not create or provide any other means by which the Game may be played by others (including, without limitation, replacement or modified client/server software, server emulators).
[/quote]
If I were to write a letter to JAGeX… To what place do you think it should be written? To their JAGeX site (the company itself), or by a PM to the customer support at RuneScape.com?