Worin programmiert man eine (Oasis)?

3 Antworten

Ich habe mir gerade kurz den Trailer angeschaut. Im Prinzip geht es also lediglich um ein Multiplayer-Open World-Spiel mit VR. VR-Spiele können bereits heute mit einer Game Engine wie Unity3D gut entwickelt werden. Ganz sicher werden einige Funktionen, die in dem Film vermutlich dargestellt werden, noch nicht realisierbar sein, doch ich denke, dass das für die Beantwortung dieser Frage nicht entscheidend ist.

Bei Spielen, vor allem sehr komplexen, unterteilt man in der professionellen Entwicklung meist zwischen verschiedenen Ebenen. Grundlegende Funktionen, die die Basis bilden (z.B. das allgemeine Handling der Nutzereingaben, das Rendering der Spielkomponenten, die Wiedergabe von Sounds, u.ä.) übernimmt eine Engine (oder ein Framework / verschiedene Bibliotheken).

Die meisten Engines / Frameworks / Bibliotheken wurden in C/C++ programmiert. Die Ursache liegt darin begründet, dass diese Sprachen eine maschinennähere Entwicklung ermöglichen (s. hierzu auch bezügl. Grafik APIs wie OpenGL oder Direct3D), aber dennoch leicht verständlich / wartbar sind. Gerade auf performancekritische Stellen kann man mit C viel besser reagieren, als wenn man eine maschinenfernere Sprache (wie Python) einsetzen würde.

Für die reine Logik-Implementation (wenn Spieler Raum X betritt, tue dies und das) wiederum macht es mehr Sinn, eine leichte, reduzierte Sprache zu verwenden, mit der die Entwicklung schnell verlaufen kann. Die funktionale Basis für diese Skriptsprache stellt die Engine.

Welche Sprache man hierfür einsetzt, ist von Mal zu Mal unterschiedlich. Neben häufiger verwendeten Sprachen (wie Lua) werden manchmal auch neue Exemplare entwickelt (z.B. GDScript in Godot oder GML in GameMaker: Studio). Oft handelt es sich dabei dann um Abwandlungen bereits bestehender Sprachen (z.B. C, JavaScript, Python).

Neben dem Spiel würde an dieser Stelle allerdings noch die Anwendungsstruktur relevant werden. Um extrem große Multiplayer-Spielwelten zur Verfügung stellen zu können, braucht es Server und Datenbanken, die diese Last und Datenflut stemmen können. Für die interne Systemverwaltung selbst kann es also durchaus vorkommen, dass man noch Skriptsprachen wie bspw. Perl, Python oder die PowerShell Scripting Language einsetzt.

Für sowas bräuchte man wahrscheinlich mehr als eine Programmiersprache. Das Spiel an sich, das in 3D auf dem Rechner des Users läuft, könnte man beispielsweise in C++ schreiben. Man braucht aber natürlich auch noch Server, um die Spieler zu verbinden und die Spielwelt zu berechnen. Wenn man eigene Hardware nutzen will, muss man hierfür auch noch Treiber usw. programmieren. Hier würden wahrscheinlich andere Programmiersprachen und Technologien zum Einsatz kommen.

Aber generell, wenn man irgendeine Art von Spiel in 3D machen will, bietet sich eben C++ an, da es eine gute Performance hat, und man beispielsweise eine Engine wie die Unreal Engine damit benutzen kann. Eine weitere Alternative wäre die Unity-Engine, die meines Wissens nach mit C# am besten funktioniert.

Unity und C# eher weniger.

Mit C++ bist du auf einem guten Weg. Meist kommen dann eigene Engines wie Frostbite zum Einsatz.

1
@Dultus

Ja klar, wenn man so ein größeres Projekt hat, dann sollte man sich eine eigene Engine schreiben, weiß auch gar nicht, wie gut die Unreal Engine in Sachen VR ist. Aber wenn man wirklich selbst so Indie-mäßig ein Spiel entwickeln will oder man keine sehr speziellen Anforderungen hat, ist es natürlich einfacher, auf eine bestehende Engine zurückzugreifen. Zumal jetzt gerade die Unreal Engine mit 5% nicht all zu teuer ist.

2

Wenn du mir ne kurze Zusammenfassung gibts, kann ichs dir evtl. sagen. Generell kann man aber nahezu alles mit jeder beliebigen Programmiersprache programmieren. Nur sind manche halt für bestimmte Sachen besser geeignet als andere.

Woher ich das weiß:Studium / Ausbildung – Keine Freunde, keine Hobbys - dafür Computer und Informatik

Eine open world vr Welt pvp pve drop system alles. Kennst du sword art online? So ungefähr

0
@TjaSoBinIchHalt

ne kenn ich nicht. aber vermutlich würde man sowas am ehesten mit c++ machen weils ne objektorientierte sprache ist und man damit relativ performant programmieren kann.

3

Was möchtest Du wissen?