Thread Rating:
  • 2 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Annual public releases of sanitized code
#1
OH BOY IM BACK ON THIS SHIT AGAIN

     In this thread, I will propose a suggestion regarding a "psuedo-open" style of code publicity, in which the Gooncode source is sterilized of code which is necessary to hide from the public and released publicly on an annual or otherwise regular interval, so as to enrich the coding community and further the healthy nature of the Goonstation community.


THE PROPOSITION

     Gooncode should be made public on a regular basis. This would entail purging of sensitive code, as seen in the recovery period following the leak. For example, this would include such sections as Telescience Secrets and Secret Recipes. If particularly desired, it could also include fundamental legacy code that would not feasibly be changed by patchmakers in order to alleviate worries of gooncode derivatives, but as this has not been done with the 2016 release, I doubt its necessity. An annual release date would be a good schedule to maintain, as it allows a somewhat modern reference point at all times, with a refresher when it starts to become truly necessary. In addition, this could be aligned with the summer to minimize workload for those of the code maintainers currently in education, if any. Needless to say, the schedule of code releases is not the focal point of this suggestion, and should be taken with a grain of salt.


ARGUMENTS IN FAVOR

     There are a variety of reasons for this suggestion, focusing on the welfare of the patching community and health of the codebase. Firstly, we can see that as time progresses, more things break in the code. This is the nature of BYOND. Due to the nigh-mystical nature of the engine, almost anything can proverbially shit the bed at any given moment for any given reason. This is, of course, bad. Regular code releases would help mitigate this, allowing for community hobbyist coders to help with bugs that the proper code maintainers may not have the time, energy, or will to fix. Whereas simply having one person tackle an issue may result in a solution eventually, exposing the problem to an entire community who, for whatever reason, may be particularly interested in a particular issue being solved would dramatically reduce the time it takes for such problems. It provides a wider span of perspectives which is a boon to problem solving, and as mentioned, may expose individuals with a vested interest in the broken mechanic to the code, allowing the issue to be taken on by someone with an actual incentive to solving it (eg, being able to play with their favorite obscure nerd toy.)

     Additionally, fresh code allows for patchmakers to more efficiently design patches. Updated core code could completely invalidate a patch, and all the patches currently incorporated were "silently added" in a sense, that is, their actual implementation and status may differ from their original implementation by the patchmaker themselves. Regardless of this, however, is pure quality-of-life. Even if a patch could be verified to be not edited at all in its official implementation, prospective patchers may need to independently assemble the patch and all relevant previous patches that may affect it if they wish to change a feature affecting this patch. This is an obstacle to patching so extreme that it quells potential patches without fail, when a fresh release would provide complete and modern relevant code. I believe that this assembled modern code would allow a new wave of patching on an annual basis, no longer limiting patchers to merely prayers and what they think is still relevant.
 

REFUTATION OF COMMON CRITICISMS

     In my experience, this suggestion has been somewhat controversial. Overall opinion seems to be general apathy (which I hope this massive effortpost will change), although proper criticisms do need to be addressed.    
  • Claim: Code releases would encourage use of code in other codebases.
          Response:

     Fundamental code has not changed dramatically.     
     We must understand that it is no easy task to incorporate code of foreign codebases. Years of separation has rendered these codebases very distinct in many ways. Were code to be "stolen", there is absolutely no reason it would not have already been done. Both the main code and patches are public. While differences make a lot of, well, difference for actual gooncode patchers, they matter much less to patchers of other codes, who in order to use our code would already be making significant edits to the code in order to get it to work. Either directly taking patch code, 2016 code, or simply by eyeballing an addition, a coder would be able to replicate it in their own code with enough labor, and as taking code from other bases is already an investment of significant labor, problems that face our community patchers would matter much less to them.

     Not all desired features are worth porting actual code for.     
     While the idea of outright stealing code is a romantic one, it is not necessarily a true one. In many cases, the labor associated with actually porting code simply is not worth the trouble. It would be more advantageous for many situations to simply observe the mechanic one would like to use in their own codebase and code it themselves. This is both the case for particularly simple features which aren't worth the trouble of dissecting, and particularly large features which are so tremendously bound to fundamentals that a port isn't feasible. This leaves coders a narrow range of medium-sized fundamental-ish shit, which they likely would have already taken if they so desired it.



  • Claim: Furry servers in particular could use gooncode.
          Response:

     They already can, see point one of previous claim.

     Who cares?     
     Seriously, hating furries so much that you're outraged at the idea of them having fun the same way you do seems incredibly unhealthy. See someone.  



  • Claim: Coders may not want their code publicized.
          Response:

     Fundamental code and patches are all publicly available.
     A public release would only serve to compile patches and code, along with all the derivative tweaks to code made in the time since the previous release. As that means almost all foundational code is already public, we can conclude a compilation would be no more damaging to such a coder than it currently is.

     Such coders could request their code be made nonpublicized along with secrets.
     Similar to artists who ask that their art is not posted elsewhere, it would not be hard to compile a "do not republish" list if such a thing is absolutely necessary. Using this theoretical list, snippets or features could be removed along with things  such as telescience zones when preparing for the release.


