I started learning OpenGL ES a few days ago (I'm exclusively an Android developer), and I stopped when I suddenly realized that there's no way the most complicated games on the App Store are done 100% by hand like this. There's way too much going on, even if you have a team of 5 people.
I did: http://www.youtube.com/watch?v=e1WB-G_0wHg
All by myself too There's a lot of other engines written by students computer science students in a semester that does more than mine.
I think I released an NDK build of that entire engine on OUYA's forums a while back. Porting it was a pain until I started to figure out the environment. Unity's great for those who want to get something up and running very quickly. It can be a pain, however, and I have my own hang-ups about it. Even though a lot of underlying functionality is there, Unity seems to pride itself on how extensible it is. You can write plugins/adaptors to native stuff you've written to the platform you like, and it's spawned quite a marketplace for it on Unity's website. That being said, there are a lot of things Unity doesn't do out-of-the-box, yet I'd expect:
-Splines: you can either write a script using a bunch of empty game objects which is heavy on memory, or download a plugin to do the same thing
-2D things for something like HUDs/2D games, etc (Toolkit 2D's and NGUI seem to be good at it)
-Slower code execution (you write 'scripts', and a virtual machine interprets it on-the-fly which is cool, but not as fast as native code)
-3rd party ilbraries: using others' libraries is a pain (such as ads, IAPs, etc), especially if they don't provide a plugin, you'd have to write your own native wrappers
EDIT: I forgot my reason.
I write all my stuff in OpenGL because then I have a more thorough understanding of how things are working than I would if I was using some one else's closed-source approach. I'm not saying Unity's going to write code slower than mine as it's built to run off of OpenGL ES for iOS/Android, but it's still possible depending on your needs. I released my stuff I've been working on open-source so others can learn, and play around with it. Also, keep in mind that larger companies are either writing them own stuff from scratch, or using an engine that provides source, albeit expensively. The Batman: Arkham games were built off of a modified engine of Unreal Engine 3 since they had the source available. That probably came at a pretty steep cost, however. If I ever want to get a job working for companies like that, or start my own company making big-budget games one day, I'd have to really know my stuff if my role is programming.
Now, for you, I think it's a matter of how much you enjoy programming, and how much skill you currently have to meet the project's requirements. Honestly though, I'd probably build something in Unity just to get a game out the door for the experience, then move to OpenGL once I'm comfortable with that. Looking back at it, that's actually what is did... lol
Edited by Vincent_M, 07 November 2013 - 09:47 PM.