Comet, Open Source Server (Multiple Patches)

10/14/2018 09:01 Spirited#1
This is a skeleton server project for those interested in game server design / network programming

Introduction

I started working on Comet as a three-week coding challenge, but later developed a base out of it. Comet is a two-server project, containing an account server and game server connected over RPC. The account server authenticates players, while the game server services players in the game world. This simple two-server architecture acts as a good introduction into server programming and networking, but may be a bit too advanced for beginners (no features are implemented). The server is interoperable with a few patches...

Supported Patches

The following patches are supported (the list below describes the patch, not features provided by the server).
  • 4274: One of the last stable patches for Conquer 1.0 with the legacy brown wood interface.
  • 4294: One of the first stable patches for Conquer 2.0 with the blue fabric and stone interface.
  • 4343: Adds potency and new currency, but does not include the pay-to-win shopping mall.
  • 5017: Adds pay-to-win shopping mall, +12 items, WuXing Oven, new fonts, and more.
  • 5065: Adds new watercolor client, new hairstyles, new equipment, and more.
  • 5187: Adds talismans, ninjas, enlightenment, quiz show, mounts, clans, arena, and more.

Notable Features

This base project includes the following helpful features:
  • Written in .NET 6, so can run on Windows, Linux, or MacOS.
  • Asynchronous server socket system using SocketTaskExtensions.
  • Asynchronous RPC system between Account and Game servers.
  • Asynchronous database access layer using Entity Framework 6.
  • Parallel packet processing using channels and background services.
  • Supports running servers in Docker containers.
  • Supports multiple game versions / patches.
  • Implements character creation and login into Birth Village.

Getting Started

To get started with Comet, [Only registered and activated users can see links. Click Here To Register...] and follow the guide in the readme.

[Only registered and activated users can see links. Click Here To Register...]
10/14/2018 11:44 Dark^Magic#2
tbh nice to see something new here
and because i'm big fan of you'r work
I'm going to use it
4h before I was open you thread "Private Server Source Download" and look for a good base but here we go
gj dude
sorry for my bad english :(
10/14/2018 18:13 Spirited#3
Quote:
Originally Posted by Dark^Magic View Post
tbh nice to see something new here
and because i'm big fan of you'r work
I'm going to use it
4h before I was open you thread "Private Server Source Download" and look for a good base but here we go
gj dude
sorry for my bad english :(
No worries, man. Thanks for the positive feedback.
10/14/2018 18:21 Yupmoh#4
I've had access to this before release and I have to say it has some decent ideas and techniques. Pretty sure it will serve as a solid base ready to be built upon and developed. Thank you for sharing. This is exactly what the community needed. New work, new ideas, new and veteran developers coming together to bring this section back to life.
10/17/2018 01:20 JoshuaX#5
This is quite a nice source pretty solid. i havent touched anything CO related since i worked with hybrid and toshi in CO2.1 i might have to peak through this one some more =D
10/17/2018 13:57 Soulfly25#6
Hope this will not be throwing to a trash can :D
10/17/2018 17:51 Spirited#7
Quote:
Originally Posted by Soulfly25 View Post
Hope this will not be throwing to a trash can :D
I think I'll somehow find a way to live with that. :rolleyes:
10/18/2018 13:13 bashondegek#8
Amazing release!
Thanks for releasing something awesome in the section again.

Keep up the good work, will follow the repo and check if i can contribute to it somehow :-)
11/23/2018 01:48 snakeb#9
This might be exactly what I was looking for! I havent been in the Conquer scene for ages but it would be fun to have a project to work on alongside with my CS studies.

What im wondering is how complex it would be to get a functional server up and running? I feel pretty comfortable with DB handling and security but i have slim to none experience in threading and socket programming
11/23/2018 05:49 Spirited#10
Quote:
Originally Posted by snakeb View Post
This might be exactly what I was looking for! I havent been in the Conquer scene for ages but it would be fun to have a project to work on alongside with my CS studies.

What im wondering is how complex it would be to get a functional server up and running? I feel pretty comfortable with DB handling and security but i have slim to none experience in threading and socket programming
I designed the server to be easily maintainable more than scalable, but it should scale decently for the purpose of a Conquer Online server. Do whatever you want with it, within the limits of the software license, of course. It'd be a good learning experience. I added tons of documentation. Let me know if you have questions, I'm available to help. And as it stands currently, it has no map system. I may add that this year or the beginning of next year. I'm focusing on another project right now, and this was just a quick project for an interview, so it's got back burner status.
11/23/2018 12:35 snakeb#11
Quote:
Originally Posted by Spirited View Post
I designed the server to be easily maintainable more than scalable, but it should scale decently for the purpose of a Conquer Online server. Do whatever you want with it, within the limits of the software license, of course. It'd be a good learning experience. I added tons of documentation. Let me know if you have questions, I'm available to help. And as it stands currently, it has no map system. I may add that this year or the beginning of next year. I'm focusing on another project right now, and this was just a quick project for an interview, so it's got back burner status.
Yeah my aim is basically to learn as much as possible, just a bonus that it intersect with all the nostalgia that conquer induce haha! So a well documented base sounds perfect, ill have a look at the repo as soon as I can.

Thanks for keeping this community alive!
12/03/2018 00:22 andrej12#12
So, i have been following your documentation and i got to this.. what could be the problem ?

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

[Only registered and activated users can see links. Click Here To Register...]
12/03/2018 03:16 Spirited#13
Quote:
Originally Posted by andrej12 View Post
So, i have been following your documentation and i got to this.. what could be the problem ?

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

[Only registered and activated users can see links. Click Here To Register...]
Click on the right server group and server.
12/08/2018 02:46 andrej12#14
Hello, maybe this is not about your source but i have been running a server making some edits and i tried to make it public.. So i forwarded 2 ports 9958 and 5816 and i added my remote IP adress and when we were trying it with a friend only one of us could log in.. When we both tried to log in or open multiple clients it kept on saying connection interruped.. What could be the problem ? please help, thanks
12/08/2018 08:52 Spirited#15
Quote:
Originally Posted by andrej12 View Post
Hello, maybe this is not about your source but i have been running a server making some edits and i tried to make it public.. So i forwarded 2 ports 9958 and 5816 and i added my remote IP adress and when we were trying it with a friend only one of us could log in.. When we both tried to log in or open multiple clients it kept on saying connection interruped.. What could be the problem ? please help, thanks
I'm confused, is this a question about my source or something else?