Jump to content
Chris

Community Coder Program!

Recommended Posts

Community Coders are members of the Xenonauts community who will be given access to the game's source code via a semi-private git repository on our website.

The idea is that they will be able to add new features / fix bugs and release patched versions of the Xenonauts .exes, which will be distributed on these forums or via Steam Workshop. They will not be official Goldhawk-endorsed releases, but may be incorporated into future official patches.

This will also make things easier for non-programmer modders, as a few Community Coders could make moddable areas of the game that are currently hardcoded. Essentially they can act as enablers for the wider modding community as well as modders in their own right.

If you are interested in becoming a Community Coder and would like access for the source code, these are the requirements:

  • You are a good coder, so you know your way around git and have a programming degree or a coding job in the industry or so forth. There are two reasons for this:
    • Our codebase is a mess and you are unlikely to be able to achieve much if you do not have good coding skills.
    • We want to ensure you don't end up breaking everything for the other coders on the project (and they don't break everything for you).
  • You are willing to sign a NDA / agreement which states:
    • The source code remains our property and you will not discuss / distribute it outside the hidden Community Coder forums. We'd rather not have it leaked across the whole internet!
    • You may freely distribute any executables compiled from the code provided it is on a non-commercial basis.
    • We're allowed to (and will) sue your ass in the UK if you break either of those rules :)
    • The work you produce from the source code can be used by Goldhawk for any purpose without requiring permission or attribution if we so choose (you do not lose the right to distribute it if this happens).

If you're happy with those terms, please send me an email with your details and we'll consider and hopefully accept you. It'd be really great to have a larger team than just Solver working on this sort of thing - I'm sure the rest of the community would really appreciate it!

Share this post


Link to post
Share on other sites

[*] You may freely distribute any executables compiled from the code provided it is on a non-commercial basis.

Does that really mean that a Community Coder could (theoretically...) compile the current source untouched and distribute it on a non-commercial basis?... Wouldn't one at least need to have purchased a copy of the original Xenonauts to be allowed to install whatever a Community Coder would develop from the source?

Share this post


Link to post
Share on other sites

My question is if it would be possible to somehow organize those mods so that they don't spiral into a large number of incompatible, mutually exclusive versions of the game? I guess that would be very hard to achieve though unless the coders begin to work together to provide compatibility patches at some stage.

Does that really mean that a Community Coder could (theoretically...) compile the current source untouched and distribute it on a non-commercial basis?... Wouldn't one at least need to have purchased a copy of the original Xenonauts to be allowed to install whatever a Community Coder would develop from the source?

My guess would be whatever mods are produced would still need an original copy of the game to work - just like none of the current mods can be played without the vanilla version. Providing a modified exe doesn't mean you can run the entire game without all the files.

Share this post


Link to post
Share on other sites
Does that really mean that a Community Coder could (theoretically...) compile the current source untouched and distribute it on a non-commercial basis?

Nope. Goldhawk grants these coders the right to distribute the compiled executable, not all of the game assets. The executable without assets is useless, and one still needs to buy the game to get assets.

Share this post


Link to post
Share on other sites

That's a brave thing to do! All your decisions to open yourself to community have been vindicated so far, so I am sure this could lead to some extremely interesting results!

Btw are we talking about C++ here?

Share this post


Link to post
Share on other sites

Based on my experience with how other game companies allow modders to extend their game, I suggest adding the following concept to the NDA (whatever it translates to in legalese):

- Any modifications to the source code you do and distribute under this agreement become copyright of Goldenhawk and may be used by Goldenhawk in any way and for any purpose, with or without permission or attribution. (although the mod author retains the right to use/distribute them).

This is to ensure that Goldenhawk is able to reintroduce good mods/fixes back into the main game without having to deal with copyright, permission, attribution, royalties, or any other grey area that could otherwise fracture the source into forks which cannot be reintegrated by Goldenhawk without being bogged down in copyright hell.

(Yes, attribution to modders is a "nice thing to do" in game credits, but it shouldn't be a legal obligation and Goldenhawk should be able to do so at their discretion, otherwise way too much drama (e.g. multiple people worked over a mod and argue about who/how should be credited).

Share this post


Link to post
Share on other sites
- Any modifications to the source code you do and distribute under this agreement become copyright of Goldenhawk and may be used by Goldenhawk in any way and for any purpose, with or without permission or attribution. (although the mod author retains the right to use/distribute them).

This is to ensure that Goldenhawk is able to reintroduce good mods/fixes back into the main game without having to deal with copyright, permission, attribution, royalties, or any other grey area that could otherwise fracture the source into forks which cannot be reintegrated by Goldenhawk without being bogged down in copyright hell.

I vote for this! This is how it should be by default.

Edited by WarStalkeR

Share this post


Link to post
Share on other sites

I'll be glad to cooperate but its quiet sorry that I had limited Basic/medium C++ skills.

Also I think that Sentelin or Selgald, part of XNT Team had competent skills in C++.

I'm also like that solver do all things!

He is awesome programmer

Thank you Chris and Developers the world need more persons like you.

:cool:

PD, Solver/ Thank you for the armors, we enjoy too much implementing this features to XNT, you can even imagine how I love pilot a soldier in Sentinel with 2x Warhawk II Heavy pistols, its like a reaper of Sc2. :o

Edited by TacticalDragon

Share this post


Link to post
Share on other sites
My question is if it would be possible to somehow organize those mods so that they don't spiral into a large number of incompatible, mutually exclusive versions of the game?

Answer is simple - git. Cris mention, that git using skills are required, and this will ensure, that versions between different programmers wouldn't conflict. if you want, you can google it. Even simpler put - it's like main code is hosted anywhere, and all others have copies, which they modify at hearth content. After modifiers are done, they pull request to main code, that it should be modified. Git looks up, if there's no conflict between changes of current main code and sometimes, if there's no conflict with other people versions. Then he decide, add your modifications, or start telling problems.

So, don't worry, there won't be version problems. )

