don't click here

Why aren't more fan games open source?

Discussion in 'Fangaming Discussion' started by flarn2006, Feb 27, 2020.

  1. Pink-bot


    can you tell me more about how this works? Im frequently worried that if I don't make everything super polished from the beginning its going to be harder to change later (after more features are added.)
  2. Xiao Hayes

    Xiao Hayes

    Classic Eggman art Member
    Yeah, usually a poor work is a work you have to do three times: aside from the obvious first one, it will need a second one to correct it, and the third would be the extra work caused by having additional code related to it that also needs to be updated, or just the work of understanding what shit you or anyone else did back then.

    Of course, that's not the way companies like it to be done, because customers always want everything for yesterday and bosses will always think the customer needs to be pleased to keep it and working fast will mean more customers and more profit even if the coders become the embodiment of stress and anxiety in the process.

    That's why priorities are important, to cover at least the basics and do the rough work first, polishing later if there's still time to do that. And you can always disguise the pending work as manteinance service and get a bit more of money for it; videogames do this a lot with betas, early access and DLCs.
    Last edited: Mar 30, 2022
    • Informative Informative x 1
    • List
  3. President Zippy

    President Zippy

    Zombies rule Belgium! Member
    To recap the reasons people don't open source fangames and romhacks:

    1. Devs don't want to hear other people whine about the flaws in the free entertainment they provided.

    2. Devs don't want someone forking their work, such that a derivative work with minor changes steals all of their thunder.

    3. Even if they ignore complaints and don't care if other people fork, devs don't want to be the point man for other questions pertaining to Other Peoples' Projects. Who's down with OPP? No, not me!

    All other reasons from the first 3 pages are paraphrasings of 1-3, all of which are what people really mean when they say "because it's my work, and I'll do whatever I want with it". Now for The Bad Guy's (me, chico) opinion on each of the aforementioned...

    1. Whether or not you share the source, people will bitch about the product. If you don't want to hear bitching, leave a throwaway email address in a README and don't open the inbox.

    2. The only time this ever happened involving anything worth stealing was when Richard Stallman stole Emacs from Java's inventor, James Gosling way back in 1985.

    Regardless, there is a simple solution if you're afraid someone will get all the credit for your work because they made a minor improvement to gameplay: the original 4-clause BSD License:"BSD_License") . The attribution clause is untenable for an OS or a comprehensive crypto toolkit with over 5k contribs, but for a fangame the size of SRB2 putting all the contribs' names in the README is not a big deal. In fact, it's just common courtesy to put everyone's name down to the coffee-runner in the credits for a song, movie, or video game.

    On a side note, having general contempt for derivative works is a peculiar contradiction: imagine not wanting it because you think your project is perfect as-is, yet being afraid that someone's derivative work might be better than yours. It's also ironic because if "the original" was truly original to begin with, it would be Freedom Planet and the author would be seeking money instead of praise from random schmucks.

    3. This is the only reason a rational and intelligent human being would give a rat's ass. All of the major code hosting platforms put a PR database into every repo with no way to restrict who can file PRs. I don't want people filing bug reports and submitting pull requests to me on something I abandoned. I don't want the repo for some toy project polluted with a bunch of extraneous metadata, and I sure as hell don't want emails asking me how a subset of my toy project's codebase works.

    EDIT: The territorial pissing of (2) is typical of people which economist Carlo M. Cipolla defines as stupid, i.e. it doesn't even enrich the person doing it.

    Not sharing the source to your free game is still a net gain to users and a loss of time for the author, which is quintessentially "helpless". However, narcissism more commonly motivates behaviors which harm others for no gain or even a loss. But regardless of motivation, most forms of obstructionist behavior actually do harm others with no gain for the offender.

    You can't perfectly predict the behavior of stupid people, but you can identify stupid people and stay out of harm's way.
    Last edited: Mar 31, 2022
    • Informative Informative x 1
    • List
  4. Xiao Hayes

    Xiao Hayes

    Classic Eggman art Member
    I get your point, but I don't think you should word it in such a hostile way if you want people to pay attention to what you have to say. And people still have the right to take actions that protect their feelings even if there aren't logical reasons for it, regardless of the nature of said feelings. I do agree with your points when it's about my own stuff, or I'd do if I ever finished something enough to release it, because I don't want to spoil the fun too early but it will probably be too late when it's ready.
  5. saxman


    Oldbie Tech Member
    I'll reply to your second point since that's more in-line with what I wrote...

    Not everything in life is about profit. I think I used the word "pride". That's certainly a component. But here's a statement more to the core of who I am and try to be: it's also about good moral behavior. That's not meant to sound pretentious, but it is a guiding light for me, and has been all my life. People should be willing to acknowledge that the undergirdings of their work is not their own. And I'll add that nobody is perfect in this respect, because I know there are projects I have done in the past through which I could have (and should have) given a little more credit than I did (e.g. ProSonic's 99.9% perfect Sonic physics were possible because of the S2 disassemblies).

    But is it still valid to complain when someone wants all the glory for themselves almost exclusively on the back of your hard work? Yes, I think so. Simultaneously, I think it's important to pick your battles. The Saxman of 20 years ago wasn't as good at that.
    Last edited: Apr 1, 2022
  6. President Zippy

    President Zippy

    Zombies rule Belgium! Member
    I admit speculating on the overall personal character of people over a single behavior, which violates the rights of no one, is going too far. I shouldn't delete that gratuitous last comment I added in my EDIT, but I'd like to informally retract it on the grounds of being a mountain of conjecture based on a pebble of evidence.

    But going back to my points about blame and credit, everybody is overlooking my solutions. If you want credit, you can release your work under the original 4-clause BSD to require proper attribution in derviative works. Even if you don't share the source code, you should consider applying this license to the compiled binaries and assets. It is still an improvement over not including any license at all and simply saying "it's mine", which is tantamount to making the finished product public domain.

    As for the deluge of complaints about coding style and minor bugs, redirecting complaints to /dev/null by providing an email address that you never use is also better than the alternative, regardless of whether or not you share the source.

    On the subject of when to release, I made no comment yet about how soon someone should release their src for the good of mankind. It doesn't make any sense to share the src for a prerelease if you don't want community help in testing and debugging, and you have every reason to be concerned about people stealing credit for finishing an incomplete product. It also doesn't help the community stand on the shoulders of giants, just one jerk. I'm only suggesting that open-sourcing the 1.0 release is the right way to go, and only for projects that are derivative works of something else, e.g. fangames with sprites based on a proprietary character with a soundtrack of mostly remixes.

    Most of my response to Xiao Hayes answers your points, especially the part about my proposed solutions flying under the radar, but there are a couple things I didn't touch on.

    I don't imply that pride in one's work is a bad thing, on the contrary earned self-esteem is a very good thing. I just think people who treat others as a threat to their self-esteem don't understand the concept of it. Self-esteem is great because you earn it by proving to yourself that you are capable of accomplishing difficult things, and it has absolutely nothing to do with other people.

    As an aside, imitation is the sincerest form of flattery. Likewise, if you write code that other people still use and extend 35 years from now, it's proof-positive that your work is good. Plagiarism is blatantly disrespectful, but we seem to agree that using other peoples' work with proper attribution is great for everybody. We agree this doesn't diminish the glory of the previous contributor, but I also argue that it multiplies the glory of the previous contributor when you consider the reverence Dennis Ritchie, Brian Kernighan, and Ken Thompson receive for tools they wrote in 1970: tools which see continued usage and incremental growth today.
    Last edited: Apr 9, 2022
  7. Overbound


    Sonic Time Twisted Creator
    I'm glad I open sourced Sonic Time Twisted. Since I did that a lot of other people took it up and there is a Android Port, Linux Port, Mac Port, PSP Port, Xbox Port and nvidia port. I did no coding for any of these ports. Zero people have built low effort games on top of Time Twisted but if they did that would make me happy.
  8. I'm glad Time Twisted got open sourced, thank you Overbound for doing this. I enjoyed working on the Android port, however long that took, and however long I kept tweeting about "NOW the gamepad support for Android is functional... no, NOW it is :V". My knowledge of Android was very limited when I started, and I learned A TON working on the port. Not only the Android-specific stuff, reading Time Twisted's code helped me understand the issues with design patterns that plagued my own projects and how to deal with them.

    If you hesitate whether to open source a project once it's done, here's an example of what open sourcing a project can do: for the 1.1.2 release, I wrote a detailed changelog of the versions we worked on after the project got open sourced: , IIRC 1.0.4 was the last version Overbound himself worked on, the 1.1.x releases were all from our community :) .
    Last edited: May 15, 2022