The sound of button-mashing

I mentioned I was going to tackle either gamepad input or sound next, but I ended up just doing both. Now that’s not to say they’re finished, but they are functional. One of the mantras I’m developing by is “Keep it playable”. Since day one,¬†Yet More Tower Defense has been playable in some form or another. Now, it hasn’t always been fun, but it’s alway been working. I’m the only one working on it, so there isn’t any time lost for other team members when the game is broken, but I feel that it’s a worthwhile habit regardless (and it does wonders for motivation).

Nothing too earth-shattering or complicated in my input or sound managers, though there is one thing I’d like to point. Given that¬†Yet More Tower Defense is destined for XBLCG, and thus playable by the general populace, best practices are incredibly important. One of these is having intuitive controls that are consistent with what gamers might reasonably expect. That means that Start should pause, A should proceed through menus, B should take you back, etc. For this reason, I felt it was important to have an input manager that could handle things like:

gamepadInputMap.Add(InputAction.Accept, new Buttons[] { Buttons.A, Buttons.Start });

Two buttons mapping to one function. A quick google for input samples seems to come up with a lot of code that only handles a 1:1 mapping, often with a note saying, “this shouldn’t be a problem”. Instead, I’d prefer to easily remap my controls (without looking for a bunch of multipart conditional checks in an IsMenuCancel function) and have a one-to-many relationship for actions and buttons. I think it’s worth doing, if not for your sake in managing control bindings, then for your users who might expect ‘A’ and ‘Start’ to perform the same function in the menus.

And on that note, I’m getting to the point where Yet More Tower Defense is feature complete. It should be just some more content creation (graphics, sounds), polishing and lots of testing and balancing in the near future. I hope to be able to throw it into preliminary Playtest soon. That also means I’ll be able to playtest and review other games, as I’ll finally buy my Premium membership. Sweet.