top | item 39990509

(no title)

mikedelago | 1 year ago

Hey, I'm on the contributor team for AzerothCore, mainly focusing on maintaining the docker images and linux build CI! Cool to see it here.

AzerothCore's "killer feature" is that it has a module system, where the game server can use C++ code to hook onto events. It's pretty slick and works quite nicely.

One of the things I've been interested in working on is setting up dynamic linking for the modules so it's easier to just download the compiled module and run it with the server instead of compiling the server with the module. The biggest problem I've run into with my implementation for that is the .so for each module ends up being on the scale of hundreds of megabytes, which seems incorrect.

discuss

order

lairv|1 year ago

I can't wrap my head on own hard it is to make such a project, what's your view from the inside, is it a massive thing ? In term of complexity, lines of codes, people involved, etc.

mikedelago|1 year ago

It's definitely not small. From a lines of code perspective, there's ~525K lines of c++, ~175K of C, and ~160K of headers for either language. There's ~4 million lines of SQL, since the entire game's database (items, quests, etc) are stored in a MySQL database.

There's a lot of people involved, and a lot of various PR's and issues in github. As with most projects, this is where it's a situation that the game is so large and there are only so many people maintaining the project and so many people testing or confirming issues.

The project is a fork of a fork of a fork, for the most part. Much of the code comes from either SunwellCore (parent), or more likely TrinityCore (grand-parent), and over the past few years since the SC fork has been maintenance and bugfixes. I don't think any of the "current" contributors wrote the code that manages the actual game world, for example. My biggest complaint, I would say, is that at times there's a lot of "well this is how we've done it in the past" as opposition to a new feature or pull request

I think I would consider AzerothCore to be as complex as a medium-large monolithic service, I'd say. That's basically what it is, since the client is "off-the-shelf". There's a lot going on in the source code, but it's generally not difficult to figure out where an issue is.

I hope that helped answer your question.

Rexxar|1 year ago

Do you know if it would be possible to create a new client and create something completely different than wow or is it fundamentally tied to wow gameplay ?

_akhe|1 year ago

Why so you can change the timeline and seize the crown from Thrall when he invited you to join him in Durotar and you declined? Because you have my axe if you do - the Horde should have stuck to its wild roots!

mikedelago|1 year ago

nice name

yeah, it's possible to create a new client. It'd be a lot of work, though.

Some people make their own patches for the standard client if they have something they want to integrate. I don't really know much about that, though

Sakos|1 year ago

Man, this project looks great. https://www.azerothcore.org/catalogue.html#/details/64692616... This especially sounds amazing and I know what I'll be doing this weekend.

How difficult is it to start contributing to AC?

mikedelago|1 year ago

It can depend - some things, like content related issues may require triaging which can take some time to do.

Testing PR's and confirming that the behavior is correct is actually one of the best things people can do to help - that's something we're always short on.

For most of the code, as long as you can justify the change, it makes sense, and it's in line with the style standard, it'll probably not be an issue