Wahrscheinlich die einfachste Antwort: Machen Sie sich keine Sorgen, sondern wählen Sie stattdessen das aus, mit dem Sie jetzt am besten arbeiten können (dh was auch immer Sie besser können.
Wenn Sie der Meinung sind, dass Sie eine Engine mit Blick auf Portabilität schreiben sollten ("Spiele erstellen, keine Engines!"), Erstellen Sie eine Renderer-Abstraktionsschicht, damit Sie jedes benötigte Back-End anschließen können.
Während die meisten Desktop-Systeme OpenGL verstehen / haben, benötigen Sie OpenGL ES für die meisten mobilen Plattformen. Daher wäre es nur ein kleiner zusätzlicher Schritt, DirectX auch später hinzuzufügen.
Genauere Details sind meines Wissens sehr schwer zu bekommen, da die meisten Einzelheiten hinter NDAs und ähnlichen Dingen verborgen sind (aus welchem Grund auch immer).
Es ist ziemlich bekannt, dass Microsoft DirectX bevorzugt (und nur unterstützt?), Während Sony OpenGL unterstützt (obwohl ich mir über die Funktionsstufe / Version nicht sicher bin). Da beide eine Entwicklerlizenz benötigen, kommen sie vorerst ohnehin nicht in Frage.
Keine Ahnung von Nintendo, möglicherweise OpenGL oder proprietären Dingen? Sie wollen sowieso, dass Sie auch zuerst Verträge unterschreiben.
Viele andere (Mikro-) Konsolen (wie Ouya, Amazon FireTV usw.) verwenden Android und unterstützen daher OpenGL ES 1.1 sowie OpenGL ES 2.0.
Windows-PCs bieten normalerweise sowohl DirectX als auch OpenGL an. OpenGL ES wird indirekt über Wrapper unterstützt (wie das ANGLE-Projekt von Google ).
Linux- und Mac-basierte Systeme bieten normalerweise OpenGL und OpenGL ES. Es gibt Wrapper für DirectX, obwohl ich mir ziemlich sicher bin, dass dies wirklich nur für die Emulation gilt. Ich habe noch keine anderen gesehen.
Wie Sie sehen, gibt es leider keine "eine Schnittstelle passt für alle" -Lösung.
Wenn Sie sich vorerst auf eine Schnittstelle beschränken möchten (was Sie unbedingt IMO sollten), wählen Sie (modern) OpenGL. Es ermöglicht Ihnen die derzeit einfachste / größte plattformübergreifende Verwendung und erleichtert das Debuggen. Mit einigen Anpassungen (um OpenGL ES anstelle von OpenGL zu verwenden) wird dieser Code auch auf den meisten Telefonen und Mikrokonsolen ausgeführt.
Wenn Sie die Programmierung unter Windows mit Microsoft Visual Studio bevorzugen, ist DirectX möglicherweise eine Option für die Visual Studio-Integration (Grafik-Debugger usw.). Denken Sie daran, dass dies nirgendwo anders funktioniert (außer bei XBox, für die ohnehin eine Entwicklerlizenz erforderlich ist).