I just made a quick example that makes use of the under-appreciated "Move Safely 2" object.
The player movement is basic, but a solid and easy foundation to build off I suppose. I also included an example of how you can use the Move Safely object to handle custom enemy movement/collisions, again very basic movement/"ai" - but easy to expand it.
I think Move Safely is fairly processor friendly.. at least in my tests, in the example attached there are 50 enemies walking around with no lag, at least on my PC. It even works pretty well on Android/iOS.. probably better than if you were to use fastloops and loop through each objects movement.. I haven't actually tested that assumption though.