New account registration is temporarily disabled.
0 reviews
  • Add Review
  • Subscribe
  • Nominate
  • Submit Media
  • RSS

Progress Report (11/26)

  • Pasty
  • 11/27/2013 09:23 AM
  • 938 views
Hey, y'all. (It truly is "y'all", now, isn't it?)

The majority of this week's work was spent on getting the Gameplay Verbs interface up and running. This is an immense task that includes the implementation of a few subcomponents that aren't small by any means.



First to go in was a long overdue means to pop up a virtual keyboard in order to pick a keyboard key. This is necessary because not all user keyboards have a complete keyset - a lot of laptops are missing number pads and have weird OEM configurations, so they need a standardized way to pick a key. In the instance of the Gameplay Verb interface, this is the way the user picks the default keyboard key of a Verb.

The KeyboardSelector only shows a QWERTY layout at this time. The eventual goal here is to eliminate player frustration resulting from misconfigured default controls. To that end, AZERTY, QWERTZ, and Dvorak layouts are going to be present in the final version, possibly with a way to see what an overall keyboard layout looks like across different keyboard layouts. (Remember, kids, WASD is not acceptable on an AZERTY keyboard!)



After that, I laid out the Gameplay Verb interface. As follows from last week, a Verb will be broken down into its three component parts: the Verb, the Action, and the Control Set. All Gameplay Verbs are checked globally, and differentiation based on gameplay state is handled in the Verb script. There are a few configurable settings here.

Type: there are two types of Verbs - Base Verbs and Composite Verbs.

  • Base Verbs are normal verbs ("Move Up", etc.) that take one key or button as input.
  • Composite Verbs are verbs that "build on" Base Verbs and will provide an easy way to define combo keys. Each Composite Verb can accept up to three Base Verbs as input.


When Gameplay Verbs are processed, Composite Verbs are processed before Base Verbs.

Method: this allows the user to specify a Press, Double-Press, Release, or Hold to trigger a verb.

Verb Script: this is the Event Framework script that the verb links to. These are run in Auto-Serial mode, so slowdown will ensue if the script gets too long. Keep in mind that generally, Gameplay Verb scripts do not need to be very long to do their job.

Note: there is no way at this time to define more than one button or key for a Verb. Definition of multiple keys that do the same thing will require duplication in the Verb interface. For instance, define three entries for Up that link to Up Arrow, W, and NumPad8 and make them share the same verb script.



Finally, I started work on the Event Framework. This is the IDE side of the ActionQueue, and it should look pretty familiar to people well-versed in RPG Maker. There are a few differences, though:

  • Event Commands aren't stored in tabbed pages: they're stored in a grouped ListView right beside the event script. This should make the user's life a little easier. Double-clicking on a list item will either add that command to the script, or it'll pop up a form asking for the necessary information.
  • Events in the script are stored as a tree instead of a list. This allows me to make the Event descriptions collapsible.


My goal here is to make the event commands as readable as possible. The user should be able to collapse and expand the entries at their whim and reorder them however they please. The user should not only be able to add and delete, but insert as well. Finally, it should be made very clear what sort of context the script is operating in (Global Events are much different from events on the map in that access to map entities cannot be assumed when operating from a global context).

Anyway, that's all for this week. I'm going to continue to work on this and hope that I'm able to push all the verb stuff through by the next update.

Until next week, take care.

Changelog:

Implemented KeyboardSelector: this is a control that presents a virtual keyboard for the user to select a keyboard key from. This is necessary because not all user keyboards have a complete keyset (a lot of laptops are missing number pads, for instance).
The KeyboardSelector supports only a QWERTY layout at this time. The goal is to have a selector with AZERTY, QWERTZ, and Dvorak layouts so that the user may define different keys for different keyboard layouts (so WASD would be ZQSD in AZERTY).
Implemented a ResourceBox control so that things that don't necessarily require a ComboBox can have selection capability (think of this like the "Ellipsis" selector control in the RM suite).
Added a KeyDictionary in order to easily go to and from the System.Windows.Forms.Keys enumeration to an easily readable key name stored in a string.
Added a superficial implementation of the Gameplay Verb interface:
About half of this works right now. The interface allows the user to define the name of the gameplay verb, a description, its localization setting, and a default keyboard key that invokes the verb.
Implemented the EventCommandControl. The EventCommandControl is the core of the Event Framework. It's like the "eventing" interface from RPG Maker, but with a few changes:
- Event Commands aren't stored in tabbed pages like in RM: they're stored in a list next to the event script. This should make event work easier for the user.
- Each event in the script consists of an Action, the human-readable command representing the Action, and an optional description of the Action.
- Events in the script are stored as a tree instead of a list. This allows me to make the Event descriptions *collapsible subitems* of the Event commands.
Partially implemented the GlobalEventsControl. This is a Database submenu analogous to "Common Events" in RPG Maker.

Posts

Pages: 1
looks like you're going at quite a clip right now! it's good to see. good luck!
Pages: 1