Awesome post, thanks. I love to read this. First block: What data are we talking about? Second block: Maybe add an option in the server so people who really want can run their own settings on their own server.
Aside question: do any of you have experience with SCADA? Because how you describe Sim + History + Client is exactly how a lot of industrial control software works.
Re the first block: There are a handful of fields like this. One benign example would be something like a factory's rolloff vectors for units that are produced (e.g. vehicles). It's completely benign data; not a lot of cheating potential for you to know client-side what your own factories' rolloff vectors are, right? And yet only the simulation needs it; the client never normally cares about this kind of thing, so we don't send it. That's the kind of stuff I'm talking about. Re the second block: Yeah we can probably make it configurable... as long as the server operators know what they're getting themselves into!
No familiarity with SCADA, but maybe somebody else here does. Actually this isn't too dissimilar from the way a lot of "dumb client" client/server game architectures work; this history system is just an additional layer of abstraction that isn't too big of a mental leap but has a lot of implementation implications, making it tricky to execute on. We go through great pains to play nicely with it.
#1 That indeed is rather weird data in that case. But I guess giving as much data as "legally" possible to mods is never a bit idea. #2 Never put hard limits into a game just based on the current tech. It's sad how people need to basically hack into TA to make it more awesome on current machines Thanks again, it's awesome to just talk to the devs like this. I should be used to it by now, but it's still awesome.
So i've been thinking about this lately. Are mods going to only be javascript based, or are you planning on using a scripting language like python? (Dont really like javascript )
Right now I'm only planning on JS, because it integrates so well with the rest of our systems. That said, I don't see why some third-party tools like pyjs or spidermonkey or something might not be applicable. I haven't tried those though so it's too early for me to make any claims about them (plus I'm not sure which if any of them will play nice with Coherent) but it's something I'll look into as things progress. In the meantime, expect JS, and if something else ends up being compatible, then hey, bonus.
Please don't turn this into a language wars thread. There are plenty of people who won't agree with that assessment. Languages have strengths and weaknesses; let's keep absolute statements of "better" or "worse" out of it. That said, in our case we have a significant investment in JS on both the server and the client, so it will at the very least remain the primary platform (if not specific language) for scripting.
See my only issue with using using javascript for all mods, is that Coherent first and foremost has been designed for ui purposes. If all mods have to be written in javascript, even very advanced ones which may change every single part of the game. It seems like a bad decision to me to take mods that wouldnt necessarily be classified as ui mods, and write them intertwined within the ui code.
I don't think that means they :have: to be intertwined within the UI code. Abusing SupCom as an example; the UI was written in Lua, the Sim was written in Lua. They weren't intertwined at all. Yes the UI was spaghetti code, but it never interfered with the Sim.
Yes you can design the code to be logically seperated from the ui code, but it still will be ran from something ment for ui's.
There's really no 'meant for' anything when it comes to code. If it does the job well, then it does the job well. Computers don't have moral reservations about how they run certain languages. The question is; is Javascript's performance good enough compared to other options, factoring in potential release delays and spending of backer funds if Uber decides to implement something else?
Im not saying JavaScript is ment for ui's, just look at Node.js. Im saying Coherent UI, as it name says, is ment for ui's. JavaScript performance isnt really even an issue.