Obfustication, why?

    Joined
    Jun 25, 2013
    Messages
    403
    Reaction score
    11
    • Legacy Citizen 2
    • Legacy Citizen
    If Starmade wants to go the way of Minecraft, and have tons of people writing tons of mods (and adding tons of value to their product)... what's up with obfusticating the code? It just doesn't seem to make business sense.

    I'm not saying they should go full open source, or something as crazy as GPL. But maybe somethign like what Linden Lab did with the Second Life viewer. The source is available, and people can contribute suggestions back to them. The more eyes on the code the better it will be.
     

    Pholopalus

    あなたは笑う、あなたは失う
    Joined
    Apr 10, 2013
    Messages
    155
    Reaction score
    28
    • Legacy Citizen
    • Legacy Citizen 2
    • Legacy Citizen 3
    I believe schema has said it\'s like this to deter mods while it is in the current cycle of an update every day or two, because every time he updates it will break mods
     
    Joined
    Jun 19, 2013
    Messages
    37
    Reaction score
    1
    It\'s already been explained before that Schema doesn\'t want any modding done to the game until he himself and Beatlebear can stablize the game more. It\'s not a matter of letting other people look at the coding to help him out, there are various different reasons that go behind such a block. You have to think about what could happen.

    At this point your guess is as good as mine when it comes to his true motivations, but to me it seems more like a pride thing. It\'s their project that they want to complete first before letting other people get their hands on it and potentionally screw with certain things that could make or break a game.

    From a business prospective, how would that help the game in an Alpha state that isn\'t even fully funcational yet help sales or revenue? If you want to contribute to the delvelopment process then that\'s great, but honestly there is no business mistakes going on here. Releasing a portion of the code just for a few extra bucks would have no affect on the game delevlopment at all.

    Again this is their project that they themselves are proud to work on alone; without all the extra confusing feed-back or overwhelming repetitive amount of suggestions for a two man team to handle.

    Their game, their rules.
     
    Joined
    Jun 25, 2013
    Messages
    403
    Reaction score
    11
    • Legacy Citizen 2
    • Legacy Citizen
    If the code is read-only, people can\'t \"screw with it\". And \"pride\" is silly reason. That\'s hobby-programmer speak. I get the feeling these guys are a bit beyond that. All programmers write bugs. And it\'s a complete time suck to track down those stupid bugs. Writing code is fun. Fixing bugs is not. The more eyes on the code, the faster the bugs are found.

    I don\'t know how long Schema has been programing for, but there\'s always someone out there with more experience. If you make it hard for those people to suggest improvements, your miss a learning opportunity and your product will be less than it could be. The way Minecraft stores things and transmitts them over the network isn\'t making full use of the fact the world is procedurally generated. I figure I could reduce their network bandwidth 10-fold and improve world-load as much with a few simple changes. But I don\'t want to spend my time trolling through obfusticated code to help them out.

    Business wise, the purpose of an alpha is not purely about proofing the code. It\'s about building excitment, attention and a community. The bigger the buzz, the more people that will be standing in line to buy it when you release. So it\'s more than \"a few extra bucks\".

    Development wise, alpha is where you want to get your architecture baked and solid. It\'s much harder to change later. Opening up your code base for scrutiny by all the people who want to be modders gives you insight into all of the directions people may want to add value to your product. You can then make better architectural choices.
     
    Joined
    Jun 24, 2013
    Messages
    17
    Reaction score
    0
    If you think about it - they said that engine has been in development for almost 10years. That means it\'s not them really writing a lot code. They got architecture there, they are improving it. They probably got some editor where you add new blocks and then it automatically compiles it into code. My guess is they are adding to Schine Engine and improving and testing it\'s capabilities.

    About Minecraft - it has been always obfuscated. But since Java is easy to compile to pretty identical base code...Well guy named Searge (creator of MCP) came a long wrote some code in Python, got deobfuscator off internet and made website and that\'s how MCP was created. And now it has improved with better deobfuscator, community and stuff.

    So from business persprective they would lose money...If you imagine how much money they have invested in developing the engine. It would be comparable of EA releasing their Frostbite engine...

    EDIT:

    I agree if I had acess to code I would bugfix it and improve it.
     
    Joined
    Jun 25, 2013
    Messages
    403
    Reaction score
    11
    • Legacy Citizen 2
    • Legacy Citizen
    That\'s my point: Minecraft\'s code is obfusticated. It hasn\'t stopped people writing mods, it\'s just made it more difficult for them. It stopped me from writing example code to show how to improve network play 10x. It\'s difficult to see what objectives they are meeting with it.

    As for Starmade, they may have been tinkering with things for a while, but just looking at it I can tell you the bulk was not written ten years ago. The bulk of starmade.jar is 3rd party libraries (which aren\'t obfusticated). The rest isn\'t enough to account for ten years of solid work (unless they write very slowly).

    If you look at other companies, none that have realeased their engine have lost anything. Unreal became, essentially, a de facto standard. Others are now being baked into graphics cards themselves. It\'s not like someone is going to steal their code and write a blockbuster. The industry just doesn\'t work like that. You would get hit with a million lawsuits and never get anyone to back you.

    As far as blocks, if the system were purely data-driven, all they would have to do is add some data for new types. (Ever mess with any of the Civ games? Their engine is completely driven by data files.) Doesn\'t look like StarMade is set up that way. I think they\'re working on functionality of the blocks, which you have to have there anyway. But being data driven a good way for them to go, and it\'s better to bake in at the start. I\'ve done a lot of data driven stuff and would love to help them move in that direction. But not enough to go through all the pain that was done for MCP. That\'s why I think they should open up. Someone is eventually going to MCP them anyway, and it\'s been a huge boon to Minecraft. Why not make it easy?
     
    Joined
    Jun 24, 2013
    Messages
    56
    Reaction score
    0
    • Legacy Citizen 2
    • Legacy Citizen
    I am sure it will be moddable eventually, it is a bit early. There are already some modding options in the launcher after all. He probably just wants to finish it as others have said.



    I get you though man, this game is so awesome and i just want to add stuff to it, got to be patient though.
     
    Joined
    Jun 24, 2013
    Messages
    17
    Reaction score
    0
    I agree with you. Well not MCP them but..SMCP them! (Star Made Coders Pack, not Minecraft Coders Pack) They should totally open up but looks like they aren\'t ready to do that yet, though I want them to...Let\'s hope!
     
    Joined
    Jun 23, 2013
    Messages
    295
    Reaction score
    0
    • Legacy Citizen 2
    • Legacy Citizen
    Good lord, give the two devs a breather guys, they\'re not even done with their beloved game that you guys are already wanting to be able to change it. Let them finish first, jee\'.

    For all those that haven\'t ever worked on a game, here\'s a pretty universal analogy:

    It\'s like working on designing and creating a new car from scratch, and in the process of assembling it and correcting and adding parts, some walks into the room and switches parts of the car as you\'re working on it. Obviously there\'s parts he can\'t find or fit to the car because they\'re not even made yet, and that guy complains. Moreover, you obviously get in eachother\'s way and keep bumping and hinder each other\'s progress. And that guy, he still complains about that very fact! He wants to be able to custom the car to fit his tastes already, and it\'s not even fully /working/.

    It ain\'t done, relax hasty and eager modders. Now is more the time for suggestions. Your time will come.
     
    Joined
    Jun 25, 2013
    Messages
    403
    Reaction score
    11
    • Legacy Citizen 2
    • Legacy Citizen
    I\'m not quite sure where you are getting this view of software development from, but it differs sharply from my experience. So I don\'t think you can say it is universal.

    I\'m used to software development as a collaborative thing. There\'s nothing I want more than feedback, especially in early stages. Sure, the feedback needs to be filtered and, at times ignored. But the more I put out there, the higher quality feedback I get. There\'s been times when people have found a big hold in my code, or a use case I was unaware of, and that let me correct it early and well.

    Implying that it will add extra to work to the devs by not obfusticating the code is silly. No one is ever \"done\" with a project. If you note I specifically didn\'t suggest making it open source, I just said to open the code. They are as free to ignore proposed changes as they are to ignore proposed suggestions in the forum. So your car analogy doesn\'t fit. The \"other guy\" who wants to custom the car is off in some other room behind a glass barrier. The devs can watch their antics if they like, if they think it will be inciteful, or just keep heads down working. The \"other guys\" are just happy to be working on something. No matter every week a change comes through that invaildates half of what they\'ve done. It\'s a risk they\'ve accepted. They\'re building familiarity with the code base. If no one cares about what they do, the devs take no notice. But if it gets traction in the user community, then this acts as a perfect filter for something the devs might want to look at.

    There really isn\'t a down side to it.
     
    Joined
    Jun 23, 2013
    Messages
    295
    Reaction score
    0
    • Legacy Citizen 2
    • Legacy Citizen
    I meant working on something, anything really. And while you\'re not even done with it, people are already complaining they can\'t change it. To make it short and boring this time. :I
     
    Joined
    Apr 21, 2013
    Messages
    1,714
    Reaction score
    650
    • Top Forum Contributor
    • Legacy Citizen 3
    • Councillor Gold
    \"Games aren\'t successful if people can\'t mod it\"



    I\'m pretty sure that\'s not a qualifier for business success br0
     
    Joined
    Jan 21, 2013
    Messages
    29
    Reaction score
    0
    Is the code really obfusticated? I decompiled the sources and was able to understand them...

    (I didn\'t recompile, I don\'t really understand java)
     
    Joined
    Jun 23, 2013
    Messages
    295
    Reaction score
    0
    • Legacy Citizen 2
    • Legacy Citizen
    Can be really constructive too.

    Besides, if you see a lack of modability, or, \"constructive input\", perhaps it\'s because schema wants to focus first and do things the way he\'s comfortable doing them. I can\'t really speak in his name though.

    Everyone has preferences in work methods, so I can\'t blame him for working the way he does now, especially while all the content is free at the time.
     
    Joined
    Jun 25, 2013
    Messages
    403
    Reaction score
    11
    • Legacy Citizen 2
    • Legacy Citizen
    Looks like they are keeping the 3rd party libraries in the clear, but all the good stuff is obfusticated:



    Code:
    Archive:  StarMade.jar
      Length     Date   Time    Name
     --------    ----   ----    ----
            0  06-28-13 13:15   META-INF/
          207  06-28-13 13:15   META-INF/MANIFEST.MF
          385  06-28-13 13:15   A.class
          624  06-28-13 13:15   Aa.class
    
    public final class aa extends U
    {
    
        public aa(ct ct1)
        {
            super(ct1);
        }
    
        public final void a(xp xp1)
        {
     
    Joined
    Jun 23, 2013
    Messages
    295
    Reaction score
    0
    • Legacy Citizen 2
    • Legacy Citizen
    Guess the console industry never had any success.

    *Update for the giggles: *

    Looked some numbers up out of curiosity and apparently,
    Out of the 10.5 billions in profits made year 2009 (inb4 nitpicking about it being 4 years ago)
    0.5 came from computer game sales
    9.9 came from console game sales
    Source: http://www.esrb.org/about/video-game-industry-statistics.jsp

    Might want to chop a good portion from the console revenues since I think it includes console sales as well. Even removing 3/4 of those though, the difference is still pretty crushing.
    That 0.5 should also be cut because not all computer games are going to be modded.

    Point is, if your evaluation of success isn\'t quantitative, then it becomes suggestive, and therefore, not really more than personal opinion.
     
    Joined
    Jun 24, 2013
    Messages
    17
    Reaction score
    0
    Thaaaat? Thaat is really well...I\'ll try to explain myself! MCP does it that way: they scan for example public aa(), name it over to method_1753 then it does that for fields, classes and so on. Then it starts rolling over them again and searches file conf.cvs (don\'t remember) for field_1753 and names it for example BlockBed. So it really can be read that way. Just community contributes with the names by searching the code and trying to understand it. (including me) It probably is possible us to do that. But MCP progress is when update releases:

    map the things with custom tool JavaMapper -> give it to program they written that creates txt file with old classes and stuff and txt file with new classes and stuff -> Give it to program that says the differences and outputs some files for decompiler to decompile and compile with.

    And then it\'s done. Sadly JavaMapper aint public and all other custom programs they have wrote neither...So somebody might as well go ask them for those tools. :D
     
    Joined
    Jun 25, 2013
    Messages
    403
    Reaction score
    11
    • Legacy Citizen 2
    • Legacy Citizen
    Oh, you can do it alright. But as the father of two kids I only have so much time to spend. I\'d rather spend it improving StarMade than defeating their obfustication. And that\'s my point: it can be defeated. So what, really, is it accomplishing?