On my role on development

I’ve never contributed to an open source project, so I was wondering what is and what can be my place in such a project?

For example, I do fencing, I love historical fencing bla bla, so, can I write a master fencer and a apprendist fencer profession and put it on git?

And if I can, how does it work? I have to fork, add the code, and do a pull request? Is that the standard procedure?

Or, for example, there are no horses in the game. Can I understand how to code animals in, fork, add horses and then pull request? Is that how you do it?

BTW: I know a bit of c++, I haven’t seen the code, but it is that one, no? So I could do maybe some little, tiny addition, more related on content than optimization or big mechanics. Can I do it? I have to ask someone? Can you clarify this big fog in my mind? :slight_smile:

It’s a little dated, but this is where I went learn how to start contributing:

And professions are in the jsons, I believe, so all you really need is a text editor to add them. And yes, the process is fork the master, create a branch for it, make your changes, and then submit a PR. Then people’ll discuss balance, cleanliness of the code, things like that. And if the general consensus of the developers is positive, it’ll usually make it in.

And yes, the grand majority of it is in C++

Get familiar with git. Json changes are a good start, because they’re easy and let you familiarize yourself with the project.
You can even change, test and PR json changes without compiling the game.
Json changes are stuff like adding new monsters, professions, items etc. - those are basically copy+paste.

If you know C++, it’s a good idea to put it to use when you’re familiar with git.
We don’t have too many people contributing to sources and there are tons of those tiny things that would be easy to write, but no one took the time to implement. Those are good for a warm-up - I started with tiny stuff like making deaf survivors not hear thunders.

If you are unsure about whether a feature is wanted or not, start a thread about it. Threads and ideas are cheap, implementations are not. Plus, you’re likely to get useful hints.

Folks have covered the importance of Git already, so I’ll speak to the fencing question. Current sword MA styles are more-or-less Olympic-style sport fencing, and a stylized version of Niten Ichi-Ryu.

DDA’s MA styes typically focus on one particular aspect of the style. (Most real martial arts do their best to be a complete system, which we acknowledge, and then discard for game purposes.) “Fencing” here makes rarer weapons even more effective, but is otherwise not terribly useful. Other examples include Taekwondo being primarily kicks and blocking, Ninjutsu being quiet, etc.