Hey everyone,
I've been meaning to create a decent open source project for a year now. I had a bit of time to work on a project this fall, so I decided to put a new project on my schedule called Phoenix. I haven't had the chance to work on it too much due to my schedule, but it is in working order. Don't ask about features, it's a base source. The entire source is commented: every function, every code block. I programmed this source in C# for patch 5187. It uses MySQL with .NET Hibernate for database transactions. The server is split up into a few projects: the account server, message server, map server, database infrastructure, security infrastructure, networking infrastructure, and core infrastructure (module in design).
Setting up the Server:
Download:
[Only registered and activated users can see links. Click Here To Register...]
Kind Regards,
Spirited
I've been meaning to create a decent open source project for a year now. I had a bit of time to work on a project this fall, so I decided to put a new project on my schedule called Phoenix. I haven't had the chance to work on it too much due to my schedule, but it is in working order. Don't ask about features, it's a base source. The entire source is commented: every function, every code block. I programmed this source in C# for patch 5187. It uses MySQL with .NET Hibernate for database transactions. The server is split up into a few projects: the account server, message server, map server, database infrastructure, security infrastructure, networking infrastructure, and core infrastructure (module in design).
I set up the server with this solution architecture as an experiment. Using this layout, the client can change between servers without disconnecting from the client. It can also connect two message servers together for events and such. Traditionally, this should be done with a client-sided proxy (WoW has it built into the client). Oh well! It's still a fun little project. Enjoy.Quote:
Account Server:
The account server is designed to accept login data from the player’s client and verify that the username and password combination is correct with the database. If the inputted combination is correct, the client will be transferred to the message server of their choice. The client then disconnects from the account server to be connected to the message server.
Message Server:
The message server manages character data. It accepts the client from the transfer and connects the player to the map server, after authenticating the transfer data. The message server messages and receives packets to and from the client, and to and from the map server to create the game world of Conquer Online.
Map Server:
The map server manages the map and monster intelligence for the world of Conquer Online. If players wish to transfer between map servers, this can be easily done without disconnecting the client from the message server. It is designed to process game structures involving the character’s location and surroundings.
Core Infrastructure:
The core infrastructure contains core classes required by all servers to function correctly. It contains data structure implementations, calculations, interfaces, native implementations, and file processing classes for the servers and additional libraries.
Database Infrastructure:
The database infrastructure contains the substructure for .NET Hibernate. All repositories and table domains rely on this infrastructure for processing transactions to and from the database. All enumerations based on table entries should be contained within this infrastructure library.
Network Infrastructure:
The network infrastructure encapsulates the servers’ asynchronous socket systems. The servers inherit the socket classes found in this library to configure it. The needs of each server can be easily met using these socket base classes. Packets for the servers are also stored in this library.
Security Infrastructure:
The security infrastructure encapsulates the servers’ security algorithms in place to secure the connection between the client and servers. It also contains hashing algorithms to secure accounts found in the database.
Setting up the Server:
- Download and install [Only registered and activated users can see links. Click Here To Register...]. Ensure that you are installing C# as a language option.
- [Only registered and activated users can see links. Click Here To Register...] and install MySQL Community Server.
- In feature selection, select "MySQL Server", "MySQL Workbench", and "MySQL Utilities".
- A configuration wizard will appear after installation. Keep server configuration settings as they are. Type in a root password (keep this saved). You do not need to add any additional users.
- MySQL Workbench will start automatically. Double click on the local instance and input your MySQL password. Keep the workbench open.
- In the MySQL workbench under the "Management" group in the navigator, select "Data Import/Restore". In the data import tab under "Options", select "Import from self-contained file". Browse for the database backup file in the project's main folder. Then, click "Start Import".
- Right click on the "Schemas" panel and select "Refresh All". Open the "account_server" database. Under tables, right click on the "msg servers" and select "Select Rows - Limit 1000". Edit the IP Address to your public or Hamachi IP address. Then, click the "Apply" button.
- Open the accounts table in the same way and add a new account (input an account name and password - the rest will generate automatically).
- Open your 5187 client and copy the "map" and "scene" folders from the "maps" folder into the map server's "DMaps" folder (inside the "Database" folder). Maps will automatically be generated on the first execution (you can delete the DMaps folder's contents after it does that).
- Start up the account, message, and map servers. Configuration files will automatically appear for you to edit. Ensure that you set up each server correctly with the MySQL password.
- Configure your client using the Conquer Loader specified in my [Only registered and activated users can see links. Click Here To Register...].
Download:
[Only registered and activated users can see links. Click Here To Register...]
Kind Regards,
Spirited