Inside3D!
     

Exposing the Controls to the Client
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Inside3d Forums Forum Index -> Engine Programming
View previous topic :: View next topic  
Author Message
Baker



Joined: 14 Mar 2006
Posts: 1538

PostPosted: Mon Mar 08, 2010 1:24 am    Post subject: Exposing the Controls to the Client Reply with quote

I hate how you have to read a readme to figure out how to play a mod. You don't know that impulse xyz exists or what it does or how to do this or that.

Any ideas on theoretical ideas how this problem could be overcome?

The main way this is addressed in the NetQuake community at QuakeOne.com is that every server mod is expected to have a "commands" command that lists the binds and important info.

But that's just communicating the info.

When you go to Options -> Customize Controls it isn't like Quake offers to bind mod specific keys.

I still can't remember what "button2" and "button3" and so forth does in DarkPlaces, but maybe that would be one option so at least there is a standardized set of expected controls (even if what they do is unknown).

I think that at least one possible "design" solution would be to make sure that all available guns or items are the next weapon/previous weapon cycle to at least expose them to the user better.

Has anyone ever thought of this problem and though of interesting ways to handle it?

/Although I suppose a way to actually use the "Help" in Quake would be valuable.
_________________
Tomorrow Never Dies. I feel this Tomorrow knocking on the door ...
Back to top
View user's profile Send private message
frag.machine



Joined: 25 Nov 2006
Posts: 728

PostPosted: Mon Mar 08, 2010 1:56 am    Post subject: Reply with quote

Replacing the default help pics is always a good solution. Hellsmash did this way. Too bad you have a fixed number of pics though.
_________________
frag.machine - Q2K4 Project
http://fragmachine.quakedev.com/
Back to top
View user's profile Send private message Visit poster's website
Baker



Joined: 14 Mar 2006
Posts: 1538

PostPosted: Mon Mar 08, 2010 2:33 am    Post subject: Reply with quote

frag.machine wrote:
Replacing the default help pics is always a good solution. Hellsmash did this way. Too bad you have a fixed number of pics though.


I agree.

But those are kind of hard to make (not for me, for other people ... I bet fimg2 handles this well).

To make a compatible lmp file, the size is rather small not (think WinQuake 320 x 200!)

