Closed Edsparr closed 3 years ago
You are correct that non-redistributable code could be excluded.
I agree that open sourcing Unturned would bring many benefits. In particular I think it would be great to allow modders to build standalone projects that pick and choose what they want from the base game.
Contributions-wise I do not think accepting pull requests would be feasible unfortunately. Too much of my time required that would better be spent on development of 3 and 4.
From my perspective the biggest downside would be the ease with which fake devs could build and re-upload the game. The mobile app stores have quite a few rip-offs pretending to be Unturned, and it takes months to get anything done about them - painful process. One advantage of publishers would be a legal team keeping on top of that.
Curious to hear what others current thoughts are on this.
Yeah, the part about uploading rip-offs to mobile app stores seems like a real issue and I'm honestly not sure what to do about that.
I can say this about managing PRs which is that I don't think you need to manage them personally. I think many community members would be open to peer review and have appointed moderators to make sure no unwanted code is in the PR as well as making sure it's even wanted in the game. And if there are any questions if it is wanted, they would ask about your own thoughts. I believe a text conversation to you about a feature request is in no way any heavy work compared to implementing them yourself.
Many members of the community are asking for optimizations and I think everyone understands that you can not rewrite major parts to make heavy optimizations for 3.0, but with the community involved heavy optimizations could surely be made, while still keeping backward compatibility, of course.
But they could do that anyway? It could make it more accessible but I can’t see it making a lot of difference from using dnSpy or whatever +1 on this by the way.
To be honest, if someone had intentions to copy Unturned code, they could just fire up dnSpy (as @archie426 pointed out). Also its harder to push such clones to Steam, where they could easily get DMCA'd.
Since you are not including parts of the code anyway, I would just suggest leaving it in a not compilable state. They can also not reuse any assets, which makes it again harder to make a clone.
@CatzMR
@CatzMR
- It’s a free game how can you pirate it?
- Anyone can change shit with little experience without it being open source. Aka gold is already pirated just can’t play multiplayer/BE
- I find it pretty disgusting and xenophobic that you only include China in that. If it’s a joke I don’t think it’s funny and to be honest a good amount of crackers are western.
@archie426 =-=, I am from mainland China, and there are indeed many pirated games. Even if it is a free game, there are people who pirate the second profit.
But they could do that already? Look at all the other comments. I still don’t think it’s fair to include China in that whether you’re from there or not.
@archie426 I just searched and found four download sites for Unturned pirated games. https://www.3dmgame.com/games/unturned/ https://www.gamersky.com/z/unturned/ http://www.3h3.com/danji/20163.html http://www.yxdown.com/SoftView/SoftView_167142.html
@CatzMR Yes... I KNOW. I've been saying this the entire time. It's already possible without open sourcing...
lmao this is from one of the links... Also despite dnspy existing, I think the issue of open sourcing is like locks on a door - it will deter the common burglar but a determined thief can easily get in, it's whether or not it's worth deterring the common burglar, as people who have the knowledge and experience of this sort of "coding" would know how to decompile it anyway.
@tankirules Like I said, anyone can look up .net decompiler and use one, it really isn’t hard.... And if they had the source code which they can easily there’s still a matter of publishing...
As troj said, the proprietary content wouldn’t be available on there, so you couldn’t have it how it is now without obtaining the source for them.
Open Sourcing it would make zero if not very little difference to this. Unturned’s source practically is already “open”, but this will allow people to contribute to it.
That toilet picture is classic. Edited by Phil in 2013 I think.
There are different degrees of open source in this thread. In my view it would ideally be the full Unity project with most code and all assets playable in the editor.
Theoretically as mentioned you could decompile the game DLLs and extract the asset bundles to put together a semi-functional project as-is today.
Releasing fragments of the source code in an uncompilable state would moreso be useful as documentation in my opinion, and not useful for standalone mods.
No matter which option, code contributions would be very unlikely to be accepted aside from maybe small bug fixes. Despite what you may think, it would be a lot of work to manage any complex pull requests especially ensuring they do not break the tangle of legacy code. Content contributions would be more likely to be acceptable.
@SDGNelson I don't mean to expect work from the community or anything like that but there are quite a few capable people who could manage it as far as I'm concerned. You could keep a private repo for yourself and fork a public one off it, then pull the code you're happy to change.
But yes, either way I still believe it would benefit the community whichever way you decide to go with it.
I only can say that allowing contributions from the community would be great. It would allow devs to do the stuff they need. They still can do it now, but its a) More painful - every dev gotta do this b) Can lead to exploits, crashes, lags - Im 99% sure some dev already tried to patch AssertIsGameThread. c) Incompatibility - if more than 1 dev patches the same method just to invoke an event its ok. But what if 5 random devs edit MSIL of 1 method during runtime? I dont even want to think of this. For now, runtime MSIL editing and patching is enough.
Overall, as I said, it would be good to have the ability to add features to Unturned3 while you can work on U4.
^^ Pretty much summed up. Although harmony is a thing it would still be better.
An alternative to this would be an open source commmunity module which would be BE whitelisted and can be installed at the users preference, would be for client and server.
Edit: Trojaner already made one https://github.com/Trojaner/Unturned-3.x-Community-Module
Oh my word, forgot about that! Modules are excellent. If we only got a way to use them properly. Imagine what you can do if you can make a server that is only possible to join if a user has a certain module. It is impossible, but it would be cool.
Imagine!!!!!
I already said that, and no results happend @Charterino
To clarify @educatalan02 about the request to require users to have a certain module, it is already possible. See my reply to your issue here: https://github.com/SmartlyDressedGames/Unturned-3.x-Community/issues/1573#issuecomment-608161253
Note about the community module Trojaner has forked as well: that was originally an officially included module accepting pull requests for quite a while, but IIRC Trojaner was one of the only interested participants. Eventually I decided to be more open to plugin-related feature requests in the base game code instead and closed the repository.
Also @Charterino, are you patching AssertIsGameThread? Everywhere that calls AssertIsGameThread does so for a reason - if you are disabling that check because your code is hitting the exception then there are definitely bugs happening.
I am not and I never would!
P.S. Do u think I am that bad? xD
Sadly I know people who patch that method...
Im 99% sure some dev already tried to patch AssertIsGameThread.
See! Didnt have to wait for a long time. Unfortunately there are many devs that do stuff they have no idea about.
Just wanted to double-check since you mentioned it.
People who do patch to disable it... 😢 why you fools why!?
Sadly I know people who patch that method...
I know these people too, but I just added another check main thread in postfix
It just.... wouldnt do anything? If they are adding ldc.i4.1 ret at the beginning of the method, your postfixes wont even be executed.
@SDGNelson But coroutines are baddd nelly!
Anyway back on topic: Community module : Whitelisted by BE, can be downloaded, included in server config data (?)
I believe this topic has been around before, and it has been shutdown IIRC. But I do believe there could be many wins with open-sourcing unturned. The legal problems with it, which I remember Nelson mentioning in previous open-sourcing attempts, about not being able to publish certain parts of the code could be fixed via making it modular and not publishing that part of the source code. You could license it with you having all the rights to it and still make the community able to contribute to it.
Code review exists for a good reason, if people submit poorly written code, others can review it and help them until it reaches a certain standard and a moderator can approve it. Administration of the repository won't be impossible and can for sure be managed, especially if moderators were to be appointed to help out as well as making requirements to write tests for implemented features.
Instead of just asking for features the community could implement them and you would just approve it.
I would love to hear your thoughts, especially concerns, and if you like the idea feel free to upvote it.