Thus, perhaps it's not that surprising that swapping out the chair I sit in has made such a difference. Two days ago, I sat in computer chair that allowed me (even compelled me) to slouch - to the point where I actually damaged the chair by leaning up against its adjustable lean-prevention bar too much. Now, I'm sitting in a simple rigid stacking chair that actively works to deny slouching - to the point where sitting up or slightly forward is more comfortable.
Suddenly, I'm actually scheduling out my days in advance - something I've rarely ever done at any point in my life. I'm not making a real big deal out of sticking to that schedule, as self-reproach actually spawns cognitive dissonance that leads to additional procrastination. Absolute rigidity to my schedule was unnecessarily, it seems, as it's remarkable what I'm capable of when I give myself some hours notice. It has catapulted me to get back into programming in Dream Maker.
To these ends, one thing I wanted to share today is that I've come full circle with my concept of an action queue.
- Originally, I developed my action queues with the idea that the user could schedule moves out in advance. (This was because I felt it was silly that, in many BYOND games, hammering your movement keys will grant you superhuman movement speeds.)
- Later, I came to realize that it would be better if actions had their own little data structure that would allow them to show up in the skin as unique actions depending on what the user is controlling.
- Now, I've come to realize that actions with their own built-in data structure is essentially what BYOND's built in verbs are.
(As anyone who has really come to know me would tell you, I do have a natural tendency to over-complicate things. Perhaps this will lead to some deep and compelling games if I ever finish one.)
About the only thing BYOND's verbs are missing is an icon. The advantage of having an icon is that it can be used more effectively in certain skin layouts (where the old info panel can look downright ugly). Also, it feels a lot more intuitive to the users to associate verbs by picture and word than by word alone.
I can associate a verb with an object that will have all the necessary graphics. However, if I'm going do to that, I wonder if it's really necessary to use verbs at all anymore?
Most of the verb functionality is isolated if you're accessing it through a proxy object. Also, an object with appropriate procs might be more secure and easier to use than looping through verb lists to make sure the user is seeing the right verbs objects at all times.
When I read your first bullet I was like "what? what are you making it schedule actions for? BYOND does that already. what kind of game is this? does it play slow or fast?" ...and then you lost me when you started talking about individual data structures.
I bet you're good at making really complex, powerful code with a vague or negligible purpose. :P