Sigh ... part of this is making me think of the ezQuake xml support (which I haven't thought about in a while).

Base Quake compatibility only supports 6 lmp files.

Still ... this doesn't touch the key binds issue.
_________________
Tomorrow Never Dies. I feel this Tomorrow knocking on the door ...
Back to top
View user's profile Send private message
metlslime



Joined: 05 Feb 2008
Posts: 177

PostPosted: Mon Mar 08, 2010 5:58 am    Post subject: Reply with quote

replace the help pics

plus, when the player first spawns in a map the mod could centerprint something simple like "press F1 or type help in the console for a user guide" or even centerprint a quick start summary and then "for more details, press F1 or type help in the console"

(note that some people don't have F1 bound to "help")
Back to top
View user's profile Send private message
goldenboy



Joined: 05 Sep 2008
Posts: 310
Location: Kiel

PostPosted: Mon Mar 08, 2010 6:27 am    Post subject: Reply with quote

Interesting problem. You're right, having to read all the way through a text file is suboptimal when all you want is play. I haven't learned, for example, the DOOM commands to skip level etc to this day, because I simply only fire up Doom to kill monsters when I'm tired or drunk. In that state, I don't read readmes.

Anyway, for starters, I think any mod should keep the number of impulses and aliases as low as possible. Two bindings are easier to get across than 20. This ties into the mod's design. When you have lots of alternate fire modes, additional menus etc., it's likely that many players will only bind those things they really, really need.

For example I don't bind the more exotic things in Malice. I have reload bound to the same key as in all other games, because it is vital, but I don't think I know what all the other binds are and I don't have the urge to find out. I seem to get by without them.

A game should be reasonably simple and require a minimum of new controls to memorize. In RMQ, the two controls that you want to learn are the impulse for the new weapon, and how you activate the hook.

Think about that for a moment. RMQ is a huge contraption of a mod. Still, you only need to know two commands (three if you want to spawn bots). Two of them are super-easy to guess, "addbot" and "+hook". The weapon is in the next/previous progression, so knowing the impulse is optional. If you ask on the server: "How do I use the hook" or "how do I add bots", you're very likely to get a prompt answer. In this case, the controls are transferred by word of mouth.

It's not unlike Warsow. Warsow uses a "special key" that allows you to do different things depending on the situation. Exactly what it does is a matter of experimentation to find out. I never read Warsow's readme; I found out about the "special key" from the menu. I would also have found it by experimenting, because I think it is pre-bound by default to something like Shift.

Ideally, almost all game mechanics, and controls (such as pressing Jump to disengage the grapple, or the "special key") should be learned by experimentation in the game.

One problem with Quake mods is that players hate it when mods rebind their keys. So basically Quake players *insist* on doing their binds themselves. This is unfortunate - with default keybindings, commands can be found out by experimenting.

It's more difficult with things like altfire. To this day, when I know some game is supposed to have altfire, the first thing I try is pressing the weapon button twice. Alt- and trifire are the things I'm most unwilling to learn, along with custom gear.

Getting these into the menu - which seems to be what you're driving at - would probably require the engine to parse a mod-supplied config file and create a dynamic menu.
_________________
ReMakeQuake
The Realm of Blog Magic
Back to top
View user's profile Send private message
Downsider



Joined: 16 Sep 2008
Posts: 478

PostPosted: Mon Mar 08, 2010 11:28 am    Post subject: Reply with quote

You can chuck a tutorial section into the start map..
Back to top
View user's profile Send private message
Spike



Joined: 05 Nov 2004
Posts: 944
Location: UK

PostPosted: Mon Mar 08, 2010 11:54 am    Post subject: Reply with quote

most qw mods spam the client with stuffcmded aliases.
the user can then type aliaslist or some such to see them.

+buttonX is resistant to packetloss, but it doesn't document the fact that the mod actually uses it.
_________________
What's a signature?
Back to top
View user's profile Send private message Visit poster's website
Baker



Joined: 14 Mar 2006
Posts: 1538

PostPosted: Mon Mar 08, 2010 11:55 am    Post subject: Reply with quote

goldenboy wrote:
One problem with Quake mods is that players hate it when mods rebind their keys.


It's true.

Well ... I started thinking about this more with Hellsmash ... that's a ton of impulses. Too many to memorize.

Weapons in mods generally can be cycled through using impulse 10/12.

I'd like to figure out some scheme for standardized actions that isn't a major pain and rather friendly to QuakeC.

I mean Downsider's tutorial map and the help.lmp ideas are ok, but very suboptimal for someone connecting to a server.

For instance, what if the Quake Injector included mod support (and there is no reason it couldn't be built into an engine ... libcurl is easy) ...

Well ... I guess consoles deal with this issue by a very finite number of buttons ...

Spike wrote:
most qw mods spam the client with stuffcmded aliases.
the user can then type aliaslist or some such to see them.

+buttonX is resistant to packetloss, but it doesn't document the fact that the mod actually uses it.


So does NetQuake, actually (at least the modern forms of the ones that get hosted on permanent servers). Although NQ clients don't clear the alisases on each map load.
_________________
Tomorrow Never Dies. I feel this Tomorrow knocking on the door ...
Back to top
View user's profile Send private message
goldenboy



Joined: 05 Sep 2008
Posts: 310
Location: Kiel

PostPosted: Mon Mar 08, 2010 7:33 pm    Post subject: Reply with quote

Yeah, consoles are a good example for learning things by experimentation. Console buttons' functions are more or less standardized, so new games are very easy to learn by just mashing buttons.

I have been very tempted to pre-bind RMQ's cauteriser to the "9" key, but fear of getting lynched has kept me from doing that :-/

Maybe it is possible to search the progs.dat for any aliases and impulses that aren't in vanilla Quake, and just put them in the keybindings menu (perhaps in a "mod" subsection). Then at least the player would see which commands are available.

The problem with the Quake injector, for me, is that I'm a little old fashioned and don't like extra software to play games. I only play < 10 custom maps anyway, and I usually install new ones at a slow rate. I'm also used to doing things by hand.

But for the QI's target audience, sure, it might work. I was thinking about a solution that only involves the mod and the engine, though. That would be a lot more elegant and more down my alley.
_________________
ReMakeQuake
The Realm of Blog Magic
Back to top
View user's profile Send private message
Baker



Joined: 14 Mar 2006
Posts: 1538

PostPosted: Mon Mar 08, 2010 8:33 pm    Post subject: Reply with quote

It seems like a simple solution wants to reveal itself here.

I just can't quite see it.
_________________
Tomorrow Never Dies. I feel this Tomorrow knocking on the door ...
Back to top
View user's profile Send private message
Spirit



Joined: 20 Nov 2004
Posts: 476

PostPosted: Mon Mar 08, 2010 8:42 pm    Post subject: Reply with quote

Heh, yes. Our precious key configurations. I had the idea to bruteforce copying config.cfg and autoexec.cfg to a newly installed mod directory. http://github.com/hrehfeld/QuakeInjector/issuesearch?state=open&q=config#issue/32

I am using RDFG for movement so I constantly have rewrite configs to suit my needs. Very annoying. A standard for the engine to know what new commands are there and then display those in the key config menu would have been great.
_________________
Quake Maps
Back to top
View user's profile Send private message Visit poster's website
goldenboy



Joined: 05 Sep 2008
Posts: 310
Location: Kiel

PostPosted: Mon Mar 08, 2010 9:00 pm    Post subject: Reply with quote

The thing is that this also needs to work with old mods, so any special files added won't work there - have to use the progs.dat probably.


Bruteforce copying of config files into mod directories via QuakeInjector - nooo. Some of that stuff that comes with mods is useful, you know.

Although some engine overwrote our mod-supplied autoexec.cfg Sad

Engines should never save anything in a mod's directory.
_________________
ReMakeQuake
The Realm of Blog Magic
Back to top
View user's profile Send private message
Teiman



Joined: 03 Jun 2007
Posts: 309

PostPosted: Mon Mar 08, 2010 9:04 pm    Post subject: Reply with quote

Put the player on a room where the controls are on the walls as a texture Smile

Soo lame, but sooo fun Smile
Back to top
View user's profile Send private message
gnounc



Joined: 06 Apr 2009
Posts: 120

PostPosted: Wed Mar 10, 2010 7:04 am    Post subject: Special menu? Reply with quote

DukePlus mod for duke3d has a mod specific menu that it asks you to bind to a key over a centerprint.

In that menu is all of the mod specific binds.

I really liked that, especially since it didnt trample over the binds
I already had.
Back to top
View user's profile Send private message
Baker



Joined: 14 Mar 2006
Posts: 1538

PostPosted: Wed Mar 10, 2010 8:58 am    Post subject: Re: Special menu? Reply with quote

gnounc wrote:
DukePlus mod for duke3d has a mod specific menu that it asks you to bind to a key over a centerprint.


Hmmmmm ....

I've always liked FitzQuake's timeout dialog.

/Is thinking more ...

(Thanks for the info ... this really might be on to something ...)
_________________
Tomorrow Never Dies. I feel this Tomorrow knocking on the door ...
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Inside3d Forums Forum Index -> Engine Programming All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2004 phpBB Group