CONCLUSION

     I hope that this post has served well to outline the merits of such an action, as well as address common concerns with it. I feel as though the patching community that has grown from the leak has been an incredible boon to our community as a whole. We've seen a metric fuckton of amazing content, overdue fixes, and just plain narrowly obscure tweaks that have really improved the game as a whole in a way that an isolated and often preoccupied closed source coding team simply can't manage due to limits on time, energy, patience, and interest in the game. A course of action following the spirit of this post would go an incredibly long way in giving the community a hand in further perpetuating this brilliant streak of change for Goonstation.

also, you don't know how bad this text editor is until you try making something slightly professional with it, jesus fuck Banging head against the wall AAAAAAHHHHHHHHH! SO ANGRY SO ANGRY SO ANGRY SO ANGRY SO ANGRY
Reply
#2
(09-08-2017, 10:27 PM)cyberTripping Wrote: Regular code releases would help mitigate this, allowing for community hobbyist coders to help with bugs that the proper code maintainers may not have the time, energy, or will to fix. Whereas simply having one person tackle an issue may result in a solution eventually, exposing the problem to an entire community who, for whatever reason, may be particularly interested in a particular issue being solved would dramatically reduce the time it takes for such problems. It provides a wider span of perspectives which is a boon to problem solving, and as mentioned, may expose individuals with a vested interest in the broken mechanic to the code, allowing the issue to be taken on by someone with an actual incentive to solving it (eg, being able to play with their favorite obscure nerd toy.)

I agree with this wholeheartedly. Being a single active contributor code-wise for weeks on end is extremely draining and demotivating, and I really wish I had any power in order to fix the particular bug that was caused during a patch mismatch that broke projectiles. 2016 release had no issues when I tested that particular patch, but 2017 had something change about the projectiles that cause a new bug to crop up.
Reply
#3
I think a somewhat open code would do nothing but good for goonstation. But the coders have shown they don't feel the same and since it's their work I respect their choice. None the less I support this idea.
Reply
#4
i think there's another thread for this also, i should merge it
Reply
#5
i agree with this, i'm tired of seeing features and patches that are broken because the codebase is too old
edit: and forcing there to be a coderluminati who are the only ones allowed to see actually relevant code to make it not broken is worse for the patchers and for the SuperPatcher™ dispatched to fix mistakes they physically could not avoid making
Reply
#6
(09-09-2017, 12:20 PM)ZeWaka Wrote: i think there's another thread for this also, i should merge it

I specifically made a new thread so my massive effortpost wouldnt just be lost in all the other posts. Iirc the OP in my last thread was like, an unimpressive paragraph
Reply
#7
I always figured it was... well,

Claim: It's a pain in the ass to do.

Sure, I'd love (screened) releases. I think they'd be beneficial to the server's health. I'm just not sure who would be willing to handle the upkeep.

That aside, while it's not the same, I haven't heard anyone complain about not getting relevant code bits when requested. It's not like they bite.

Well, not all of them.
Reply
#8
(09-09-2017, 08:07 PM)Vitatroll Wrote: That aside, while it's not the same, I haven't heard anyone complain about not getting relevant code bits when requested.

I was unaware this was a thing. Seems obvious to 'just ask' really.

That being said, I am very interested in the code for the new crafts-system, but not in a 'I have a good idea but I need that code"-sort of way and more of a "Curious how it works and how to add new recipies"-sort of way. I think this is one of those places where specifically crowd-sourcing could really help flesh out the full potential for DIY-gear.
Reply
#9
(09-10-2017, 01:38 AM)The Grim Sleeper Wrote:
(09-09-2017, 08:07 PM)Vitatroll Wrote: That aside, while it's not the same, I haven't heard anyone complain about not getting relevant code bits when requested.

I was unaware this was a thing. Seems obvious to 'just ask' really.

That being said, I am very interested in the code for the new crafts-system, but not in a 'I have a good idea but I need that code"-sort of way and more of a "Curious how it works and how to add new recipies"-sort of way. I think this is one of those places where specifically crowd-sourcing could really help flesh out the full potential for DIY-gear.

Let's hope that one day makeshift armor will come back.
Reply
#10
(09-10-2017, 01:38 AM)The Grim Sleeper Wrote:
(09-09-2017, 08:07 PM)Vitatroll Wrote: That aside, while it's not the same, I haven't heard anyone complain about not getting relevant code bits when requested.

I was unaware this was a thing. Seems obvious to 'just ask' really.

