I suppose I should have been a bit more specific with my post.
I should have mentioned that what I have in my mind is something like Final Fantasy Tactics like game. I also did have somewhat working system game on 2d, but due to some reasons, which I didn't think in the beginning of the project, I feel like going 3d would be easier way to do some stuffs. The whole map/level can almost be shown in one screen so I figured that there would not be that much optimization to be done, maybe just some simple if not shown in view, cull out stuff.
The model that I used for testing rendering has according to blender 383 verts, 410 faces, 746 triangles and only one texture. So I drew 120 models on the screen with animations and checked the fps. The cocos2dx seemed to be running almost at double the speed. So I had 270k vertices, 120 models with moving animations drawn on screen on my nexus5 at 28fps cocos2dx, 15 on libgdx. I doubt that there is need for this much drawing, but lets say something more realistic like 20 models ~1k triangles per piece and ground, so simple math would say that there is roughly 1/6th drawing needed to do, and with libgdx linear math would say that it barely can keep up on my android phone for 60fps, not to mention on less powerful than nexus 5... For some reason although libgdx said that it had roughly 250 draw calls which part comes from drawing text to screen for showing stats, it was showing almost 2.5k gl calls. I have no idea what made such things.
I checked the UE4 engine, and it seems to be 19 dollars per month + 5% out of 3k I would make. I honestly doubt I will make any money, and I would have gladly pay even 50 dollars for ue4 but having it as a 19€ monthly fee I probably am too cheap for paying at least for now.
As for not being a good programmer, I didn't mean that I do not know any programming at all. I have used C++/Java/C#/PHP and Lua before. I did do something that draws projects 3d vertex data in 2d by drawing simple lines. Although I never made any kind of culling or more advanced stuff like that like rasterization nor I didn't have to deal with conclave shapes nor nurbs, but I at least have some grasp on matrixes and how they work together and that you can multiply several matrixes together to get the end translation of a vertex. Still my knowledge on 3d programming is very slim, a bit knowledge here and there but not that much. As for general programming I have taken some courses on OOP, Algorithms and datastructures, some UI-design stuff and some things about databases, but I still do not think that I am a good programmer compared to people.
Full integration for engine, I mean not having to plug in yourself some sound system, or swapping around stuffs to make things work. For example for a long period of time, cocos2dx didnt even have working sound system for building windows desktop, unless you changed it yourself.
I have considered at least checking out, if I can make them work engines like Urho3d and Gameplay3d, something that I have completely missed. Although if they do not seem to be much faster than cocos2dx I probably will go with cocos2dx. Although testing unity3ds speed might not be a bad idea just for reference at least.
lactosel already covered your misunderstanding of the UE4 sub fees. Of course, every time you NEED an update (Because epic fixed an important bug for example), you will have to pay for an additional month to download the newest version. Still pretty cheap for a fully blown engine with source code.
As for programming, if you know the basics, you should be able to use Unity or UE4 for simple tasks. Some optimizations can be done with this engines without coding, there is an occlusion culling system built into Unity for example, though it is only accessible in Pro AFAIK. Stuff like combining meshes and creating atlases of your models can contribute A LOT to your games performance. These only need you to be somewhat comfortable with a 3D Program like blender. In Unity Pro, batching can take care of that, but it just makes your life easier by you not having to combine your level geometry yourself (and enabling you to disable batching for certain objects that you need to move around for example, while enabling it again later).
About model quality / optimization:
Your models sound rather low poly.... nothing to worry about. Even a 1k poly model is fine, as long as it has a single material, it should render quite fast. What you describe there with text rendering using so many draw calls (if I understood that correctly) could mean that your text objects are not batched, which means a huge overhead for the GUI. Most professional UI systems use batching to make sure the UI is rendered in a single draw call. IDK how the stock Unity GUI system solves this, but it has just been completly revamped for Unity 4.6, and at least in NGUI I use for my GUIs, all GUI objects are cleanly batched into very few draw calls.
About the 2D vs. 3D question:
3D Graphics have a higher overhead. Modelling something in 3D takes more time (6 sides to model instead of drawing a single side in 2D), and setting up stuff for animation can take quite some time, if its a skinned mesh.
On the other hand, 3D objects scale better compared to 2D sprites for complex or isometric scenes. When a sprite needs to be redrawn for multiple directions, or has very complex animations, the amount of frames to draw start to exponentially grow.
While in 3D, as soon as the model is rigged and ready for animation, there are many tools available nowadays to help with said animations (MoCap with Kinect for example), and you do not need to redraw a model for different animation frames.
But keep in mind, while low quality 3D graphics is not that hard to achieve and quite in reach even for lone wolves, steer clear of trying to achieve AAA quality.
About the engine integration:
Don't worry about that with Unity or UE4. Some of the stock systems might not be as good as some thirdparty systems, or the stock systems of other engines, but at least you will find quite capable stock systems integrated into both engines.
As for other engines, you need to check their "specs" so to speak... something that might help you is the engine database on devmaster.net
Edited by Gian-Reto, 10 February 2015 - 11:51 AM.