Seeking Guidance on Building an Emulator for Conquer Online from Scratch

1
Hello everyone,

I am embarking on an exciting journey to build my own emulator for Conquer Online and would love to hear from anyone with experience or knowledge in this area. Specifically, I am looking for a clear outline of the key steps involved in creating an emulator from scratch. Any guidance, tips, or resources you could share would be greatly appreciated.

Thank you in advance for your assistance!

Seeking Guidance on Building an Emulator for Conquer Online from Scratch

2
Generally, there's not much to it - but it includes some more advanced programming topics. So you should probably study up a bit on threading, asynchronous patterns, and network sockets. But once you're comfortable, you'd just start with your socket system, then add cryptography to decrypt requests and encrypt responses, then add a database for persistence, and then you just handle one message type at time as the client requests it. It's honestly a bit of a pain to set up, but you can absolutely do it.

I'm working on a new wiki right now, but I'd suggest looking at other sources around the patch you want to target. If you want a reference for how I built Comet (a skeleton project that just implements login for a bunch of patches), then you can check that out here: https://gitlab.com/spirited/comet. My full history of commits should be there on the main branch. Best of luck to you.
Interested in my work?

If you wanna learn more about me and my projects: visit my portfolio website. There, you can find my free, open-source work and articles about game development. Due to contractual restrictions: I am not available for job requests or volunteer work.

About Me | GitLab Profile | Website

Seeking Guidance on Building an Emulator for Conquer Online from Scratch

3
Spirited wrote: Sun Jun 30, 2024 5:50 pm Generally, there's not much to it - but it includes some more advanced programming topics. So you should probably study up a bit on threading, asynchronous patterns, and network sockets. But once you're comfortable, you'd just start with your socket system, then add cryptography to decrypt requests and encrypt responses, then add a database for persistence, and then you just handle one message type at time as the client requests it. It's honestly a bit of a pain to set up, but you can absolutely do it.

I'm working on a new wiki right now, but I'd suggest looking at other sources around the patch you want to target. If you want a reference for how I built Comet (a skeleton project that just implements login for a bunch of patches), then you can check that out here: https://gitlab.com/spirited/comet. My full history of commits should be there on the main branch. Best of luck to you.
thank U so much <3
another q , if i want to target the latest Ver , what do i need to focus on , can't find any reference at all

Seeking Guidance on Building an Emulator for Conquer Online from Scratch

4
Aldric wrote: Mon Jul 01, 2024 7:16 am thank U so much <3
another q , if i want to target the latest Ver , what do i need to focus on , can't find any reference at all
That's unfortunately much harder to do. It requires that you either guess at what's changed (if they're minor offset changes to messages), or you reverse engineer the client by reading its disassembly. You may be able to find a bad project that does it well enough to get by on a higher patch, but latest is always going to be a challenge.
Interested in my work?

If you wanna learn more about me and my projects: visit my portfolio website. There, you can find my free, open-source work and articles about game development. Due to contractual restrictions: I am not available for job requests or volunteer work.

About Me | GitLab Profile | Website

Seeking Guidance on Building an Emulator for Conquer Online from Scratch

5
Spirited wrote: Tue Jul 02, 2024 6:11 pm
Aldric wrote: Mon Jul 01, 2024 7:16 am thank U so much <3
another q , if i want to target the latest Ver , what do i need to focus on , can't find any reference at all
That's unfortunately much harder to do. It requires that you either guess at what's changed (if they're minor offset changes to messages), or you reverse engineer the client by reading its disassembly. You may be able to find a bad project that does it well enough to get by on a higher patch, but latest is always going to be a challenge.
To add to this, use the mac client.
Want to play a worthwhile server which has been active for more than 4 years?
https://primalconquer.com

Seeking Guidance on Building an Emulator for Conquer Online from Scratch

6
Omicron wrote: Tue Jul 02, 2024 8:01 pm
Spirited wrote: Tue Jul 02, 2024 6:11 pm
Aldric wrote: Mon Jul 01, 2024 7:16 am thank U so much <3
another q , if i want to target the latest Ver , what do i need to focus on , can't find any reference at all
That's unfortunately much harder to do. It requires that you either guess at what's changed (if they're minor offset changes to messages), or you reverse engineer the client by reading its disassembly. You may be able to find a bad project that does it well enough to get by on a higher patch, but latest is always going to be a challenge.
To add to this, use the mac client.
Oh yeah, thanks for the reminder - there's a tutorial on that here as well:
co-private-server-tutorials/client-how- ... g-t15.html
Interested in my work?

If you wanna learn more about me and my projects: visit my portfolio website. There, you can find my free, open-source work and articles about game development. Due to contractual restrictions: I am not available for job requests or volunteer work.

About Me | GitLab Profile | Website