There is a 3D app developed by someone with OpenGL almost 2 years ago. The development is not finished by the previous developer and I'm assigned the task to finish it, based on customer requests.

I started the development almost a week ago and I've fixed some OpenGL-related issues and added some features. But, there is something that really bothers me and I just thought I'd need advice.

The voices/noises in my head/mind that bother me:

  1. If we stick to our OpenGL, eventually we will lose the Apple ecosystem, and will consequently lose being cross-platform.

  2. OpenGL is low-level, for a simple thing like detecting user-clicks on 3D objects, I need to spend much development time.

  3. If we get high-level: with Unity engine or Unreal engine, we have no problem with any platform even VR/AR. The development time with these engines appears to be much faster. Even with regard to licensing, they are flexible and provide free ones.

  4. As people say, Unity/Unreal is like buying a car and OpenGL/Metal/D3D is like buying a wheel. Maybe my life as a developer would be much easier if Unreal/Unity engine is used rather than a lower-level tool like OpenGL.

Now, I'm goint to talk to my boss regarding above thoughts. I want to ask him if it makes sense to let OpenGL go and just switch to an engine. But before talking to my boss, I just thought I'd ask here to see if it makes any sense or if I'm missing something.

  • 1
    \$\begingroup\$ first: Unity/Unreal is NOT like buying a car. Maybe buying every part of the car and a manual how to put them together to a specific car. What if you want to put them together in a different way? I would also say it depends on the actual status of the app. Is it nearly finished and you have to polish it, or is there barely any code? Keep in mind that you maybe have to start from zero, if you want to work with an engine. \$\endgroup\$ – Linaith Jun 26 '18 at 10:18
  • \$\begingroup\$ @Linaith I crossed off the "buying a car" quote. App is maybe in a 50%-50% status. That's right, with an engine, I might have to start from scratch. \$\endgroup\$ – user3405291 Jun 26 '18 at 11:23
  • 4
    \$\begingroup\$ I voted to close this question as opinion-based. Don't get me wrong, but all answers I can think of are just opinions. If you are an expert with OpenGL and you've made numerous projects before, obviously sticking with it would be the best choice. If you're more experienced with Unity or Unreal, obviously you will be faster at it.About supporting the apple ecosystem, it depends what kind of app you are making and what the client expects. \$\endgroup\$ – TomTsagk Jun 26 '18 at 11:53
  • \$\begingroup\$ @TomTsagk I think you forgot to actually vote. The question got 2 close-votes, but none for "Primarily opinion-based". \$\endgroup\$ – Philipp Jun 26 '18 at 17:02
  • 1
    \$\begingroup\$ I'd agree with @TomTsagk that this boils down to personal opinion & judgement. Both routes (sticking with homemade OpenGL or rebuilding the app in a cross-platform engine) are feasible and can give you high-quality results. You seem to understand the trade-off between up-front development investment to port the app, versus future development effort to maintain and expand it. Which side of that trade-off is more worthwhile for your particular situation is something only you can decide, based on the needs of your project. \$\endgroup\$ – DMGregory Jun 30 '18 at 12:36