Often we (programmers) find ourselves struggling to maintain our own style throughout a project from start to finish. It's even harder to create dynamic and modular code that isn't a complete mess.
Lately I've began designing/prototyping a new project and wanted to see how difficult it would be to implement a few features I've previously never explored.
I found using macros (constants) helps to give projects an all around fix for simple adjustments. For example if the button ID for pressing down on your keyboard is 5 and you change keyboard_down to equal 7 later on you don't have to go and replace a bunch of code.
Instead of having to pull from text files or some other complicated system I decided to write the easiest solution I could think of. A single script translate_string() handles everything. I stored the English text in a DS Map and when you call translate_string() it references the Spanish (or whatever language) DS Map using the English text as the key. This allows me to again keep my code simple and modular.
Game Maker Studio is an amazing IDE with an incredible list of platforms you can build for. Due to this I am aiming for as many platforms as possible with this project (or the next one). The only key difference between most OS's and Consoles (when it comes to Game Maker) is file handling . The location of saved game data varies as well as the functions you are allowed to use. It is very important to read up on this before writing out a full project or implementing platform specific features like Steam cloud saving.