Jump to content

Hi, trying to get more involved in the project


N1ghtm4r3z

Recommended Posts

Hi,

I've been exploring/using MaNGOS since 3 years now, experimented a lot with including features in compile, messing around making it public etc... doing close to nothing in the source code. That last part I want to change. I think I'm ready to get involved in some large scale projects and make a contribution to the community.

Is there a good place to get started with developing/bug fixing for this project, let's say I'm a quick learner, don't need a book on how to compile some code. Just pointing me out in the right direction, what tools I need, what URL's to check out, how to fix a certain bug and make a simple patch etc ... simply, how to scout/develop the source code, test it a lot, and provide patches to help out the community.

Thanks a lot for this impressive project and I'm looking forward on fixing my first bug ;)

Link to comment
Share on other sites

THUNDER ROLLS AND THE HEAVENS BOIL AS AN ADMINISTRATOR STRIDES DOWN FROM THE MOUNTAINTOP TO SEE WHO THIS MERE MORTAL BE.

Well, okay...I just logged in. :P

First, it's good to meet you, david! :)

I know just how you feel. After compiling my own server the first time, I just had to find out more.

MaNGOS primarily supports Windows and Linux, but we do have one or two BSD/Mac guys that would love some company. In theory, we'll support any platform so long as we have the developers to to work with it. Heck, MaNGOS used to run great with SPARC-based servers!

The tools you will need can vary a little, depending on your operating system and personal preference. So long as you're able to write compatible code, it's mostly your choice, but I'll list the ones we've used here the most.

The very first thing you'll need to get comfortable using is Git. We use it for version control and accepting patches. For Windows, you'll at least need msysGit. I also recommend adding an external helper, such as TortoiseGit or GitExtensions. If you're a Power Shell user, then Posh-Git may be your thing. For Linux, you should already have Git built right in, but it's easy to install using a package manager. In this case, there are no other options. It's Git or nothing, so Subversion, Mercurial, and CVS will have to stay with your other projects. Once you have Git set up, you can obtain the sources for any MaNGOS project from one of our many Github repositories. You'll find a listing of the projects here.

MaNGOS is developed primarily with C++, used for the server core and EventAI scripting. The database uses SQL. We do hope to have a scripting engine in Lua sometime in the near future.

For actual programming in C++ you have a few choices. With Windows, you'll need Visual C++ 2010 or newer. Microsoft does supply a free version, Visual Studio Express. College students can get a steep discount on the other editions by registering at a Microsoft Partner site. Otherwise you can shell out several hundred bucks, depending. If you do decide to use Visual Studio Express, then also get the Windows Platform SDK as it provides some tools missing from VS Express. MinGW is also an option, but it isn't as well supported. You might be able to change that trend if you decide to go open source with your tools. I'd recommend either MinGW-w64 or TDM-GCC in place of MinGW as they have a few more complete features. TDM-GCC has a full installer, so it's easier to set up if you're new to installing a developer environment.

If you're a friend of the Penguin, Linux usually has all the tools you'll need built right in. In this case, that would be the GNU Compiler Collection, also called GCC, and the GNU Debugger, GDB. LLVM/Clang is also acceptable in place of GCC and GDB.

Our primary database engine is MySQL 5.5 or 5.6, but you can also use MariaDB instead as it is a fork of MySQL. We also support PostGreSQL and, to a lesser extent, SQLite. For MySQL and MariaDB, I highly recommend SQLyog or HeidiSQL as a GUI frontend for working with your database. I'm not sure about SQLite but MySQL, MariaDB, and PostGreSQL are available for many operating systems.

Once you have your tools, read around our forums to find out what projects we have and the WoW clients they support, as well as other information to get yourself grounded in the basic stuff. Also, you will need to read through the MaNGOS Standards And Practices before submitting any work. It has loads of links and info on using Git, too! The document is still a work in progress, so check back from time to time.

As for finding something upon which to begin work, our Development section is a good place to look at what's going on. Also, if you still have your server or join the Covenant-WoW server, you can find out what needs work though playing the game.

