iamgreaser / iceball

Open-source rewrite of the VOXLAP version of Ace of Spades.
http://iceball.build
GNU General Public License v3.0
114 stars 32 forks source link

Make options that should really be client sided client sided. #95

Closed NotAFile closed 7 years ago

NotAFile commented 11 years ago

My work on Learning lua is getting along well (but not enough to make me think that lua is more than python with bad syntax), but I wanted to share what my (for my lua knowledge) huge goal is, and if you agree to adding it.

Many things, like the MODE_: FREEAIM, BORDERSHOW, the amount of particles emitted per source (is also a MODE in my local build), TILT_SLOWDOWN, DRUNKCAM etc. are currently server sided. But I don't think it makes sense that I join or dislike a certain server because they have a border, Freeaim, or no drunkmode.

I would suggest adding a folder too the clsave for config files for just this stuff: settings controlled by the server. A folder would be awesome so that every mod can write a single settings file to the clsave dir via the API.

I am aware that the modding part of it can be done with a bit of hacking, but it would have to be implemented so easily that modders bother doing it, and people don't have to change their habits if the server owner likes a wiered sprint key

iamgreaser commented 11 years ago

BORDER_SHOW should be clientside. It is a graphical aid which can slow stuff down horribly on some GPUs.

FREEAIM, DRUNKCAM should be serverside. They affect the way people aim. Plus, all the drunkcam stuff needs to be serverside just so that stuff can sync correctly.

TILT_SLOWDOWN and TILT_DOWN_NOCLIMB don't exist yet, but would ultimately be serverside - the former should slow you down if you're looking down or up, and the latter should stop you from autoclimbing if you're looking too far down.

I might add ALLOW_MINIMAP and ALLOW_MAP as serverside, but SHOW_MINIMAP would be clientside (I think Tank requested it).

dany-on-demand commented 11 years ago

Eh, I don't necessarily understand what you are suggesting?

iamgreaser commented 11 years ago

As for settings controlled by the server, there's a folder called pkg/base, and a file called common.lua. One server enforcing settings in a clsave/vol/ file might ruin it for someone joining another.

NotAFile commented 11 years ago

My main concern is actually not being able to change the key bindings of mods (I play using esdf not wasd, and thus can't play on servers with the dany0 sprint mod), although something like "user action" key bindings could be better, similar to ARMA, where there are 20 "user action" key bindings which you can change. (e.g. the sprint mod would not trigger on 'e' but on "user action 1")