Share this post


Link to post
Share on other sites
Based on my experience with how other game companies allow modders to extend their game, I suggest adding the following concept to the NDA (whatever it translates to in legalese):

- Any modifications to the source code you do and distribute under this agreement become copyright of Goldenhawk and may be used by Goldenhawk in any way and for any purpose, with or without permission or attribution. (although the mod author retains the right to use/distribute them).

This is to ensure that Goldenhawk is able to reintroduce good mods/fixes back into the main game without having to deal with copyright, permission, attribution, royalties, or any other grey area that could otherwise fracture the source into forks which cannot be reintegrated by Goldenhawk without being bogged down in copyright hell.

(Yes, attribution to modders is a "nice thing to do" in game credits, but it shouldn't be a legal obligation and Goldenhawk should be able to do so at their discretion, otherwise way too much drama (e.g. multiple people worked over a mod and argue about who/how should be credited).

Yes, this was how it was going to be. I should probably flag up those terms in the OP so everyone is clear about how it works in advance!

Share this post


Link to post
Share on other sites

As for Git, I will personally hunt down and psionically attack anybody who just starts committing to the master branch.

Share this post


Link to post
Share on other sites
As for Git, I will personally hunt down and psionically attack anybody who just starts committing to the master branch.

Can you not lock the master branch so that only certain users can commit to it?

Share this post


Link to post
Share on other sites

I have installed (on my server) and used Git on my own for a while. If you need a hand in setting up the Git for Community Edition I can help. In addition I use Eclipse and Eclipse CDT with perfectly integrated Git functionality.

Share this post


Link to post
Share on other sites
Answer is simple - git. Cris mention, that git using skills are required, and this will ensure, that versions between different programmers wouldn't conflict. if you want, you can google it. Even simpler put - it's like main code is hosted anywhere, and all others have copies, which they modify at hearth content. After modifiers are done, they pull request to main code, that it should be modified. Git looks up, if there's no conflict between changes of current main code and sometimes, if there's no conflict with other people versions. Then he decide, add your modifications, or start telling problems.

So, don't worry, there won't be version problems. )

That's great to hear and well done on thinking of it in advance!

Share this post


Link to post
Share on other sites

How serious of a commitment do you guys need from an applicant to this? I was thinking about helping out with bughunting, but I have very little free time.

Share this post


Link to post
Share on other sites

VisMajor: if you don't have the time to make someting and support it, then bug hunting is probably the best level of commitment you can make.

Share this post


Link to post
Share on other sites

You wouldn't be the first one to get accepted and not produce anything in the end. That said, unless that "very little free time" is an exaggeration, it's not like you'll get anything done with an occassional half an hour of looking at the code.

Share this post


Link to post
Share on other sites

I am currently playing trough the game, and found some annyoing minor bugs, and I tought, with this community coder program, I could actually do something about them. Its just that I have 2 more projects I am working on, and I dont want to overcommit myself. Ill try to finish those projects this year, and when they are done, I could spend more time on this. The plan the would be to familiarize myself with the code and fix anything I find while my playtrough, then once I have more time, get myself a bit more involved.

it's not like you'll get anything done with an occassional half an hour of looking at the code.

It depends. In my experience, most bugs are easy to fix, once you know what you got to do. I usually spend the most time finding the bug. Last year I had to fix a bug at work, that I spent a month tracking down, only to fix it in 2 minutes. That was infuriating :) Anyway, "little time" in this case means few occasions, but every occasion should be a couple of hours or so.

Edited by VisMaior

Share this post


Link to post
Share on other sites

In that case I suggest you simply give it a try. After all, in the worst case you simply won't do anything. Still, this codebase may be a bit different - it's been written by inexperienced people, so it looks simple, but after a deeper look it is often a huge mess. So you may spend 2 minutes on finding the bug and hours on fixing it. And don't hesitate to ask if needed (I already know the codebase quite well).

Share this post


Link to post
Share on other sites
In that case I suggest you simply give it a try. After all, in the worst case you simply won't do anything. Still, this codebase may be a bit different - it's been written by inexperienced people, so it looks simple, but after a deeper look it is often a huge mess. So you may spend 2 minutes on finding the bug and hours on fixing it. And don't hesitate to ask if needed (I already know the codebase quite well).

i am agree. be carefull, may be you may create the bughell.

Share this post


Link to post
Share on other sites

Incidentally, a chap called Bastian has been contacting me about trying to join this program and is doing it from an inbox that is bouncing all incoming emails. If you're reading this, Bastian, please sort out your email account.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×