I hope this hasn't overwhelmed you, but it's an experience well worth the trouble. If you do good work and have a good attitude, you may eventually find an invite to join the Dev Team! We're always looking for developers, so tell your friends!

Feel free to ask any questions you may have. We believe the only stupid questions are the ones never asked. If you get stuck on setting up anything, post in our Help And Support section.

I look forward to what you'll contribute. Enjoy your stay! :cool:

Link to comment
Share on other sites

Hey Nuke,

Thanks for the brief intro on the development, just what I need. Git won't be a problem, I use it on a daily bases in my day job. I'm a strong believer of the local repo and merging strategy before pushing to the server ;) .

For now I'll try the following tool setup:

* Microsoft Visual C++ 2010 Express + Microsoft Windows SDK

* msysGit + SourceTree

* MySQL Workbench or SQLyog

Do you perhaps have an Issue tracker like Atlassian Jira?

I was thinking to check out the MaNGOS Two project first, I've used it the most ;), in the future I'll go ahead and follow the most active/desired project.

I might switch development to my Mac or a Linux VM, depends on how well I can transfer and test the server on Debian ;) If the transfer between the windows dev and debian deploy can be somewhat be automated (i.e. with Maven or an equivalent) I'll stick to Windows. About SQL, I'm an experienced Oracle SQL Dev, not much of a diff with MySQL query syntax, I'm hoping to make a diff there as well, maybe in the UDB project or so.

I'll keep you up-to-date on how the setup goes, especially when I would get stuck ;), otherwise you'll find me in the development section.

Link to comment
Share on other sites

Oh... I'm not so sure. A net is quicker, but a nailgun is more... permanent! <insert evil maniacal laughter here>

However, I do believe you will find many things to catch your interest. At this time, MaNGOS is in a rebuilding cycle, practically starting over. While some would prefer a busier, more active project I think you'll find there are advantages. In this rebirth there are vast opportunities now that were once closed under the old guard. You'll find the only real limits are your own imagination and dedication. :cool:

So, would you say the chance to make your mark, reshaping the future of the most renowned and respected WoW private server project, is enough of a start?

Link to comment
Share on other sites

So, some findings and status update.

I've cloned the following 3 projects from github

git://github.com/mangostwo/server.git

git://github.com/mangostwo/scripts.git

git://github.com/mangostwo/database.git

Is there any project missing? ScriptDev2 perhaps? Or do I include it as always in the bindings folder?

The installation of Visual Studio Express 2013 was a success after some dependency fixes :) . I've managed to open project server based on server/win/mangosdVC120.sln .

All is well in the land of cpp.

I'm able to compile a release x64 and win32. Allthough when I want to go in Debug mode to watch some properties, I have some troubles loading the symbols of the dll files. I assume we need the debug version of all the libraries. Most symbols loaded fine after enabling them in Debug->Options->Symbols : Microsoft Symbols Server .

Just 2 libraries are still still giving issues when I want to debug x64:

'mangosd.exe' (Win32): Loaded 'C:\Users\Administrator\Documents\git\mangos\server\bin\x64_Debug\libeay32.dll'. Cannot find or open the PDB file.

'mangosd.exe' (Win32): Loaded 'C:\Users\Administrator\Documents\git\mangos\server\bin\x64_Debug\libmySQL.dll'. Cannot find or open the PDB file.

Other than that, just a lot of conversion warnings for casting size_t to uint8 and uint32. I have to say, its a very extensive code base, so I'll need some time finding my way around in it. And I'll have to do some googling along the way for C++ syntax :), but don't we all :) .

Ow yeah and I noticed you have to prep the database in advance before debugging or running the project. As well as the dbc,maps,vmaps and mmaps files (those are being recreated as we post these messages).

btw, is it possible to rename my user on getmangos.eu? I didn't know that my username would be my display name, since it's my real name I'm not so happy about that :(, and it seems I cannot change it under profile settings. My member ID in the DB would be 3498 if I analysed correctly. And the requested username would be "N1ghtm4r3z"

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use