1) Moving your character around in an empty stage should be fun.
I played a 2D platformer similar to Megaman/Metroid, titled “Crush”, maybe? Cool art, great intro. Air combat was super frustrating though, since attacking in midair stops your forward velocity immediately, and any input post-attack doesn’t register until after you’re grounded.
2) Tutorials shouldn’t be optional.
The game ought to teach you through simple, digestible levels. Super Meat Boy. Megaman. Portal. Either you do it this way, or you don’t do it. This applies mostly to single player, linear games, and even more so to complicated games with many controls, and a nontrivial interface.
3) Local Multiplayer games are super fun and easy to develop!
The art, the backstory, and the music all lose focus when you’ve got human interaction driving the gameplay. It’s also a lot easier when you don’t have to worry about networking, but I guess I’ll have to tackle that at some point. Slash and Dash, a capture the flag featuring ninjas, was particularly good. This other one had four people each controlling a dude’s direction (up down left right), trying to navigate obstacles and get to a location.
Developer Notes:
A couple teams, including Supergiant Games, use MonoGame instead of Unity. MonoGame is open source, but I’d like to know some more concrete advantages. It does play much better with Visual Studio though. The biggest reason to use Unity over MonoGame is needing to build a custom level editor, but that actually shouldn’t be too bad.