Wie Programmiert man so etwas?
Nur als Beispiel dieser Mod in einem Videospiel, ich habe das Video ganz gesehen, und neben der Total verrückten Idee des Spiels selbst fasziniert mich wie man so etwas Programmiert
Video: https://youtu.be/tt2ZrVoW9BU
Ist eigentlich egal welches Spiel man nimmt, oder Programm usw.
Ich finde Programmieren genauso unglaublich wie die Mondlandung oder Wissenschaftliche Dinge dergleichen, und ich habe 0 Ahnung von Programmieren.
Also meine Frage, wie geht das, in dem Spiel gibt es viele verschiedene Enden, die man nur erreichen kann wenn man Dinge in einer bestimmten Reihenfolge macht.
Wie kann man so etwas programmieren, wie sieht so ein Code aus??
Diese ganzen Level, Aktionen die man im Spiel machen kann, dass muss doch 1000 Jahre dauern bis man das alles fertig hat.
Als anderes Beispiel einfach GTA V
Wie Programmiert man dass
Es gibt 1000 Npc's, die ganzen Level, der Story mode
Jeder Schritt denn ein Charakter geht, jeder einzige Schuss der fällt (vorgeschrieben wenn man den Story Modus spielt), dass muss doch 10000000 Jahre dauern, wie geht das bitte
Bei Minute 25:30 ein Beispiel, vielleicht kann es jemand erklären
3 Antworten
Es ist sehr wichtig das man Spieleentwicklung getrennt von herkömmlicher Programmierung sieht. Ich bin selbst kein Spieleentwickler, aber soweit ich weiß werden 99% aller Spiele heutzutage mit Spiel-Engines wie Unity entwickelt. Das ist spezielle Software, wie z.B. Photoshop, die dir eine ganze Menge Arbeit abnimmt. So kannst du dich auf die Spielinhalte konzentrieren. Programmieren in der Spieleentwicklung sind eigentlich nur kleinere Scripts, die durch bestimmte Events ausgelöst werden. Soundeffekte, 3D Modelle usw sind einzelne Objekte, aus denen du eine Szene baust. An diese Objekte kannst du Skripts hängen, die z.B. eine Tür erst sichtbar machen, sobald ein bestimmter Hebel aktiviert wurde. Es ist in der Regel kein Hexenwerk, aber ja, es dauert oft viele Jahre für die Entwicklung von Spielen in der Größenordnung wie GTA.
Hey! Also fangen wir mal ganz von vorn an. Erstmals gibt es Befehle die eine Funktion ausführen. Diese Befehle haben immer eigene Namen (je nach dem in welcher Sprache programmiert wird) z.B. in Python gibt es einen Befehl der heisst print(). Dieser Befehl sorgt dafür, dass die sogenannte print-Funktion ausgeführt wird, und dann was auch immer in den Klammern steht im Fenster ausgegeben wird. Beispiel: print(„Hello World!“) Ausgabe: Hello World!. Dann gibt es Operatoren wie im Mathe Unterricht. Also z.B. +, -, *, /. (Plus, Minus, Mal, Geteilt). Es gibt auch noch andere kompliziertere wie # oder ! aber wir bleiben erstmals bei den einfachen. Dann ist z.B. print(3+4) Ausgabe: 7. Als nächstes gibt es Variablen, also zwischengespeicherte werte die das programm braucht. Beispiel:
x = 3
print(x)
x = x + 5
print(x)
- Ausgabe: 3
- Ausgabe: 8
wir haben hierbei erst die Variable.X auf den Wert 3 gesetzt und mit der print Funktion ausgeben lassen. Dann haben wir 5 drauf addiert und wenn wir es ausgeben lassen bekommen wir 8. Jetzt gibt es nich sogenannte Statements. Ein Statement ist z.B. if, while, for, …. Mit diesen kann man z.B. angeben dass ein bestimmter part des programmes genau 5 mal ausgeführt werden soll oder dass wenn eine Variable einen bestimmten wert hat etwas passiert. So z.B. schätze ich war das im Video bei 25:30 gemacht, Dass programm hat gewartet bis der Spieler an einem bestimmten Punkt (Koordinaten) war und dann eine Funktion ausgeführt.
Es gibt dann noch andere kompliziertere Sachen wie z.B. Threading, sodass man In einem Programm Verschiedene Code Abschnitte gleichzeitig laufen lassen kann, damit man z.B. gleichzeitig laufen, schiessen, springen kann und nebenbei noch effekte gezeigt werden können.
Ein Programm kann man theoretisch sogar im einfachen Text editor schreiben, aber es empfiehlt sich schon eine IDE wie z.B. VS Code. Spiele zu programmieren ist nun etwas komplizierter da diese in einer Engine gemacht werden, also einem Programm das dafür gemacht ist, wie z.B. Unity (von vielen Handyspielen)/Unreal Engine (viele PC Spiele)/Frostbite (EA Sports DICE engine von z.b. Need for Speed) /RAGE (GTA 5 Engine von Take 2 Interactive).
Ich persönlich programmiere jetzt seit etwa 2 Jahren und hab noch viel zu lernen. Schreibe hauptsächlich Mods/Scripts für Server der Gta V RP Platform FiveM in der Sprache LUA. Kann aber auch Python und lerne im Moment C++. Wenn du selbst mit dem Programmieren anfangen möchtest, empfehle ich dir den YT Channel Programmieren lernen: https://youtube.com/@Programmierenlernen Er hat sehr viele Videos für sehr viele Sprachen. Kann dir für den Anfang Python empfehlen, da das eine moderne, nicht zu schwierige Sprache ist. Später sollte man aber auch die älteren, stabileren Sprachen lernen wie z.B. C, C++, C#, Javascript, PHP,… Auch je nach dem was man programmieren will sind verschiedene Sprachen sinnvoller zu lernen. C, C++, C# sind die Sprachen die für die meisten Windows Programme und auch Spiele verwendet werden. Javascript und PHP sind für Web Development.
Ich hoffe ich konnte dir das ganze ein wenig erklären. Es ist ein sehr komplexes Thema und lässt sich wirklich nicht sehr gut zusammenfassen, da es sehr viele verschiedene Bereiche darin gibt. Trotzdem wünsche ich dir noch alles gute und Happy Coding! LG.
Spiele sind in erster Linie nicht schwer zu programmieren, solange sie 2D sind. 2D Spiele kann man bereits mit einfachen Scripten verwirklichen. Anders sieht es aus bei 3D. Auch hier sind einzelne Scripte möglich, doch ist das viel schwerer. In der Regel benutzt man eine sogenannte Game Engine. Diese gibt es für 3D und 2D. Da du GTA nanntest, hier einmal die Game Engine, die Rockstargames benutzt: RAGE (Rockstargames Advanced Game Engine). Wie du schon am Namen merkst, haben die ihre eigene Engine. Dazu gibt es eine Story, doch das wäre für diese Antwort zu lang. Es gibt noch viele weitere Engines. Ich nenne mal zwei weitere Game Engines, die eine Privatperson benutzen kann: Unity, Unreal. Vielleicht hast du schon mal ein Spiel gesehen, dass beim Starten UNITY oder UNREAL angezeigt hat. Je nach Bezahlart, die der Entwickler gewählt hat, hat man den Namen der Engine im Spiel mit drin oder nicht. Die Game Engine ist wie ein Editor. Man fügt Modelle ein und kann die komplett darüber einstellen. Damit dann noch bestimmte Dinge passieren (Gameplay), schreibt man kleine Scripte. NPCs haben nicht alle ihren eigenen Code. Du hast das Verhalten eines NPC programmiert? Dann kannst du es auch auf einen anderen übertragen.
Im Übrigen ist Spieleentwicklung schon eher Next Level. Du musst dich mit Frameworks auseinandersetzen, die mit den Standard-Frameworks und Sprachen nichts zu tun haben. Dazu kommt dann noch Design, Handling der Engine und mehr. Ein Anfänger schafft das definitiv nicht. Wenn du also Programmieren lernen willst, empfehle ich, mit einem normalen Hello World Programm zu starten und dich nicht direkt zu überfordern. Man kann vieles falsch machen und schnell die Lust verlieren. Konzentriere dich erst mal auf das Gebiet der Softwareentwicklung und lerne viel. Der Vorgang des programmieren Lernens dauert unendlich. Man lernt nie aus. Man sollte also schlau abschätzen, ob man für etwas Neues (Spiele entwickeln) bereit ist oder nicht. Viele überschätzen sich da schnell.
Einsteigen in die Spiele und Software, wie auch App Entwicklung empfehle ich mit C#. C# ist eine sehr naja, einfache Sprache. Es gibt Sprachen, wie Python, die sind natürlich leichter, doch eher weniger dafür gemacht, große Software zu bauen (aber möglich). C# wird beispielsweise in der Game Engine Unity verwendet und kann auch Websites, Software, Apps und mehr. Die Unreal Engine arbeitet mit C++ und Blueprints. Wenn du also ohne Kenntnisse einsteigen willst, kannst du auch mit den Blueprints starten. Auf Dauer wird es dich aber weniger voranbringen. Für den Einstieg rate ich dir dringend von C++ ab. Die Sprache ist eine sehr schwere Sprache. C# dagegen ist viel einfacher und das Resultat wird ziemlich ähnlich. Irgendwann, in der Zukunft, wenn man es dann noch will, kann man noch immer C++ lernen. Der Umstieg von C# auf C++ ist dabei gar nicht so schwer, da Ähnlichkeiten der Sprachen bestehen.
Übrigens: Weil du ja noch davon gesprochen hast, wie so ein Code aussehen kann ... Das sprengt für diese Antwort wohl eher den Rahmen. Schaue hierfür aber gerne auf YouTube vorbei und suche dort nach Unity Spiel programmieren. Dann hast du mal einen Einblick. Dennoch zählt: Ich empfehle nicht direkt mit Unity einzusteigen. Dann wirst du nicht lange programmieren, weil es einfach zu viel wird.