While good for individual mods, trying to use multiple mods that use diffs would quickly become impossible.
Can you explain technically how this would work? What would a "patch" file contain. Are yout talking about something like a Unix patch files? https://en.wikipedia.org/wiki/Patch_(Unix). Because I don't think this would work well with multiple mods installed at once, and definitely won't be useful during development when files are changing so much? (You beat me to it Raevn) Why not use the thread above? "Extending/Overriding the UI", I think it's apt for this disussion. Maybe we should start talking about it there?
edit: diff files?? lol this is 2013 bud, there are easier ways to accomplish this "quite elegant" are you kidding me? lol the way they've done things now prevents you from even getting decent error reporting. There's no way to make this "more complete" without fixing the aforementioned problems. You guys are delusional. What we had before was fine. What they've given us is limiting and provides no benefits, and is generally indicative that they have no idea how to handle this. At the end of the day it would have made more sense to just let us duplicate the entire UI folder and choose which UI folder we want to load at runtime (or even swap them out during gameplay and refresh). From there, it would be trivial to implement a build system using something like grunt that would generate a fresh UI folder with the desired mods. This would also mean we get nice things like automatic linting, minification, unit testing, and compilation. And thanks to source mapping, there would be no issues with debugging minified/compiled code. Grant asked me to send him a nice email about this on twitter about this over a week ago, and I have yet to hear back from them.
Exactly. Let's say it's basically won't work much better when you have two mods which conflict with each other. But patch system let you detect where exactly conflict happen, while JavaScript-side html/styles replace just break everything. I totally agree with that, but I think about future. Nothing is more permanent than a temporary solution. :evil: I posted it here because I seen this discussion here.
Then give me a link with explanation of better idea. Diffs (or something like that at least) gives much more flexibility and easy conflicts detection without tons of programming on Uber side. Any other plugin system is very limited or require tons of work from Uber. Don't forget: they can't really modify Coherent and it's have it's own limitations.
We're trying to discuss this civil like with you. Also did you read my post I linked above? It sounds pretty similar to what you're suggesting.
Too bad the way I'm suggesting is the industry standard. Just stop talking about "diffs" and go read up on grunt. Thank me later.
Directly modifying files (whether by editing the source files or using any kind of diff) is far from fine. The minute you want to install 2 mods you have an issue. The primary purpose of a modding system should be to allow non-destructive modding. This still doesn't allow multiple mods at once.
Yes it would. That's what compilation does. Please read my posts and links thoroughly before you fire off some off the cuff reply.
Can you please explain in few words how it's help to prevent conflicts when base assets modified? I also don't see how complicated things like grunt might help to make modding accessible. I sure you are good JS programmer, but not everybody are. And your solution don't seems like anything noob-friendly.
Two words: source control. Not being a good programmer isn't a good justification to dumb down a perfectly good system for everybody else. Instead I suggest you go learn to program.
What if everybody else aren't professional programmers? :roll: You suggest system which complicated for everybody and don't even try to explain it to people. Don't need to worry about me so much. :mrgreen:
But it's not modding of _game_. It's modding of UI, HTML pages and javascript. There never will be more than few pages and menus, so I don't get why this should be complicated.
I think you are thoroughly underestimating the scope of what will be possible in due time. Edit: for example, I'm working on a build menu that, instead of being a bar on the bottom the the screen, appears where your cursor is as a series of "pie slices". I've also got a planet configuration import/export to file mod just about wrapped up. After that, I intend to enable one click sharing to my "Planetary Repository", which is just a few lines of node on a linode, that way everybody has access to all of the most popular planets. Double Edit: I forgot to mention that localization will also be made much, much easier with a system like this. Which seems to be crucial if we want to get the whole world planetary annihilating :mrgreen:
Anyway UI will always be just UI and Most of UI code in the world have crap quality. I can't say I love crap code, but it's works and if modding system will be too only few javascript maniacs will use it. If you post some detailed explanation of your idea I'll happy to read it, but for now I don't see any reason to dive into javascript internals only to argue with you. PS: I'll read updated post now.
Great examples and I like mods you made, but It's seems like you actually can do that without any modding system at all. Also I understand why you don't want to use something what Uber made in latest update. Unfortunately you still not explained how you see modding system should work and how exactly it's will handle main modding problems... :geek:
I really need to get back to work... but guess I'll waste a bit more time. I think for this conversation to go somewhere constructive we need to start with requirements. Then we can work out whether one technology or another is suitable for it. These requirements are very rough btw.. 1. Mods should have a central place to enable/disable them 2. Mods should be able to work together, if two different mods want markup in the same place in the same file the modding system must be able to handle this. 3. Mod versions should be handled, preferably automatically. Like a page that says "A new version is available, click here to download" I can't think of anything else of the top of my head but there must be a lot more..