Simulator programmieren?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Um 3D Spiele zu programmieren sind die Game Engines Unity3D und Unreal ganz gut geeignet. Die Stärke von Unity3D liegt in der Programmierung die der Unreal Engine in der Grafik. Unity3D verwendet die Programmiersprache C# die relativ leicht zu erlernen ist. Unreal Engine verwendet die Programmiersprache C++ und Blueprints

Hier sind ein paar Tutorials zu C#: [ 1 ] [ 2 ] Tutorials zu Unity3D: [ 3 ] [ 4 ] [ 5 ]

Hier sind ein paar Tutorials zur Unreal Engine: [ 6 ] [ 7 ] [ 8 ] C++ Tutorial: [ 9 ]

Falls du dich dazu entscheidest dir die Game Engine Unity3D beizubringen rate ich dir dazu dich zuerst mit C# zu beschäftigen. Bei der Unreal Engine ist es am Anfang nicht entscheidend, ob du C++ kannst oder nicht, da Blueprints vollkommen ausreichen.

Wie fängt man da am besten an?

Nicht mit einen Simulator und schon gar nicht mit dem Programmieren einer engine.

Das ist ungefähr so als würdest du sagen du möchtest gerne lernen berg zu steigen. Und am besten gleich mit dem Mount everest anfangen.

Mein Tipp: Such dir ne engine deiner wahl. z.b. unity. und such dir ein paar grundlegende programmiertutorials raus. oder allgemein grundlegendes material zum thema programmieren und software entwicklung, bücher etc. Und fang damit an ersteinmal kleinere projekte zu entwickeln. z.b. versuch einfach mal ein Pong spiel in z.b. Unity umzusetzen. Dann haste schonmal ein wenig erfahrung aufm buckel und kannst dann weiter machen.

alexoxy 
Fragesteller
 25.03.2022, 10:56

Ja gut, aber welche programmiersprache empfielst du?

0
FouLou  25.03.2022, 11:01
@alexoxy
Such dir ne engine deiner wahl.

Die, die du brauchst um mit der engine zu arbeiten.

