Re: Version 0.17.23
Posted: Fri Mar 29, 2019 8:32 pm
not 75k lines in C, but from your link:keyboardhack wrote: ↑Fri Mar 29, 2019 5:18 pmAccording to https://www.reddit.com/r/factorio/comme ... s/dhr96ok/ they have 75k lines of code written in C. They would probably have to rewrite a large chunk of that to make it compatible with javascript. It would essentially be exceedingly laborious to support another language. Then after implementing it you have to support the API for two languages which probably isn't trivial.
secondly, the C++ code would be hardly rewritten, as it would still need to support Lua, but rather probably some parsing library would have to be included and conditions would have to be added to execute either one or the other parser based on current mod's language. however that's mostly speculation, i have no idea how is that Lua code actually implemented.Currently arount 330k lines of C++ and 75k lines of Lua.
pretty sure you overestimate how fast Lua is compared to JS, and how much time do the mods' scripts take while a game is running.Two wrote: ↑Fri Mar 29, 2019 7:00 pmJavaScript is an inherently very slow language. So if you would write Factorio mods in JavaScript, you would inevitably slow down the game much more than if you would have written the same mod in Lua.
Would anyone run a mod that by design would slow down the game? I think not.
when will people learn to not have just one save file (esp. while testing experimental versions), and to not overwrite the one they care about when they see something bad had happened? sigh...
Once again, I am the example.
good, it is not worth the hastle just yet, so many broken mods.
Only if you use steam. I personally do not. (Well I do, just not for Factorio.)5thHorseman wrote: ↑Fri Mar 29, 2019 8:32 pmCan you not set Steam directly to 0.17.22, or download 0.17.22 from the website, and then load your last save from there?
and this
DragonMaus wrote: ↑Fri Mar 29, 2019 11:03 pmIt will never cease to boggle my mind that people rely upon the auto-saves without creating named saves.
Normal JavaScript is extremely slow compared - V8 has JIT compilation and a decade of optimization efforts put into it by Google and open source via Chromium. And Google has it's own even faster version called Blink that Chrome actually uses and you can't get your hands on it as far as I know. Mozila engine is not a slouch, but it is slower.BlueTemplar wrote: ↑Fri Mar 29, 2019 8:25 pmWait, but why are you talking about V8 ?psihius wrote: ↑Fri Mar 29, 2019 5:55 pmSimple - because while the engine for it is pretty good - everything around it is half-assed, poorly supported, complete lack of any documentation and lack of libraries, bindings and in general instrumentation to work for it. Embedded Lua engine is dead simple and very fast. It has docs, it has a shitload of documentation, library bindings (it has been used past 20 or so years and has built up the ecosystem) and a small team can tackle it. Unlike V8.Gergely wrote: ↑Fri Mar 29, 2019 5:07 pmOh god why don't you just enable modding in another language next to lua? This is getting ridiculous.FactorioBot wrote: ↑Fri Mar 29, 2019 4:57 pmModding
- Non-upgrade technologies are now considered to be level 1; previously they were level 0.
Every mod is running in a separate lua instance. How hard would it be to run lua and ... say Javascript instances next to each other?
V8 was never targeted as an embedded scripting language and to be extended. And although you can use it like that, it is a way bigger project than doing the same with Lua. Embedded Lua was designed specifically for that purpose.
Also, when Factorio was started, V8 JS engine was in way worse state and NodeJS I believe if existed, nobody really knew about it yet. 6-7 years ago predates the whole JavaScript craze.
Also, JavaScript as a language is not really as easy as people think - understanding the whole prototyping approach and using it properly is, dare I say, difficult even for good developers (I rest my case cause I'm 14 years in web dev and I have written shitloads of pretty complex JS in my career). Thing is - a dedicated person can learn Lua and write a simple mod in a few evenings easily - we have a non-dev guy in my community doing just that, doing basically on-par work with some help from us. With JS - he would not be able to do that easily at all. The language and concepts are way out of his league unless he decides to learn programming.
https://www.reddit.com/r/javascript/com ... avascript/
https://www.quora.com/Why-is-Lua-not-mo ... g-language
Wouldn't the equivalent to Factorio's Lua be the normal JavaScript, rather than Chom/ium's engine ?
Also, what about other JavaScript engines, like Gecko ? (I would kind of expect Mozilla to have good documentation, am I wrong ?)
I just logged into the website to be 100% sure and yes, 0.17.22 (and all versions before) is available.bobingabout wrote: ↑Fri Mar 29, 2019 11:46 pmOnly if you use steam. I personally do not. (Well I do, just not for Factorio.)5thHorseman wrote: ↑Fri Mar 29, 2019 8:32 pmCan you not set Steam directly to 0.17.22, or download 0.17.22 from the website, and then load your last save from there?
I bought it from... what was it, I want to say Kickstarter, but I'm fairly sure that's not it.5thHorseman wrote: ↑Sat Mar 30, 2019 12:52 amI just logged into the website to be 100% sure and yes, 0.17.22 (and all versions before) is available.bobingabout wrote: ↑Fri Mar 29, 2019 11:46 pmOnly if you use steam. I personally do not. (Well I do, just not for Factorio.)5thHorseman wrote: ↑Fri Mar 29, 2019 8:32 pmCan you not set Steam directly to 0.17.22, or download 0.17.22 from the website, and then load your last save from there?
Or did you not buy it from the website either? I know GoG for example is terrible about updates. I don't buy from them anymore because of it.
I normally use the .zip download, and create a new zip file before I let the game update (and before I update any mods). That makes it easy to roll back to a known good version/state, if a new version of the game or a mod causes problems.bobingabout wrote: ↑Sat Mar 30, 2019 1:54 amthe problem is that it's easy to upgrade to 0.17.23, but to downgrade again you'd need to redownload the entire game.
emphasis is mine. Given the effort wube put into this project, it is more than safe to assume they do NOT change for the sake of change. It might not be obvious and could be "only" to bury sins of the past. Which is a more than good enough reason to me - I wish I could do that with some of the things I did at work (datacentre infrastructure).This is the cutting edge "experimental" version. There might be some nasty bugs. Use on your own risk.
I did have 4 saves, 1 save and 3 autosave..Shingen wrote: ↑Fri Mar 29, 2019 8:38 pmnot 75k lines in C, but from your link:keyboardhack wrote: ↑Fri Mar 29, 2019 5:18 pmAccording to https://www.reddit.com/r/factorio/comme ... s/dhr96ok/ they have 75k lines of code written in C. They would probably have to rewrite a large chunk of that to make it compatible with javascript. It would essentially be exceedingly laborious to support another language. Then after implementing it you have to support the API for two languages which probably isn't trivial.secondly, the C++ code would be hardly rewritten, as it would still need to support Lua, but rather probably some parsing library would have to be included and conditions would have to be added to execute either one or the other parser based on current mod's language. however that's mostly speculation, i have no idea how is that Lua code actually implemented.Currently arount 330k lines of C++ and 75k lines of Lua.
pretty sure you overestimate how fast Lua is compared to JS, and how much time do the mods' scripts take while a game is running.Two wrote: ↑Fri Mar 29, 2019 7:00 pmJavaScript is an inherently very slow language. So if you would write Factorio mods in JavaScript, you would inevitably slow down the game much more than if you would have written the same mod in Lua.
Would anyone run a mod that by design would slow down the game? I think not.
when will people learn to not have just one save file (esp. while testing experimental versions), and to not overwrite the one they care about when they see something bad had happened? sigh...
And this is why I'm waiting for the first stable to play mods in 0.17.Light wrote: ↑Sat Mar 30, 2019 6:27 amTime to lock the client into .22 for several weeks.
Hopefully these changes are actually improving something and aren't breaking mods for little to no benefit. Having to re-update over a dozen unsupported mods every few patches sure isn't how I'd want to spend my evening.
They curate all their games and updates manually (at least partially). Expecting for an update to be available in, say, less than a week after a developer uploads it would be unreasonable.5thHorseman wrote: ↑Sat Mar 30, 2019 12:52 amI know GoG for example is terrible about updates. I don't buy from them anymore because of it.
I talked to the devs.
True, some tech have bad naming convention, where a bunch of mods (including mine) have to work around them. Now suddenly enforce a strict contiguous check, making all these mods fail to load.clampi wrote: ↑Fri Mar 29, 2019 8:15 pmThe worst part of this update is that some of the broken mods are broken because base mod naming is not contiguous...cough "energy-shield-equipment" logically followed by "energy-shield-mk2-equipment", "battery-equipment" logically followed by "battery-mk2-equipment". Yea, would have been nice to let modders know beforehand and leave time for feedback.