Aldric Posted June 29, 2024 Posted June 29, 2024 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! Quote
Spirited Posted June 30, 2024 Posted June 30, 2024 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. Quote
Aldric Posted July 1, 2024 Author Posted July 1, 2024 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 <3another q , if i want to target the latest Ver , what do i need to focus on , can't find any reference at all Quote
Spirited Posted July 2, 2024 Posted July 2, 2024 thank U so much <3another q , if i want to target the latest Ver , what do i need to focus on , can't find any reference at allThat'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. Quote
Omicron Posted July 2, 2024 Posted July 2, 2024 thank U so much <3another q , if i want to target the latest Ver , what do i need to focus on , can't find any reference at allThat'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. Quote
Spirited Posted July 3, 2024 Posted July 3, 2024 Quote Quote Quote thank U so much 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: Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.