Es ist vollkommen schnurz mit welcher sprache du programmieren lernst. Die vollen sprachen ähneln sich eh alle so das der umstieg nicht schwer ist und nur in den Speziellen sachen nacharbeit braucht. (z.b. pointer behandlung und speicher management in c++ wenn man davor nur c# oder java gemacht hat)

Unity z.b. arbeitet mit c# soweit ich weiss.

Dinge die ich ggf auch gerne zum üben empfehle wären ist die seite codeingame oder das spiel screeps. Beides setzt natürlich vorraus das man von den grundlagen eine ahnung hat.

0
FouLou  25.03.2022, 11:08
@alexoxy

Noch als idee: Wenn du dich so auf simulator eingeschossen hast können übungsprojekte auch in diese richtung gehen. z.b. einen Paint simulator. Wo es darum geht schlichtweg wände anzumalen. Das dürfte für einen anfänger durchaus schon eine herausforderung sein ist aber in einem überschaubaren rahmen. Auch müssen übungsprojekte keine vollwertigen spiele sein. Es kein problem nur die grundlagen zu implementieren bzw. das was man üben/lernen möchte. und das projekt dann bei seite zu legen.

0

Was du hier beschreibst, sind Projekte, an denen normalerweise zumindest hunderte Menschen über Jahre hinweg arbeiten. Und die haben schon vorher das Programmieren gelernt.

Sowas schafft eine Person allein nicht.

alexoxy 
Fragesteller
 25.03.2022, 10:54

Wow sehr hilfreich danke ich weiß. Ich will aber wissen welche programmiersprache für meine vorhaben die beste ist und wie ich die am besten lerne.

0
ultrarunner  25.03.2022, 10:55
@alexoxy

OK, die Sprache C++ ist für sowas recht verbreitet. Ich habe C++ z.B. mit Hilfe eines entsprechenden Buches gelernt.

1
alexoxy 
Fragesteller
 25.03.2022, 10:59
@ultrarunner

Okay. Und wie sieht so ein Buch dann aus? Ist das wie ein Lexikon wo alles drinsteht wie man was programmiert oder wie ist das?

0
ultrarunner  25.03.2022, 11:03
@alexoxy

Es gibt da ganz unterschiedliche. Aber üblicherweise wird man zuerst an Hand von Beispielen in die Grundlagen eingeführt, und dann gibt es Kapitel zu verschiedenen Aspekten der Programmiersprache. Am Ende ist vielleicht noch ein Nachschlage-Teil.

0
Vinarion1  25.03.2022, 11:18
@alexoxy

Diese bücher führen dich ~neben dem erlernen der syntax~ an konzepte heran. Sie lehren dir unter anderem diverse speichertypen/variablen, einige mathematische konzepte und wie man bspw. Seine daten organisiert.allerdings: nahezu immer werden NUR grundkonzepte beschrieben; das implementieren von funktionen und co über schnittstellen (zum bsp directx oder netzwerkfunktionalität) steht auf nem ganz anderen Blatt. Du wirst alsp keine anleitunng finden, wie du den nächsten ultramodernen flugsimulator programmierst. Aber du lernst, wie du bspw. Die gleichungen zur berechnungen der physik in deinen code zu schreiben hast,damits keinen error gibt.

0

Am besten mit dem hallo welt programm.und du wirst pber kurz oder lang nich umhin können, in irgendeiner form geld auszugeben, um zu lernen.

Einen simulator zu programmieren, geschweige denn ne eigene (!) Engine..davon bist du als Anfänger jahre entfernt. Du wirst freudensprpnge machen, wenn du das erste mal n Viereck über n fenster hüpfen lässt..

FouLou  25.03.2022, 11:02

Vorallem wenn man das direkt mit Direct x machen will. Das ist schon ein wenig umständlich.

0
Vinarion1  25.03.2022, 11:09
@FouLou

Naja, es geht ja schon bei der wahl der sprache los..direct x und solche spielchen mal ganz aussen vor gelassen.allein bis man bei bspw. C/c++ "freihändig" schreiben kann, wird man die ein oder andere tastatur zerbeissen.nach meinem Verständnis is das aber wohl eine der sinnvolleren sprachen, wenn man in so eine Richtung programmieren will..aber davon mal ab, selbst open Source engines brauchen wissen...also meine tage als coder sind schon eeecht lange her..und spiele und co waren da nie wirklich drin (weil andere interessen) ...aber ich habe meine bude vor freude angezündet, ein system zur Speicherung ( und laden) von daten (in ner eigenen datei) zu implementieren...nich auslachen dafür bitte...

0
FouLou  25.03.2022, 11:14
@Vinarion1
aber ich habe meine bude vor freude angezündet, ein system zur Speicherung ( und laden) von daten (in ner eigenen datei) zu implementieren

XD Früher war das ggf. ne hürde. Heutztage kannste so gesehen ja komplette Objekte in eine datei serialisieren. Und das ist jetzt nichts umständliches. Und durchaus manchmal für spiele geeignet.

Ich persönlich bin der ansicht das die sprache fürs programmieren lernen imgrunde eigentlich egal ist. Weil das wichtige sind ja die konzepte die dahinterstehen. Der umstieg auf eine neue sprache ist dann nur noch herauszufinden wie die syntax dieser konzepte ist die man einsetzen will. Und natürlich die eigenheiten.

selbst open Source engines brauchen wissen...

Durchaus. Wobei von dem was ich z.b. bei Unity gesehen habe ist da auch viel wysiwyg dabei. Also durch die Oberfläche der IDE abgedeckt. Aber natürlich. Einarbeiten muss man sich da. Aber für gewöhnlich gibts für die grösseren opensource engines nen ganzen haufen tutorial material usw. auf youtube. Womit man ersteinmal lernen kann. Und auch recht schnell was vernünftiges sieht.

0
Vinarion1  25.03.2022, 11:32
@FouLou

Also..naja..ist ja nich näher beschrieben,was der fs genau anstellen will..sich etwas zusammenzuklicken und das dann programmieren zu nennen finde ich ein wenig grenzwertig ..nenn mich oldschool was das angeht. Vor allem im lernprozess... solche zusammengewürfelten programme sieht man wie sand am meer: ineffizent,fehlerüberladen...der "produzent" hat die konzepte nie richtg kapiert, weil eben die oberfläche das nicht verlangt..ich hatte unlängst mal wieder die begegnung mit einem klassischen stack overflow aufgrund eines ungünstigen datentyps..(war eine aufgabe für meinen sohn, der da so n Workshop mitmacht)...mein sohn hat den fehler (sehr offensichtlich,sehr klassisch..im prinzip das typische "gib ne zahl von 1 bis 100 ein ..und du tippst 101 und das ding geht ins minus)..

Mein kleiner konnte die aufgabe nich gut lösen, weil er selbst kaum schreibt, sindern in der hauptsache die autofill bausteine nutzt..

0
FouLou  25.03.2022, 11:59
@Vinarion1
sich etwas zusammenzuklicken und das dann programmieren zu nennen finde ich ein wenig grenzwertig

So ist es ja auch nicht wenn man mit einer engine arbeitet. Aber es gibt ja durchaus lernplattformen die das tuen. Scratch ist glaube ich soetwas. (wobei die eher an recht junge menschen orientiert ist) Wobei hier das ziel nicht ist konkret code schreiben zu lernen. Sondern algorithmisches denken (wie ich es jetzt mal nenen)

Aber zur engine: die übernimmt ja nicht alles. Sondern kümmert sich schichtweg um dinge wie kollision detection etc. Und wo die collider sind und wie sie aussehen muss man nicht mit code festlegen sondern kann es zusammenklicken.

Was dann allerdings passiert wenn eine kollision ausgelöst wird. Muss man dann natürlich klassisch schreiben.

Oder als anderes beispiel: Simples abspielen von musik im spiel welches du dann in events oder sonstwie steuern kannst. Da kann man sich sicherlich zusammenklicken welche objekte für welche musikstücke stehen etc. sodass man im code nur noch sagen muss: hey musik engine spiel mir mal lied 5 ab mit folgender laustärke etc.

Nur so als beispiel was ich mit zusammenklicken meine.

0
Vinarion1  25.03.2022, 12:00
@FouLou

Joar,in diesem rahmen is das ja auch hauptsächlich ne quality of Life sache 😅

0
FouLou  25.03.2022, 12:03
@Vinarion1

Das ist ja imgrunde auch der Sinn einer Engine. XD. Ein wenig so wie UI APIs in klassischer software programmierung. Wenn man sich WPF mit xaml anschaut muss man sich ja auch relativ wenig darüm kümmern wie Das control nun ein Mausklick registriert. Und wenn man es möchte kann man sich die Views ja auch im Designer zusammenziehen ohne ne zeile Xaml zu schreiben.

0