So I'm kind of wanting to make a 2d game my main experience is with 3d so I'm not sure what engine to go with. Considering that I'm very familiar with unity it would be nice if i use that. I know unity is not the best 3d engine and it recently got the 2d features so im not sure whether to go with it or something else. I would like to make a pixel style game with mechanics kind of like terraria but in a different setting and no resource gathering. I'd also like it to be pretty decent by the average gamers standards. So can unity 2d deliver or should I go with another engine, if so which one?
Unity for 2d development
Since you specifically mentioned Unity, can I assume you want a C# solution? If so, there are two popular choices out there. One is Unity, and the other one is Monogame, which is not really an engine. There are others, but these two have the best documentations, tutorials, and largest communities out there. Other options are Paradox Engine, Duality Engine, and the C# forks of cocos2d, namely cocos2d-XNA and cocossharp.
Regarding your game, that largely depend on what you mean with 'deliver', If you mean 'can it be made with Unity?', then yes, I'm pretty sure Unity would deliver. In fact, I'd wager that even a very basic API like SlimDX would deliver.
Now, if you mean 'is it easy/practical enough to do it in Unity?' then it's a matter of perspective. For an example, Unity has a built-in 2D physics engine included, while Monogame is a simple framework, so you have to write your own, or use something like Farseer (but then again, AFAIK Terraria doesn't rely heavily on physics). The same goes for animation.