[JaveQ]: Open-source java emulator development.

10/12/2009 20:09 Perfect1994#1
JaveQ

Introduction

This will be the open-source development thread of JaveQ. Most of you saw my closed-source development also in this section. After getting tons of request about how I did everything, I decided to stop my closed-source project and make a proper source for a community to work on. It will be accessable for everyone, and also everyone can report bugs.

The private server will be written in Java, using Apache MINA for the networking. I'm using java because I'm the most experienced with that language and I feel like not being the 100th private server written in either C++, C or C#. This development will most likely give you guys a basic emulator, and I'd still have to see how far I want to go with this.

Networking

In this section I will tell you a bit more about the networking I'm using for my emulator, since this is very important. I'm using Apache MINA for my networking, it's a NIO package. It uses it own ThreadPoolExecutor depending on the amount threads and depending on the amount of cores you got on your computer. This will maximize the power of this networking API.

Packet hierachiry
Folders are italic, packages are bold.
  • loginserver
    • src
      • com
        • williaminc
          • loginserver
            • GameEngine
            • LoginServer
            • net
              • ConnectionHandler
              • PacketSender
              • sql
                • QueryHandler
              • codec
                • SilkroadCodecFactory
                • SilkroadPacketEncoder
                • SilkroadPacketDecoder
              • packet
                • Packet
                • PacketBuilder
                • PacketHandler
                • PacketManager
                • impl
                  • LoginHandler
  • gameserver

Emulator

In this section I will list all links of the current SVN, Trac and post the current revision.

Revision: 8
[Only registered and activated users can see links. Click Here To Register...]: [Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]: [Only registered and activated users can see links. Click Here To Register...]

Setting up the emulator

This guide will be using the Eclipse IDE to setup our server and get it running.

1) First download Eclipse at [Only registered and activated users can see links. Click Here To Register...].
2) Download the source using SVN update/download it via Trac.
3) Open up Eclipse
4) Make a new project > Create project from existing source (> Navigate to the folder where you loginserver/, gameserver/ folders are and select it.
5) Right-click the project > Proprties > Java build path > Libaries > Add jars. Add all jars folder contained in the libs/ folder.
6) Click on the run-symbol and it should run now.

Thanks,

Perfect1994 (William.D on SRF)
10/12/2009 20:41 Windrius#2
Gratz. Nice start. :)
Even tho making open source is not a good idea. Only leechers will use it (well not everyone are leechers..). There aren't much developers in silkroad. Anyway.. Good luck :)
10/12/2009 20:42 Dropdead*#3
Looks great, if it would have been c# I would have continue on it :)
10/12/2009 21:15 nansif2#4
Good luck ;]
10/12/2009 21:20 Davincibg#5
I will try to join you. I'm learning Java realy hard atm so I might help you. I only need packets info and You will have the code :) I tought of starting a java emu miself soon but I'm not much of a hard worker xD
10/12/2009 21:22 Perfect1994#6
Quote:
Originally Posted by Davincibg View Post
I will try to join you. I'm learning Java realy hard atm so I might help you. I only need packets info and You will have the code :) I tought of starting a java emu miself soon but I'm not much of a hard worker xD
You can just contribute by reporting bugs/making tickets and such on Trac, it's very useful. Thanks :).
10/12/2009 21:26 Davincibg#7
I will try to help as much as I can. Btw are you using NetBeans to code it or smth else ?
10/12/2009 21:26 keizar20#8
So basicaly is this a 50/50 working emulator?
10/12/2009 21:30 Perfect1994#9
Quote:
Originally Posted by keizar20 View Post
So basicaly is this a 50/50 working emulator?
No, everything works fully until login. I just started on it yesterday, if you have any bugs report them.

Quote:
Originally Posted by Davincibg View Post
I will try to help as much as I can. Btw are you using NetBeans to code it or smth else ?
I'm using Eclipse, and thanks for helping.
10/12/2009 21:44 keizar20#10
Hmm...so what do I download and witch SRO version do I use to test for bugs and stuff?
10/13/2009 01:54 xxbrentonxx#11
This is based on the latest CSRO version, in the SVN only the login server is up. You should join DavinciBG, just download Eclipse and start adding stuff.

If you have csro it would be greatly appreciated if you could sniff and attempt to document packets. Additionally i dont know if this is still the aim, but originally this server was going to be a 70 cap server.
10/13/2009 02:41 shamir#12
drew are u in the this project too ?
I can help :)
I can collect packets altho I can't code
10/13/2009 03:29 xxbrentonxx#13
Quote:
Originally Posted by shamir View Post
drew are u in the this project too ?
I can help :)
I can collect packets altho I can't code
Lol presuming your confusing me with Drew_Benton, no drew isn't in this project.

Drew (pushedx) has helped William with a few things and has also told me a lot of good information about server emulation and ofcourse his documentation made sro development possible. So even though he is not in this project as such, he is still a person who has contributed to this project a lot (indirectly).

Drew has been known to occasionally contribute to open source server emulation projects in the past so who knows, maybe he will get involved later.

Also collecting packets is one of the most important jobs in a server emulation project, your help will be greatly appreciated.
10/13/2009 04:41 shamir#14
ah right drew is pushedx XD
I dont know why I confused you with him :P
Im still intended to help just pm me with a way to contact you and tell me what kind of help do you need.
10/13/2009 06:59 _HouseMusicx3#15
nice GL