Client side modding (UI / UX)
Posted: Mon Oct 24, 2016 11:49 am
G'day. Originally I posted this to the #factorio-modding IRC channel, but I decided to also write it up here for discussion. I'm curious about people's opinions on this, as well as how the developers view it. So… here goes:
I'm new to Factorio - I started playing with 0.13 on Steam. I'm a front-end / UX developer by trade. I've been exploring the modding API for the game mostly to have some fun with it (hey, I like programming), but also to address some of the issues I feel there currently are with the game's combat (loving the game on the whole, though).
I've explored the forums a little (mostly using search and Google) to get the answers to some questions I had about modding — things like the custom input data types, which aren't really documented outside a thread I found here.
It seems that at the moment the mods are heavily server-focused; they all run on the part of the game that controls game state and in the case of multiplayer I would guess can make modifications server side only. This isn't super clear from the API's and such, but after browsing the forums and reading some dev responses that seems to be the approach.
There are quite a few modding options that could benefit from client-only changes — generally around user experience (UX). This is mostly for front-end stuff (I'm a front-end developer by trade), but I think the the ability to read client data and make client changes are important. These don't have to directly affect the game state, but can generally be used to smooth the user experience and determine which events we want the server to process.
For example, getting and interacting with the mouse (mostly using the cursor position, which seems to exist as a setter but not a getter in the LUA API). Or interrupting an event before it gets sent to the server (say, you want to override base game behaviour or overload an input key). Implementing new functionality outside the standard paradigm of just creating new objects and assets.
In summary — I'd like some freedom to smooth over certain UX elements, mostly so I can get more friends on board with the game (already dragged a couple in). Things like top-down mouse targeting for combat. Currently though these kind of client-side improvements don't seem to be possible (though if they are *please* point me in the direction of the correct API!).
Anyway, thanks for reading :-).
I'm new to Factorio - I started playing with 0.13 on Steam. I'm a front-end / UX developer by trade. I've been exploring the modding API for the game mostly to have some fun with it (hey, I like programming), but also to address some of the issues I feel there currently are with the game's combat (loving the game on the whole, though).
I've explored the forums a little (mostly using search and Google) to get the answers to some questions I had about modding — things like the custom input data types, which aren't really documented outside a thread I found here.
It seems that at the moment the mods are heavily server-focused; they all run on the part of the game that controls game state and in the case of multiplayer I would guess can make modifications server side only. This isn't super clear from the API's and such, but after browsing the forums and reading some dev responses that seems to be the approach.
There are quite a few modding options that could benefit from client-only changes — generally around user experience (UX). This is mostly for front-end stuff (I'm a front-end developer by trade), but I think the the ability to read client data and make client changes are important. These don't have to directly affect the game state, but can generally be used to smooth the user experience and determine which events we want the server to process.
For example, getting and interacting with the mouse (mostly using the cursor position, which seems to exist as a setter but not a getter in the LUA API). Or interrupting an event before it gets sent to the server (say, you want to override base game behaviour or overload an input key). Implementing new functionality outside the standard paradigm of just creating new objects and assets.
In summary — I'd like some freedom to smooth over certain UX elements, mostly so I can get more friends on board with the game (already dragged a couple in). Things like top-down mouse targeting for combat. Currently though these kind of client-side improvements don't seem to be possible (though if they are *please* point me in the direction of the correct API!).
Anyway, thanks for reading :-).