Ultima Online server in Java

Hello everybody,

I already posted a topic like this in another forum but I can’t cross-link it because this is my first post :slight_smile: sorry for the repetition - anyways, I’m not copy-pasting.

Thing is, I’d like to implement an Ultima Online server in Java, basically because:

  • I’m a big UO fan,
  • I love Java,
  • I’m interested in building a new system from scratch, mainly because I work with Java EE and I don’t have the chance to experiment the “whole stack” very often - from tcp/ip to the higher levels.

I already committed something on my sourceforge project, named ‘juoserver’ - again, can’t cross-link it, but you can easily look it up - but (as written in the forum there), the project is at a very early stage, meaning you can barely choose a hard-coded server and a hard-coded character and then everything freezes-up (I managed to translate 12 packets on ~194 by now = ~6% :P).

Anyways, I’m now quite easily able to “read” what client and server are telling each other, by means of:

  • wireshark, a tcpdump-like tool
  • a utility script (already committed) to easily decompress server messages (client doesn’t compress; server does, except from the pre-login phase)
  • once you have the “real bytes” you can either look up the packet from docs available online or inspect runuo open source (C#)

Needless to say, I need help :smiley: so, if anyone loves UO as well, and is interested in a good ol’ Java project where you can nerdly reverse-engineer a client-server protocol reading tcp/ip messages and inspecting an already functioning non-Java source, write here or send me an e-mail or post a message on the sourceforge forum :slight_smile:

thank you for your attention and have a nice day!
Daneel

Great idea, i can’t wait to see this finished as this will most likely be the first cross-platform freeshard server in existence.

Sincerely,

8BitOoze

P.S. I stink at client/server java programming so I can’t help you.

This sounds quite interesting. I think I am safe to say that I am quite good at making a Java software server (since I have 4 running on my server for my games right now :stuck_out_tongue: )
PM me for my email :slight_smile:

Thanks for the appreciation anyway :slight_smile:

I’ll PM you :smiley:

You welcome, best of luck on your project and hope you do manage to finish it one day.

Sincerely,

8BitOoze

I remember playing UO 10-15 years ago, was a really nice game back then so I’m really curious about this project. I’m really busy finishing up my current game so I can release an alpha so I can’t help out but keep us informed how it’s going :slight_smile:

Mike

Sure, I’ll post any significant changes, thank you for the interest. Of course you’re welcome anytime if you find yourself with some spare time to help out, but even also appreciation is very welcome :slight_smile: and good luck with your project, too!

Just as an update, I managed to log in, walk and run in the server :slight_smile:

Everything is still VERY alpha: there’s no persistence, it’s single-client, all the data is fake, there are no items, doesn’t yet read the map files… well, let’s say that you can walk & run rather than listing what you can’t do :stuck_out_tongue: but still it’s fun, and having been able to run in my own Java server it’s definitely cool.

here’s the site: http://juoserver.sourceforge.net/

Nice! I opened this thread right away when I saw that there was a new post :slight_smile:

Code looks good as far as I could see. Well done!

Thank you! I’ll sure keep you informed about the progress ;D

Another update: clients are now parallel (before this, only one client was managed) and they can SEE each other :smiley: unfortunately the progress is very slow, because I’m the only one working on the project, but the development itself is quite fun :wink:

(of course the previous lack of feature still remains: fakeness, etc)

Well, stay tuned - I hope to be able to write soon with more features!

Servers are indeed quite complex but they are a great way of learning as well, keep up the good work :slight_smile:

Mike

For those who follow this project: characters are now able to speak to each other :slight_smile:

I have a fairly clear vision of the project’s architecture, I only need time (other people’s time is fine too of course :P).

The server is multi-threaded, each client runs in its own thread. Scripts do not exist yet, but will definitely run within the server’s main thread, according to the active-object pattern (http://en.wikipedia.org/wiki/Active_object).

I updated the developer’s site page with the project’s objectives: http://juoserver.sourceforge.net/develop.html

Cheers,