I knew this would happen. Out of all of the new things that I have to learn to do for this snail game, the part that is the most tedious and difficult for me is the UI. Every part of the UI. You’d think that I’d be able to use web design skills from my previous life to make this at least a little intuitive, but nope - this blows. And it’s not just designing the thing that’s the problem, it’s finding the best way to implement it, too.
I’ve written about structuring a GUI system for my space game before and I’m using a similar method now - relying on trigger entities and a few dedicated GUI entities. Except this time I’m also throwing HTML forms into the mix, since clearly this isn’t complicated enough.
And it’s getting to the stage where it doesn’t seem like I’ll ever be able to work on the actual game mechanics again because for the rest of my days I will be sitting here creating trigger kinds, attemting to get stupid scroll bars to work, then redoing everything when I realize the layout is majorly screwed and unusable.
My GUI system is based on trigger entities. Trigger entities are anything clickable. No, I don’t know why I didn’t just call them buttons. Screw you, shut up. They’re triggers. Crap.
Ok so there are various “kinds” of triggers. Each trigger instance has a “kind”. For example, yesterday I was working on ‘upArrow’ and ‘downArrow’ trigger kinds. When a trigger with the kind of ‘downArrow’ is clicked, it calls
this.parentEntity.scrollDown(). Then you have to keep track of each trigger’s parentEntity (which is what spawned the trigger). This is important because when you want to close a menu you have to make sure all of the triggers are destroyed, and loop through each parentEntity (these are sometimes nested) to close it.
Aside: Every time I say something like “it’s hell”, I think about how stupid it is. Here I am sitting in a coffee shop enjoying my cheesecake and I think detangling a fricking UI system is “hell”. How pathetic is that? It’s not hell. It’s a piece of cake. I have running water.
Anyway, I just want to get the main UI elements done and usable. Except after the actual race list scrolling is done I’ll have to make the race triggers clickable to spawn race details…then create a way for people to actually enter their snails into a race…and then I can start running the actual race…and then it’s more GUI stuff as I attempt to find the best way to display the race results. Gah. The whole rest of this game is going to be about fricking buttons. I mean triggers.