Kann man mehrere Programmiersprachen bei einem Spiel benutzen?

5 Antworten

Kann man, C# bietet dafür eine eigene Technologie mit, um C/C++ aufzurufen, nennt sich P/Invoke.

Allerdings solltest Du dir das gut überlegen, denn das macht es schnell ziemlich kompliziert, das sollte man nur tun, wenn es keinen anderen Weg gibt.

Woher ich das weiß:Berufserfahrung

Ja, das kann man. Ab und an ist es auch sinnvoll, wenn verschiedene Aufgaben mit verschiedenen Sprachen gelöst werden.

Dies kann man am Beispiel eines Spiels für mobile Endgeräte betrachten. Ein Server könnte auf Java, Erlang oder JavaScript (Node.js) aufsetzen, die mobilen Clients (für Android / iOS) wiederum auf Swift, Objective-C, Java oder C++. Mit einzelnen (PowerShell-/Perl-/Scheme-/...-Skripten lassen sich vereinzelte Hilfstools bauen, die entweder nur für temporäre Aufgaben dienen (z.B. Building-Prozesse, Generation von Spielwelten, Audiofading, u.ä.) oder tatsächlich auch Anwendung im Endprodukt finden (z.B. für das Echtzeitrendering einer Videoszene). Wie du bei vielen Engines siehst, gibt es außerdem eine grundsätzliche Aufteilung zwischen Backend (Kernfunktionen der Engine) und Frontend (Beschreibung der Spiellogik mit Skripten).

Bevor du nun aber für ein eigenes Hobbyprojekt damit anfängst, verschiedene Programmiersprachen in einen Topf zu hauen: Überlege dir genau, was du tust und inwiefern solche Maßnahmen wirklich sinnvoll sind.

Eine Kombination verschiedener Technologien erhöht die Komplexität des Projekts und somit auch die Anzahl potenzieller Fehlerquellen. Wenn Anknüpfungsstellen vonnöten sind, sind die nicht unbedingt leicht zu entwickeln. Im ungünstigsten Fall können sie (bedingt durch die Architektur / Implementation / beidem) sogar ziemliche Leistungseinbußen (und weitere Probleme) bewirken.

Ähm, realistisch und praktisch betrachtet: Nein.

Rein theoretisch: Ja. Nennt sich C++CLI und ist ein abstoßender Krampf!

Wenn du Unity nutzen willst, dann setze auf jeden Fall auf C#! Alles andere gehört sich einfach nicht. :)

Falls du hingegen unbedingt C++ nutzen willst, ist die UnrealEngine wohl die mächtigste auf dem Markt.

Aber C# mit UE, bzw. C++ mit Unity zu mixen ist in ersterem Falle m. W. n. unmöglich, und in letzterem Falle taugt es höchstens für Proof-Of-Concepts, aber mehr nicht.

Woher ich das weiß:Berufserfahrung

Klar, wieso nicht? Verschiedene Module bzw. Programmteile gehen problemlos.

Woher ich das weiß:Berufserfahrung – Ich programmiere RPAs

sagen wir so , da du bei den meisten spielen nicht den source code bekommst, wird es schwer .


Delar153 
Fragesteller
 02.05.2021, 23:27

Was wenn ich selbst eins entwickle?

1