2010-05-04

Work on Hoshi

Been busy watching election stuff again. :oP
That'll all be over on Thursday.

Anyway, I'm having a minor crisis with control mechanisms.
Essentially I wanted things to be as simple as possible. In the old versions there were a singular set of keys: Z, X, right shift and enter (for left, right, thrust and fire respectively). These are generally not considered "nice" keys under todays standards (although personally I still think they work fantastically for pretty much any game when you use ' and / for up/down as well, but anyway), so there's another keyset that in the tech demo is configured as left and right cursor, Z and X (I think). The fire/thrust aren't ideal really, but good enough for the tech demo.

So, what's the problem exactly? Well, I have a left, right and enter key, and even a potential "back", but no up/down.
Because I want an options screen, I need a basic menu. A basic menu ideally needs an up/down and definitely needs clear keys.

Initially I just thought "oh, I'll add an up/down", but that could confuse matters when the user goes "what do up/down in the game?" The answer would be "nothing, they're purely for menu navigation"... Seems a little silly.

Next thought was "I could do a left/right menu with cool slanty text", which would work but involves coding up another UI element and drawing the text sideways which will all take time which I'm running out of.

So, I've decided on this:
Menu navigation will all be done through the cursor keys. Game play will have custom keys definable in the options.
Oh, also I'm adding basic joystick support.
On the main menu they'll be a notice in the top-left of the screen with pictures of cursor keys, enter, escape and a joystick to indicate that's how you navigate the menu. Heading to the options screen will let you redefine the in-game keys.

The tech demo actually has the ability to redefine the keys in its options file, but that's not a lot of use unless you know the OpenTK keycodes. There's a few other options I forgot to mention that I'll go through now:
If you open the file that is in AppData (C:\Users\\AppData\Local on Vista/Win7, C:\Documents and Settings\\Application Data on XP I think) then you can change these options.

First off is 'fullscreen'. Changing this to 'true' will attempt a fullscreen mode.
Next you have an X and Y resolution, changing these will do the obvious.
Arenasize changes the size of the arena. Making it very, very small is untested, I don't suggest doing so. Making it very large will just mean it takes longer to catch up with the enemy ships. Again this is untested. The radars should still work, but again, untested. :oD
StarsInTheSky and Layers changes the number of stars on each of the parallax star layers and obviously the number of those layers.
StarSize is a value passed directly to OpenGL to change the size of points. I've not stuck to this everywhere in the code so changing it might not make a difference. Large values will look silly, 1 will make the stars hard to see and anything smaller than 1 will default to 1.
UseKeySet determines which set of keys to use. Currently 0 is the standard cursors with Z and X, 1 is the Z/X/enter/shift layout I mentioned previously that I prefer. 2 will default to the cursors with Z and X again and will become the 'custom' key set when implemented.
Once joystick support is implemented, this value will also support -1 for the joystick.
Back and pause will always be Escape and 'P'... Pause works but has a bug in that you can still rotate and fire in the tech demo.

No comments:

Post a Comment