We’ve established that the game will use the mouse and keyboard.
We’ve established that the mouse controls will use the “voodoo” method.
Now we need to establish how the keyboard controls will work. For starters, here are some drive-control schemes that i thought of.
[ul]tank drive
[list]“Qwas Control”
[list]uses these 4 keys to control the robot.
[list]Q = left drive forward
[li]W = right drive forward
[/li][li]A = left drive back
[/li][li]S = right drive back[/ul]
[/li][li]pros
[/li][ul]easy[/ul]
[li]cons
[/li][ul]left turns feel slightly awkward[/ul][/list]
[li]“Qwer” Control
[/li][ul]uses these 4 keys to control the robot:
[list]W = left drive forward
[li]E = right drive forward
[/li][li]Q = left drive back
[/li][li]R = right drive back[/ul]
[/li][li]the easiest way to think of this is that you have your 4 fingers on the qwer keys. to go forward, it’s your middle two fingers. to go back it’s your outer two. left is middle and pinky, right is pointer and ring.
[/li][li]pros
[/li][ul]fingers don’t have to change keys[/ul]
[li]cons
[/li][ul]not as easy as “Qwas”
[li]left turns feel more awkward than “Qwas”, but would feel less awkward over time[/ul][/list][/list]
[/li][li]car drive
[/li][ul]“Wasd Control”
[list]uses these 4 keys to control the robot:
[list]W = Forward
[li]S = Back
[/li][li]A = Left
[/li][li]D = Right[/ul]
[/li][li]pros
[/li][ul]easy[/ul]
[li]cons
[/li][ul]most robots are meant for tank drive[/ul][/list][/list][/list]
It could be configurable by robot. This would be as easy as a text file in the .zip called “controls.txt” which details the keymappings and drive style. For instance, line 1 would always be the drvie style and it could either be “tank” or “car”.
The key drives are very easy to program using CS (I’ve gotten that far in the docs… :D). Yeah!
My vote of “other” is: make it configurable. The game can have a global drive key config for different drive styles, and the actual robot zip tells the game what type to use.
i guess the question should really be “What should the default control scheme be?”
Ok, then I’d say: make it configurable…
Nah, I’ll go with qwas. Most robots are tank, and this is pretty simple… On second thought, looking over the keyboard, the number pad has nice straight columns of numbers. Maybe 4512? The main disadvantage to this is that most laptops don’t have keypads in this configuration.
a 7845 scheme was my first idea, but i deleted it before posting because i realized that it is awkward for right-handers (90% of the population) to use the num pad and mouse at the same time. and especially on a laptop.
It seems to me that how a robot is controlled is largely dependent on the robot, and hence properly a property of the robot. Think about it: each team is responsible for coming up with their own “operator control board”, and each is vastly different. Joysticks aren’t even required, and who’s to say the robot is even supposed to move. Maybe my robot moves by pushing buttons that each correspond to pre-defined movement patterns. Sure, most of the robots are probably going to be pretty similar in how they are controlled … and perhaps a specific robot’s control features can largely be inherited, but it seems customization is desirable. And it might even be a good idea to have a configuration file that reads in the keyboard mappings to different functions so you don’t have to recompile just to change that. (And remember that movement is just one of many different controls available to more sophisticated robots, and there are quite a few, although limited, inputs availalbe on the OI – and this game doesn’t have to preserve this restriction!)
But at this point any debate in this matter seems like wasted energy. Right now there isn’t any robot to control, or any system in which to have a robot. I’m starting to sound like a voice crying in the wilderness, but I’ll make what will perhaps be my last plea … it’s waaaaaay to early to even consider this. Really: key mapping is a very low priority item, something that can be changed easily and without much effort. First, decide those items on which the rest of the system depends so you don’t have to spend a bunch of energy changing what should have been finalized. Something like this can be discussed when you’re close to a release and want to polish it up for the general public – but AI design is even a higher priority than this, and it’s still waaaaay to early to discuss that (see my post in that thread for a similar rant).
Well, all is vanity saith the preacher, and it seems like this might just be in vain. But you can’t say I haven’t tried.
Can we use the arrow keys as an option? that leaves all the other keys for devices (i.e. a wasd or something conrol for analog devices (arms), perhaps?)
we would basically use wasd as the arrow keys, like Robot Arena does for the default controls.
Do you mean that both can be used? I think that it is intuitive that arrow keys are used for base driving, I dunno, personal preference I guess.
again, this is just default controls, they will be customizeable
numpad.
Home, PgUp, End, PgDn. Or: 7, 9, 1, 3.
(My head has yet to spin! )
home,pgup,pgdwn end…all in order top to down in one line in my laptop…lol. wont work too well i dont think. and no num pad in my laptop so i dont like that… i prefer qwas i think,
I sorta ment for those of us who do.
didn’t I say that?
sorry to bring back an old thread lol… but being a driver now lol, and our teams bot possibly being in the game… what is there for joystick recongnition, because i have 2 MS sidewinder Flight sticks around the house, and being able to use those, i’m hopeing the game is good enough to be somewhat of a training tool, which would be completely awsome to have!!! not to rush ahead or anything lol… btw i voted for the wrong one =P
but how will it work with omnidrive bots that NEED to use WASD to go front turn left back turn right type of thing?
p.s. astro - he means the arrow keys on the kep pads, not a joystick type with 2 fowards and 2 backs, because thats how most bots drive in RL. so ya lol. he wanted to use a omnidrive type base w/ a forward back and side to side
Just use one joystick and have it control it. Yes, I’m sure we’ll get joystick support in there someday. After we get a framework up using the keyboard, new input types shouldn’t be too hard (in theory) to add.
These are just defaults. If you have a driver installed, your HID (Human Input Device) will work.
Maybe the robot should supply default key maps?
if you mean by all tank drive bots automatically are defulat to drive with the 9,7,1,3 on the key pad, and Car/moni drive with 8,6,4,2 keypad… then yes =D
I think WASD should be the defualt, but eventualy they should be customizable for the robot and user.