Alright, so I watched @Ponder’s stream last night (not live), and I was very excited to hear that he is open to the possibility of this. There has been some great discussion thus far, but I think we need to separate this into two distinct discussions. I believe there is a big difference between bug fixes and new content, and each point deserves different discussion.
##Bug Fixes
Let me start off with I am 110% in favor of a system that allows users to submit bug fixes to Team Radient. As was brought up on the stream, many times the error is quite minor, and the fix is immediately clear to anyone who is remotely familiar with the code. Something like @Beatrice’s fix for the misplaced voxel in the fine comfy bed, or a typo in the en.json
file in locales, (or the example last night of a missing default animation) - these are things that aren’t adding anything major to the game, are easy for the devs to review, and simple to merge into the code base.
###How to accomplish this?
This is the part that needs greater discussion. I think the best way (my opinion here) would be to make the non-engine components of the game public on Github (ie. anything that ends up in a smod
when the game is compiled) and allow users to submit Pull Requests. In order to submit a Pull Request, TR could require users to sign some type of CLA (Content Licencing Agreement) that makes it clear that they are contributing the code of their own free will, acknowledge that they will not be paid, and waive their IP rights to the code. Then a user could submit a Pull Request, TR can review, communicate with the user if necessary, and then merge right into the code base.
If this is to work well, there would need to be clear documentation on how to submit code/models, what is accepted, and coding/commenting styles (to keep everything consistent). I think a great example of a project that uses this method (and does so with success) is Discourse (the forum software we are using right now).
###Performance Improvement/Fixes
This area sort-of falls under Bug Fixes, but is a bit greyer of an area. While a bug fix will generally have a clear and concise solution (move voxel over by one, remove typo in json file), performance related stuff can be a bit more subjective. Additionally, some of the needed fixes might fall into C++ code that is part of the engine, and thus not viewable on Github. I would tend to say this is not an area users should be touching too much, better to write up a detailed report in the #support:performance category.
##New Content
So this idea has been discussed at length before:
http://discourse.stonehearth.net/t/idea-contribute-your-art-models-etc-to-stonehearth/16265?u=jomaxro
I think that new content should not have such a direct route into the game as bug fixes does. If a user wants to add something to the game, they should follow the existing route and make a mod. If the mod is popular among the community, it will likely be seen by the devs here on the Discourse. If they like it a lot, they can contact the user and ask if they can integrate it into the game. Should the user accept, credit will be given as such. If not, the devs are of course free to develop it themselves, and ideally would still give some acknowledgement to the original creator.
By keeping new content as mods, it helps avoid issues 2 and 3 from @Hyrule_Symbol’s post. There would be no “Dominance” as experience creators would continue to create mods as they see fit, and it would be up to TR to request integration if they want. It would also limit “Too much content” as TR would control the flood gates, not the users making the requests.