My current approach for "Nya's Yarn" (the new version of Nya Quest) in Game Maker is that i have a 'game' controller that does the AI and turns (all objects store a function they'll execute once the player does something and it decides what to do next time only once it's been executed and cleared.) The player is locked out of controls until everything has finished acting to maintain a robust turn structure :3
Map generation is done by scripts run in the room startup to save me needing a seperate object for it.
I also don't have any collision in the current version (I just store the map as a grid of numbers and whenever something tries to move to a square it checks that it's a 0 first and if it's not it'll react appropriately based on the ID number in that square
)
In Nya Quest, I didn't have that all setup so I just had a queue on the player object that the enemies would add their actions to and it would run through it and execute them all whenever the player acted. It's not quite as efficient because it basically adds the extra step of all the enemies accessing the player to store their flag on the queue, while the new method i botched together just queries them when the time comes. It also has potential problems of the player acting before something has time to add stuff to their queue, though I haven't seen this happen during any games of Nya Quest so far
As for game maker itself there should be a free version of studio on steam. I was trying that before I upgraded to the pro version for super cheap during a sale so there's no real major need to use 8.1 unless you want to :3
edit: to add to the list of tutorials that Jo's kindly linked, I recommend Derek Yu's posts too (he of spelunky fame :3 ) as it not only covers all the basics you'll need to make any kind of game in Game Maker, but also explains a few vital concepts like objects, inheritance and whatnot.
part 1 part 2part 3part 4Enjoy!