Ok, I get that you’re all anxious to see the project develop, can’t wait to be able to play everything and wanna help as much as you can. I appreciate that. But now with 8 pull requests pending, some even conflicting with one another, let’s get some things straightened out. Here’s the easiest way you can help the project:
TEST THE GAME. Really, we spend so much time developing that we don’t have time to double-check everything and make sure nothing is broken. We put out builds not just to show we’re making progress but so people can play with them and give us feedback to make sure we’re going in the right direction, but we often don’t get much more than “oh wow”s and bugs slip through. One of our goals is to be as bug-free as possible and we can’t guarantee that without your help.
But you still really really really really wanna program something. Ok, here’s some tips on how to do that while still being helpful:
- Please try to follow the coding guidelines and overall structure of the project. I know you all have your own flaming reasons why this style is better than that style and will defend it to the death, but it’s essential that the code stays clean and consistent. I know players only care about stuff working, but if I just accept everything as is, the code can snowball into an ugly mess that nobody feels like maintaining anymore and hinder development, so I review everything that is contributed to ensure this. Feel free to post any questions you have about the code structure and how to best integrate your stuff to avoid delays later.
- Find something useful that nobody else seems to be paying attention to or can figure out. Bug fixes, improvements, optimizations, etc. Things that are easy to review and merge without worrying about the whole impact in the project are the best. Special thanks if it’s something that’s been frustrating us for weeks and you found the perfect solution.
- Don’t try to work on stuff we’re already working on, specially very large stuff at once, this is very disruptive. Being surprised by a sudden huge contribution is not fun if it just makes all our effort useless, so you might think you’re speeding up the process, but it’s impossible to guess where we’re going with a feature just from looking over partially-implemented code and you’ll just take it in a completely different direction. Then we either have to scrap all our work, all your work or do our best to try to mish-mash and integrate it all coherently, either way it’s a lot of effort wasted. When in doubt, post in the forums first to make sure you’re actually being helpful.
- Finally, OpenXcom can’t please all the people all the time. Maybe you have some crazy ideas that don’t really fit the scope of the project so we can’t accept your contribution, but don’t let that stop you! This is open-source, anyone can take it wherever they please, it doesn’t all have to be part of the main OpenXcom. You can just keep developing it separately on your own end, maybe other people like your crazy ideas and wanna see more. Some think everyone keeping their own patches / branches / versions / whatever is an ugly mess, but I think it’s a better approach than trying to turn OpenXcom into this massive bloaty all-encompassing solution for everyone’s wishes with a million else-if’s. We will be incorporating options and moddability into the main project, but only so far.
I don’t mean to sound like a hard-ass, I really do appreciate our community and how helpful you guys try to be, but it can only go so far. Right now I’m working on rulesets and started getting a lot of ruleset contributions, often conflicting with one another, and I just had to stop it before it became a mess. First and foremost, be patient and let us do our job, we’re not going anywhere. 🙂