Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I am still slowly working on reverse engineering an MMO. I have client source, but no server source (it was lost to time), so I am building a new server.

My current problem is I have concurrency working, but there is a aspect to movement that I have little information on, and the client isn't informative enough to help. So I am kinda stuck. I plan to do some manual testing of just fiddling with a value and see what happens. Its fun, but very demoralizing at the same time to see multiple people logged in, but their characters jumping around and not properly being moved around on other people's screens.

I also don't want to make any changes to client code, because that's our only source of truth to work with.



I'm interested to know which MMO?


Blackmoon Chronicles: Winds of War from like 2000/2001. It never left beta as Vircom closed down their game division and cancelled all projects. It was my first MMO and what got me into MMOs


That’s an interesting problem!

Since you have the client source code, have you been able to fully reverse engineer and document the client/server protocol? Do you have a black box server whose responses you can record and analyze?

Have you been writing your server top-down (building an idealized set of game objects and then wiring them up to the protocol) or bottom-up (layering the minimum game code on top of the protocol needed to make the server respond appropriately)?

How do you obtain the client source code? Will you legally be able to open source it or at least distribute binaries you build?

Is https://blackmoonchronicles.com/ your project? Looks like it’s a different project because they’re writing a cleanroom implementation of a client.


That is our project. We also have a FB Page we put up. The clean room implementation is not us but someone else that we linked to, in order to funnel those that prefer that style of work. We can't work in the open yet.

I have been able to fully reverse engineer the protocol, including what data is expected by the client and what data the client sends for various packet types.

No blackbox server, game has been dead for years.

Writing bottom up. Protocol is more important. We actually have some left over server files with npcs, quests, items, mobs, etc. So I can recreate the entire world by loading those in (already reversed the file formats and can parse them into memory as data structures)

We have the client source because one of the former QA devs on the game bought the rights to the client many years ago, and he is working with me on the project. We will be able to open source the project eventually, if we can prove we have a custom server. Because BMC was built by the people that built T4C and shared server designs. But Dialsoft currently owns the rights to that. We need to show we have a server implementation to that is net new and unrelated to T4C, and then we can legally open source everything, and that is the goal as we mention on our site.

We already have the capability of walking around maps, teleporting, and dealing with inventory and equipped items. We have all the packets reversed. Most of the work now is in concurrency and world state. Loading mobs, quests, items, and broadcasting information to those around you, etc. Right now a lot of stuff is hardcoded. Once I get this part working, the rest is mostly filling out the world and getting combat to work.


That’s very cool! I was a developer on the MMO “Gods & Heroes: Rome Rising”. Two years after the company cratered in 2008, another company bought the game code and pushed it across the finish line and launched it themselves. So it can be done!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: