Like ashaman73 said... it's dependent on how well you know the system you are working with. But what's wrong with RPGmaker? It's just a tool.
Both systems do have their limitations.
GameMaker
Pro
- Best well known for it's 2D game design ability.
- It makes things stupendously easy to build a game in just a weekend.
- Tutorials are substantial enough to let you build anything.
- Incredibly friendly game logic.
Cons
- 3D ability is lacking - assuming it still has it.
- Back when I used to play with it... at the age of.... 7? which is about 13 years ago, it was incredibly slow. May have increased now.
- Overly simple.
Unity: My experience with it is very modern.
Pros
- One giant tool bag
- Graphics Pipeline is current to "AAA Standards"
- Extensible
- Choices on scripting languages
- Popular successful games have been made with it.
Cons
- Unity's default design is incredibly limited, which means you need to add features yourself.
- Unity's design makes it incredibly difficult to modify anything inside the engine, to add features.
- Unity's quirks often have to have a work around. Which leads you to a very messy and bug prone coding structure.
- C# DOES NOT MAKE A GOOD GAME LOGIC LANGUAGE. Via Interphases, Generics, Reflections, and a large plethora of features that overcomplicates simple tasks. Not to mention the way standard game logic is done.
-C# is great for very simple things as a scripting language. But making complex entities and items makes things needlessly difficult.
- Most major modifications that you make so your game can be made with unity will still need to be made into objects that attaches to something. (The team I am working with at the moment was forced into doing that horrific design)
- Interphase gets cluttered with complexity fast in large objects. Thousands of objects in your scene graph, property inspector is the most useful tool, but takes up a good chunk of your screen space to be readable.
- Masking system for physics is also a little quirky.
- Arbitrarily simple plugins made by thousands of users are sometimes over priced, and don't work very efficiently. Look up FPS on Unity, you will see this a lot when it's not hard to set this up. There -was- a tutorial for it too back in the older days of unity.
- Lack of a proper debugger. The console you get will only detect very basic things. Grammar errors, and standard Asserts from unity's base code. Other wise, you are on your own on finding logic errors, and bug crushing. Visual Studio won't save you either.
- primary design is with assuming that GameObjects are either static, or dynamically static, dynamically static and instanced, or "one of a kind" and never used again. In other words, very simple, or not expected to stay on screen for longer than 30 seconds. This makes things difficult for a lot of genres. Imagine trying to call one specific NPC out of an instanced GO. Unity doesn't know what you are trying to do without a physical selection in world, so it will grab anything that is on the top of it's stack.
That being said... take my opinions with a grain of salt. After all... they are only useful to how well you know them.
By my personal oppinions... I am very picky when it comes to editors. I personally prefer tool designs like Hammer (source engine), Unreal, and Creation Kit (bethesda). While the tools aren't easy to use. They do have a very clean structure that won't clutter as you work, and do a very good job at keeping code function away from design till it's needed.
Something that GameMaker excelled at when compared to unity.