That being said, I am very interested in the code for the new crafts-system, but not in a 'I have a good idea but I need that code"-sort of way and more of a "Curious how it works and how to add new recipies"-sort of way. I think this is one of those places where specifically crowd-sourcing could really help flesh out the full potential for DIY-gear.

I definitely think community additions of stats/sprites/recipes would go a long way in making the crafts system and the fabricators way less terrible.
Reply
#11
Go look at the changelog and you'll find that in recent history a significant portion of updates are done through patches. Coders seem to be primarily dealing with bugfixes.
By not having recent code, we're actively stifling updates, simple as.
By having recent code, patchers could actively bugfix too, and coders wouldn't be put out by implimenting patches which by reading through the forums occurs quite often.

..is it difficult to do? Even if it's a quarterly thing? It's become obvious many of the coders (if they weren't already) are disenfranchised since the leak and have abandoned goon as active coders. I can count on one hand the amount of coders who are currently active.

Go for the low-hanging fruit and call me jaded, you'd be right. I honestly don't think this will occur, and if it does it won't help as much as one would hope. But hell, I'm not that jaded to realize dialogue is important, and currently this whole thing is the massive elephant in the room.
Reply
#12
Coders need to become more active again or add more coders. If they can't bring themselves to work on the game be it because they are busy or just dont care anymore then its time to pass the torch. More new admins need to be added as well if recent events say anything, or things need to change aka code releases so the community can have a easier time adding and working on things. Change is needed in my eyes.
Reply
#13
one thing that's nice is since the leak, I've separated most of the adventure z-level code into it's own folder
Reply
#14
Personally, I think patches have been effective at adding things, but I really appreciate the distinction between patch coder and staff coder as a means of quality control, both in cleaning up code and getting it working with everything as well as maintaining "goon brand" and making sure things stay consistent thematically

I think even if the code was open, we'll still need a central team of people who decide what actually goes into the game

I guess I might be worried, maybe baselessly, that more coders making whatever they'd like can lead us to a too many cooks spoiling the broth situation
Reply
#15
Couple of insights from one of the newer coders, don't take my thoughts and opinions as representative of the rest, they're my own:
  • The codebase really hasn't changed that much. There's been some restructuring, and a couple of the mechanics have changed (e.g. materials), but most of the "content" is the same.
  • To that end, contributing content is where the community can best help. This would apply regardless of whether there was an updated release or not. We have finite amounts of time/effort, and spriting is easily one of the most time-consuming and complex parts of adding new stuff. If you've got a new bit of content and have a sprite for it, odds are (assuming people generally think it's balanced) it'll get added. They may not add much to the game, but they do add breadth and that level of richness is what makes SS13 feel "real". As an example: while for the most part the food the chef can make is mechanically similar (there's been some cool ideas for getting this changed, but I digress) the fact that I can serve a 5-course meal is awesome and rewarding in its own regard.
  • Making the code available (even without secret content) would encourage people to make spinoffs/variant servers. While some may view this as healthy, I view this as fragmenting a fairly small community. If a new "Goon-based" server popped up that was basically just Goon with a different map, say, would you play it? If yes, you'd be furthering the low-pop issues occasionally seen.
  • The amount of community patches that have not been implemented/rejected is less than one forum page long. I honestly don't believe that if the codebase was opened up that people would suddenly start putting in huge game-changing patches.
  • If you seriously want to do something where the 2016 release is not sufficient to let you do it effectively, just freakin' ask a coder and if we think there's merit to your idea we'll be happy to give you the relevant snippets that let you build on it. Seriously.
  • At the moment, the volume of community contributions is fairly manageable by the coders. You might argue "but if the community could contribute directly, coders wouldn't have to waste their time merging it and could focus on new stuff". That's not true at all, as coders would still have to review contributions. It's rare that someone submits a patch that is bug-free or couldn't be done in a better way (this includes my own community contributions pre-coder-status).
Honestly, I don't think a community release would change much, would have a not-insignificant amount of work involved in releasing and maintaining it, and comes with the caveat of "any secret stuff that accidentally gets released would no longer be secret", which is a risk.

If you have an idea you would like to implement, nothing is stopping you. Nothing. Yes, there's one more hoop of "can I have the relevant code parts to build my idea around?", but all that does is slow you down a touch (if it even applies to you). I would be very interested in knowing specifically what idea someone has that they haven't implemented because of the lack of a recent release.

One aspect that I think does hold merit is getting a couple more coders aboard. There's a significant amount of trust issues in that, and it's not a quick process. What I will say is: make decent patches which actually run (seriously, if your code doesn't run on the release you built it on then you need to rethink your approach), include sensible documentation detailing the changes, and respond to feedback appropriately. Not every patch will get implemented. Focus on quality over quantity. One good patch is better than three where we had to bounce it back several times.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)