Firehammer Input 2.0 is here!
Firehammer Input is your new way to manage your game's inputs. Under the hood it uses GML functions and so supports all the input devices currently supported in Gamemaker: Studio. But it then adds on easy to use custom input options, letting your game's players choose their own inputs with ease. They can choose keyboard keys, mouse buttons, or any inputs on XInput or DInput devices(as supported by GMS's gamepad functions). But you as the developer can code your game without worrying about what input is driving your game's actions, making your job much easier. Your objects respond to actions, without needing to know if the action is being driven by the space bar or some gamepad's shoulder buttons. It also includes a few helper scripts as well that are meant to make your input handling very simple. • Player System-You can have a number of game players only limited by the available input devices and what is feasible(for example you could have 4 players have inputs assigned to the keyboard but can they actually play that way?). Firehammer Input has no limit on the number of players, letting you make "party" style games if you wish. • Action Response-The system keeps track of a few different pieces of information on the inputs behind your actions, which include(but not only) raw data(such as how far the axis is tilted), and a timer for how long the actions input's are being held down for. • Configuration Program-Here you will implement the possible settings for Firehammer Input as well as create and test a default input scheme for your players. You can actually create more than one default scheme if you so desire. • Many other features I don't have space to mention here.
Support is provided via the Yoyogames forums(user "kburkhart84"), via e-mail "firstname.lastname@example.org," or on the Firehammer Games Discord server https://discord.gg/6VrZkP2
1.3 Deprecated any compatibility with GMS1(GMS2 is a few years old now) Fixed a few documentation mistakes, and corrected other issues to make the documentation better overall. Added "known issues" section to documentation Added lengthy "Tips for Best Results" section Added "quick and dirty" automatic configuration save/load. Added a few functions to check in bulk whether actions have inputs set(single action, player wide, and system wide) Added a few functions to check in bulk for "problems"(player wide and system wide). For now, "problems" consist of when actions have inputs assigned to them that are on gamepads that are not actually connected. This is reserved for if I find other "problems" that could be checked for. Added information about Firehammer Games Added customer support information, including discord server invite Name change to Firehammer Input Made sure the system cleans up after itself in case it wasn't shut down via the fhinputShutdown() function. This works as long as the game exits cleanly. Changed all references to "scripts" into "functions." The upcoming GML release(planned for 2020 Q1 but already missed) will have all scripts be turned into "script resources" and the script resources be able to contain multiple functions, with actual function declarations. Added release to itch.io - if you purchased on the Yoyogames marketplace, you can send me your confirmation e-mail and I'll be glad to send you an itch.io key if you have that preference.
2.0 - This is a total rewrite of the system, and is only compatible with GMS 2.3 and later. I took advantage of some of the new language features so there isn't really an easy way to make it backwards compatible. Note that not only did some functions change, but the way configuration is handled is also completely different. Therefore, I cannot recommend you upgrade in the middle of a project unless you are right at the beginning. · Complete code rewrite, taking advantage of some of the new features of GMS 2.3 and making it easier to add features down the road. · Rewrite of much of the documentation · Add on to documentation due to the added features. · Reworked the configuration of the system. Global options(such as allowing conflicts, number of player and actions, and others), are now set up as GML #macros. See the #Macro Settings section for details. · Added #macro for Debug Mode(and added sanity checks all over). With Debug Mode on, sanity checks will execute, making sure you don't do something wrong, like checking non-existent players and actions. If you turn it off, that code is optimized out as part of GMS's compile process, which is exactly what you want for performance and final releases. See the Debug Mode section for details. · Many more things I don't have space to write out here.