I've seen some posts about how to set up GameMaker to be 64x64, but I don't think I've seen anyone post this important bit of code that makes the game ACTUALLY run at 64x64:
surface_resize(application_surface, 64, 64);
EDIT: Also do this to resize the GUI (thanks, Jack!)
display_set_gui_size( 64, 64 );
Put that in the Create event of your controller object or whatever you have in your project that runs at the beginning. It resizes the application surface to be 64x64.
If you don't do this, the game will look like 64x64 sure, but when you increase the window size, it'll allow objects to be placed between pixels, and rotating objects will look smooth, thus breaking the rules. So make sure to use this code!
Here's a comparison showing rotation + "smooth" camera (both 64x64 view, 320x320 port on screen):
1) App. surface has not been resized. You can see how camera movement and rotation is smooth. It's pretty, but breaks the rules:
2) App. surface has been resized. The game now correctly conforms to a 64x64 grid. It's jerky, but follows the rules: