UE4 / Unity5 oder C++?

Asterolon

Cadet 3rd Year
Registriert
Okt. 2016
Beiträge
42
Hallo,

ich interessiere mich schon länger fürs Programmieren und vorallem fürs Programmieren von Spielen.

Ich bin noch Schüler (17) und habe in der Schule Java. (seit ca 1 Jahr)
Wirklich was programmieren können wir nicht außer Text ausgeben mit if Methoden und so.

Da es mich aber interessiert würde ich gerne mehr darüber lernen und bin auf amazon auf ein Buch gestoßen zur UE4 Programmierung mit Blueprints.

Meine Frage wäre, wenn ich mich fürs Spieleprogrammieren interessiere macxht es mehr sinn mit so einem Buch über die UE4 blueprint Programierung anzufangen? und was kann man damit als anfänger später Programmieren?

oder lieber direkt mit c++?

Kennt jemand Bücher die empfehlenswert sind?
Zu UE4 habe ich dieses gefunden: https://www.amazon.de/Spiele-entwic...4_1?ie=UTF8&psc=1&refRID=0FXV6M3ZNY5867H4WW5N

und zu c++ dieses:
https://www.amazon.de/C-für-Spielep...g_2?ie=UTF8&psc=1&refRID=GCH7BWK00N5KSYK7H8H0

Vielen Dank schonmal fals sich jemand die Zeit nimmt mir zu helfen :)

MFG
 
Unity und c# machen am meisten Sinn für dich, die Nähe von c# zu Java wird dir am Anfang helfen dich umzugewöhnen.
 
Bevor du nicht mehr kannst, als Text nach if-Statements auszugeben, solltest du noch gar nicht groß an Spiele denken, denn dazu gehört viel, viel mehr als das, was man in seinen ersten Konsolen-Projekten macht.
 
Es gibt Spieleengines wie Unity und Konsorten, damit man nicht bei jedem Spiel, das man erstellt, das gesamte Grundgerüst neu schreiben musst. Wenn du also mit C++ ein Spiel erstellen willst, dann musst du dich um alles selbst kümmern.

Natürlich gibt es Bibliotheken, die dir beispielsweise helfen Eingaben entgegen zu nehmen oder irgendetwas zu rendern, aber du musst zwischen diesen auswählen und das alles implementieren. Und beim nächsten Spiel kannst du davon dann auch nicht viel wiederverwenden. Bei den Engines hingegen kannst du dich vornehmlich auf das eigentliche Spiel konzentrieren und musst dich nicht mit solchen Low-Level-Geschichten beschäftigen.

Lehrreicher ist es sicherlich, wenn man das alles in C++ selbst macht, aber auch schwieriger und für die tatsächliche Spieleentwicklung (!= Engineentwicklung) unwichtiger. In Unity arbeitet man mit C#, das syntaktisch sehr ähnlich zu Java ist, der Umstieg sollte dir hier also nicht sonderlich schwer fallen.

Unabhängig davon würde ich @Bagbag bekräftigen: Es ist in der Tat sinnvoller, wenn du eine Sprache erstmal tatsächlich lernst und was noch viel wichtiger ist, sowohl die Prinzipien für Software- und insbesondere Spiele-Design als auch dazugehörende Algorithmen (für die Wegfindung bspw. den A*-Algorithmus) lernst. Ein richtiges Spiel, das mehr als ein Tic-Tac-Toe ist, zu entwickeln ist alles andere als trivial.

Bevor du dein Taschengeld für teure Fachbücher auf den Kopf haust, es gibt auch online kostenfrei einige Fachbücher. Siehe beispielsweise hier.
 
Zuletzt bearbeitet:
also ein bisschen mehr kann ich schon^^ vererbung und klassen interagieren lassen hatten wir auch schon. aber viel mehr werden wir wohl auch nicht mehr machen.

gibt es bei unity auch blueprints wie bei ue4?
 
@ Asterolon
Du solltest dir ersteinmal überlegen, was dich an der Spieleentwicklung so konkret interessiert bzw was für einfachere Spiele du programmieren möchtest. Denn komplexere Spiele (von Grund auf) zu entwickeln ist so umfangreich (sowohl vom Aufwand als auch von der Theorie dahinter), dass eine Person dies nicht alleine durchführen kann.

Zunächst lässt sich die Spieleentwicklung grob gliedern in einen Softwareteil und einen künstlerischen Teil. Der Softwareteil lässt sich in der Regel nocheinmal feiner unterteilen in:
-Graphik
-KI
-Physik
-Sound
-Allgemeine Spiellogik
-Netzwerk
Zudem benötigt der Softwareteil eine Softwarearchitektur, welche die einzelnen Teilbereiche gut miteinander verbindet.

Der künstlerische Teil besteht in der Regel aus folgenden Punkten:
-Gameplay
-Leveldesign
-Graphik ( 3D-Modelle, Texturen, Animation, Spezialeffekte)
-Musik und Sound

Willst du eher den künstlerischen Teil machen, so würde ich dir stark eine Engine ans Herz legen. Willst du wirklich etwas programmieren, dann solltest du dir ersteinmal im klaren sein, was du für ein (einfaches) Spiel oder alternativ auch nur was für eine einfache Techdemo programmieren willst. Für ein Strategiespiel ist zum Beispiel vor allem die KI relevant, während für ein einfaches 2D/3D Raumschiffspiel wohl die 2D/3D Graphik am wichtigesten sein wird. Für ein einfaches Billiard ist dann wiederum nur die Physik relevant. Dann würde ich mir auch Literatur (ob echte Bücher oder online Tutorials ist da mehr oder weniger egal) organisieren, die genau in diese Richtung gehen was ich machen möchte.
 
Zuletzt bearbeitet:
Robert schrieb:
Es gibt Spieleengines wie Unity und Konsorten, damit man nicht bei jedem Spiel, das man erstellt, das gesamte Grundgerüst neu schreiben musst. Wenn du also mit C++ ein Spiel erstellen willst, dann musst du dich um alles selbst kümmern.

Natürlich gibt es Bibliotheken, die dir beispielsweise helfen Eingaben entgegen zu nehmen oder irgendetwas zu rendern, aber du musst zwischen diesen auswählen und das alles implementieren. Und beim nächsten Spiel kannst du davon dann auch nicht viel wiederverwenden. Bei den Engines hingegen kannst du dich vornehmlich auf das eigentliche Spiel konzentrieren und musst dich nicht mit solchen Low-Level-Geschichten beschäftigen.

Lehrreicher ist es sicherlich, wenn man das alles in C++ selbst macht, aber auch schwieriger und für die tatsächliche Spieleentwicklung (!= Engineentwicklung) unwichtiger. In Unity arbeitet man mit C#, das syntaktisch sehr ähnlich zu Java ist, der Umstieg sollte dir hier also nicht sonderlich schwer fallen.

Unabhängig davon würde ich @Bagbag bekräftigen: Es ist in der Tat sinnvoller, wenn du eine Sprache erstmal tatsächlich lernst und was noch viel wichtiger ist, sowohl die Prinzipien für Software- und insbesondere Spiele-Design als auch dazugehörende Algorithmen (für die Wegfindung bspw. den A*-Algorithmus) lernst. Ein richtiges Spiel, das mehr als ein Tic-Tac-Toe ist, zu entwickeln ist alles andere als trivial.

Bevor du dein Taschengeld für teure Fachbücher auf den Kopf haust, es gibt auch online kostenfrei einige Fachbücher. Siehe beispielsweise hier.

Es gibt auch Spieleengines für C++, dass hat doch nix mit der Sprache zu tuhen,
 
Pardon, war doof ausgedrückt. Ich meinte das natürlich im Kontext der Frage (Unity/UE4 versus C++-Programmierung von Grund auf). Selbstverständlich hat C++ nichts damit zu tun, sondern der Ansatz selbst programmieren versus Engine.
 
Zurück
Oben