[Gelöst] Weg des Programmierers

Yo0m

Herzlich willkommen!
Hallo :)

ich bin neu in der Community und habe gehofft hier Antworten auf meine Fragen zu bekommen.
Ich hoffe ihr werdet sie mir beantworten könnt bzw. mir Ratschläge geben könnt. Ich mache nun mein letztes Schuljahr auf dem Gymnasium und sollte langsam mal damit anfangen mir eine Richtung für mein Studium zu wählen. Ich würde gerne in Richtung des Programmieren von Games gehen.
Nun wären meine Fragen:
1.) In welchen Teil gehört das Programmieren von Games?
2.) Welche Programmiersprache würde sich für diese Richtung eignen?
3.) Stimmt es, dass die Programmiersprache Java nicht so günstig für das Programmieren von Games ist?

Ich hoffe, dass ihr mir helfen könnt. ^^
Es tut mir Leid, wenn ich im falschen Themengebiet bin.

MfG Yo0m
 
1.) In welchen Teil gehört das Programmieren von Games?

In welchen Teil von was? :unsure:

2.) Welche Programmiersprache würde sich für diese Richtung eignen?

Ich kann nicht glauben, dass du als angehender Programmierer so eine Frage in so einem Forum stellen musst. Die Antwort auf diese und viele weitere Fragen hättest du doch schneller selbst finden können, als du für die Erstellung deines Postings gebraucht hast ... oder? ;)

3.) Stimmt es, dass die Programmiersprache Java nicht so günstig für das Programmieren von Games ist?

Wie hat das denn derjenige begründet, der dir das so gesagt hat? War's ein gutes Argument?
 
1.

Da hast du deine "Teile": Spieleentwickler ? Wikipedia

2.

Für größere Spiele hauptsächlich C++

3.

Kommt auf das Spiel an.
Minecraft zum Beispiel würde vielleicht schneller laufen, wenn es in C++ geschrieben ist. Ob das so stimmt: Keine Ahnung.
Aber wie C++ und Java haben alle Programmiersprachen Stärken und Schwächen. Wichtig ist daher, die für die Anforderungen am besten geeignete Sprache zu finden.



Um mal auf den Titel "Weg des Programmierers" zurück zu kommen:

Der Begriff "Programmierer" ist ziemlich weit gefasst. Wenn du das konkretisierst, gibts da auch genauere Infos, aber eines bleibt immer gleich:
Jeder Programmierer fängt ganz mikrig klein an und kämpft sich lange und schwer nach oben. Manche stürzen ab und geben auf, andere bleiben auf der Strecke liegen und ein paar wenige schaffen es ganz nach oben.
Und lass dir gesagt sein: In ein paar Jahren kommst du wahrscheinlich nicht zum Ziel.

Aber wie beim Bergsteigen der Fuß des Berges sehr flach beginnt, gilt es auch beim programmieren lernen: Fang klein an!
Wenn du dir gleich die steilste Stelle am Hang suchst und ungesichert hoch kraxeln willst, stürzt du schneller ab, als du gucken kannst.
Nimm dir also ganz kleine Projekte vor. Der Taschenrechner ist meiner Meinung nach ein hervorragendes Ziel. Der ist in der Konsole sehr leicht umgesetzt und benötigt nur die wichtigsten Grundlagen. Wenn der dann läuft, kannst du weiter gehen, den Rechner verschönern, ausbauen, etc. Aber denk dran: Wirklich fertig ist er erst, wenn du alle Bugs behoben hast und selbst dann gibt es mit Sicherheit noch etwas zum besser machen.

Wenn du dich recht gut in der Materie aus kennst, dann kannst du dich mal nach einem Stichwort "Pattern" umschauen. Damit hab ich mich in meiner Ausbildung auch mal auseinander gesetzt und hab innerhalb so kurzer Zeit so viel dazu gelernt. Du lernst nichts sprachspezifisches, aber diese Pattern kann man gut auf andere Sprachen übertragen und wenn du für die jeweilige Situation das richtige Pattern findest, kann das Gold wert sein.

Bis hier hin kann ich gut aus eigener Erfahrung sprechen. Weiter bin ich bisher selber noch nicht, hauptsächlich, weil ich zu früh die Motivation verloren habe.
Ich habe also keine wirkliche Erfahrung, aber eins weiß ich und das wird die bekannt vor kommen: Fang bloß klein an!

Tetris, Snake, was auch immer. Das ist schaffbar und wenn du nicht so perfektionistisch an de Sache heran gehst, wie ich, dann wirst du auch recht schnell erste kleine Erfolge haben, wie z.B. eine Schlange aus Pixeln, die über die Konsole huscht. Klingt klein und unbedeutend, aber wenn du dich da hin gearbeitet hast und dann mit den Pfeiltasten diese Schlange steuern kannst - das macht irre Spaß, das erste eigene Spiel zu spielen. ^^
Ein Tipp aber noch: Versuch es nicht irgendwelchen Leuten zu zeigen. Das hab ich versucht und ich hab fest gestellt: Leute, die sich damit nicht aus kennen, die wissen diesen Erfolg überhaupt nicht zu schätzen.

Darüber hinaus gilt es, dich zu steigern. Eine Idee wäre vielleicht, das absolute Grund-Prinzip von Minecraft nach zu bauen. Ich hab mir sagen lassen, das ist eigentlich ganz einfach und wenn ich so überlege, wie ich das machen würde: Wirklich schwer klingt das nicht.
Also schreibe ein Spiel, wo ein Männchen (Ein Block, das reicht), von dir auf einer platten Welt hin und her gesteuert werden kann. Dann soll es Blöcke hoch hüpfen können. Dann soll es mit anderen Blöcken interagieren können, wie z.B. ihn abbauen oder hin bauen.
Eine eigene Textur für die Figur ist unwichtig, denn das ist gar nicht das schwierigste und wenn du das kleine Spiel von Anfang an richtig strukturiert hast (damit meine ich den Code), dann sollte es kein Problem sein, im Nachhinein eine tolle Figur mit hübschen Animationen einzufügen.
Du könntest ja auch mal komplexere Mods für Minecraft programmieren. Dann siehst du, wie das ungefähr strukturiert ist und kannst dir was ab gucken. Ob Minecraft so gut aufgebaut ist, kann ich dir nicht sagen, da ich bisher nur für Bukkit programmiert habe, aber auf jeden Fall ist das ein Praxis-Beispiel aus dem du lernen kannst - sowohl positiv als auch negativ.

Wenn du nun da angekommen bist, dass du Minecraft im Grundprinzip zu schreiben, dann schätze ich, hast du ungefähr die Hälfte des Weges geschafft und wie es danach weiter geht, weiß ich nicht.

Ich kenne nur so Stichworte wie DirectX (gibt sowohl für C++, als auch C# entsprechende Bibliotheken, oder du greifst direkt auf DirectX zu), XNA (eine Technologie zur Spieleentwicklung von und für Microsoft, in C# wäre das mein erster Anlaufpunkt, wenn ich grafische Spiele entwickeln will) und Engine.
Es gibt einige Game-Engines und bestimmt auch irgendwo welche, die nix kosten und die du so nutzen kannst. Ich denke allerdings, für den Anfang sollte man zumindest einmal eine eigene kleine Engine geschrieben haben. Nix besonderes, aber um zu verstehen, wie es funktioniert.
Das wären meine drei Anlaufpunkte, wonach ich suchen würde. Und dann nur noch dem roten Faden folgen und lernen, lernen, lernen.



ot:

PS:
Ich bin natürlich auch offen für Fragen, wenn du dich dafür entscheiden solltest, C# zu lernen.
Ich hab auch kein Problem damit, dich mehr oder weniger zu begleiten, allerdings möchte ich kein besseres Lexikon sein.
Wenn also Fragen kommen, die mit Google mal eben zu lösen sind, oder du dich davor scheust, dir entsprechende Lektüre durch zu lesen, dann kann ich dir auch nicht helfen.

Denn ich weiß nach nun zwei Jahren aus eigener Erfahrung:

Das Erlernen einer Programmiersprache aus eigener Kraft ist schwer, aber der beste Weg, eine Programmiersprache zu lernen.

Grund: Wenn du es einmal schaffst, dich von Anfang an in so etwas großes rein zu arbeitet, dann schaffst du das ohne Probleme auch ein weiteres mal und ganz schnell sieht das große Ziel gar nicht mehr so groß aus.

Also merk dir: Wenn du die erste Hürde, eine Programmiersprache zu lernen, gemeistert hast, ist das Schwierigste eigentlich schon vorbei.
Wenn du dann noch Spaß dabei hast, dann steht dem eigentlich nicht mehr viel im Weg.
 
Aber gelesen hat er alles. Wobei du dir so viel Mühe auch gar nicht hättest geben müssen - auf den von dir verlinkten Wikipedia-Artikel hatte ich ihn ja schon mit der Nase gestoßen ... und in dem stehen eigentlich die Antworten auf all seine Fragen. ;)
 
zuerst einmal will ich mich mal bei palladin bdanken für deinen beitrag :)
und sry für die langsame antwort^^ ich habe mir das alles durchgelesen und musste aba auch gleich wieder für meine klausuren weiter lernen... da hab ich es verpasst zurück zu schreiben^^

Bei meiner ersten frage meinte, in welche studienrichtung gehörte die spieleentwicklung hinein gehört. auf der wikipedia seite steht es ja nicht genau sondern stehen nur paar wo man sich ausbilden kann. (sry wenn ich mich undeutlich ausdrücke)^^
 
Bei meiner ersten frage meinte, in welche studienrichtung gehörte die spieleentwicklung hinein gehört. auf der wikipedia seite steht es ja nicht genau sondern stehen nur paar wo man sich ausbilden kann. (sry wenn ich mich undeutlich ausdrücke)^^

Das steht da sogar sehr genau. Insofern drückst du dich vielleicht nicht undeutlich aus, sondern liest nur die Antworten nicht genau, die man dir gibt. ;) Mit anderen Worten: die Studiengänge, die du dir bislang vermutlich angeschaut hast und unter denen du jetzt auswählen zu müssen glaubst, sind eigentlich nicht das, wonach du suchst, wenn es dir mit der Spieleentwicklung ernst ist.
 
ich glaube ich geh das alles falsch an...leider habe ich wirklich noch kein plan womit ich wirklich beginnen soll... ich glaube ich kann derzeit nicht klar denken mit dem ganzen stress um mich rum.
nja ich habe mir eigentlich so gedacht, dass ich zuerst einmal die programmiersprache java anschauen und lernen will. dann wollte ich mich mit c++ auseinandersetzen. wäre das sinnlos so vorzugehen oda erleichtert es mir dann den umgang mit c++?
 
ich glaube ich geh das alles falsch an...

Das musst du nicht glauben, das kannst du als Gewissheit ansehen.

Meine Güte ... was ist so schwer daran, dir den inzwischen 2x angebotenen Wikipedia-Artikel durchzulesen? Da steht explizit drin, welche Möglichkeiten du hast, wenn du den Beruf des Spieleentwicklers anstrebst. Und welche Kenntnisse dafür erforderlich sein können.

Wenn du mit Java und/oder C++ rumspielen möchtest, dann mach das ... dafür musst du dir hier keinen Segen abholen ... nur bringt dich das allein auf deinem Weg nicht weiter. So du den denn überhaupt in die von dir genannte Richtung gehen willst. Was ich bezweifle. Wäre es dir ernst damit, hättest du dich längst anhand der angebotenen Quellen eingehender informiert.

Wie soll das denn später werden, wenn du eigenständig etwas programmieren sollst? Fragst du dann auch so lange in irgendeinem Forum nach, bis dich aus lauter Verzweiflung jemand an die Hand nimmt und dir deinen Quelltext in die Tastatur diktiert?
 
Also erst einmal die Tatsache, dass du überhaupt eine objektorientierte Programmiersprache kannst, erleichtert das extrem.


Ich denke aber auch, du solltest dich nicht auf dieses große Game-Development fixieren, das ist ein Ziel ganz weit in der Zukunft und aus Erfahrung weiß ich: Das sind keine guten Ziele.
Such dir ein kleineres Ziel. Wenn es unbedingt Spiele sein müssen, dann setze dir doch mal das Ziel, Snake nach zu programmieren. In der Konsole von Windows, die du mit C# ganz einfach ansteuern kannst, lässt sich das relativ schnell und einfach machen. Außerdem brauchst du für Snake ein breites Spektrum an Grundlagen-Wissen, was aber nicht zu komplex wird.
Das klingt wenig, aber täusche dich da mal nicht. Gerade als Anfänger ist das ein Meilenstein, aber ein Meilenstein, der deutlich leichter zu erreichen ist.

Ob du mit Java oder C# anfängst, ist vermutlich ziemlich egal. Vorteil bei C#: Du hast mehr Ähnlichkeiten zu C++, aber da das wichtigste sowieso die Objektorientierung ist, interessiert das nur wenig. Und was dann besser geeignet ist, Java oder C#, das ist so ein Streit-Thema, wo sich irgendwie niemand einig wird. Ich bin C#-Fan, andere mögen Java, also einigen wir uns darauf: Beide haben Vor- und Nachteile.
Welche von Beiden besser zum lernen ist, weiß ich nicht, ich denke, sie sind beide gleich gut geeignet.

Was C++ angeht: Ich kann kein C++ ich habs nur mal versucht und war recht schnell wieder bei C#. Ich weiß nur, dass du sehr viel mehr beachten musst, was bei C#/Java alles automatisch geregelt wird. Außerdem kannst du in C++ auch gut was kaputt machen, da es keine Schutz-Mechanismen gibt. So hatte ich z.B. mal in C# einen Fehler produziert (weiß nicht mehr was), da ist das Programm einfach nur abgeschmiert. In C++ wäre der ganze PC gleich mit abgeschmiert.
Das ist aber auch der größte Vorteil von C++, du kannst sehr viel (kaputt) machen, was in C# nur schwer bis gar nicht, oder mit Hilfe von C++-Bibliotheken (die im .NET-Framework vermutlich reichlich vertreten sind) geht.

So musst du entscheiden. Ich musste mich auch entscheiden und hab dann spontan auf C# getippt. Ich kenne die Vorteile von Java nicht im Detail, aber ich glaube, das was die meisten ganz oben ansiedeln, ist die Unabhängigkeit und dass C#.NET an Windows gebunden ist, damit kann ich leben. (Außerdem ... *-*)



Also als Grundregel: Das wichtigste ist sowieso die Objektorientierung und wenn du die wirklich drauf hast, ist jede andere Sprache deutlich leichter. Danach kannst du immer noch mit C++ anfangen, was du davor machst, ist denke ich das am besten, womit du am besten umgehen kannst.




PS:

Der alte Khelben hat Recht, hätte ich auch ganz oben schreiben sollen:
Die Entscheidung, was du tust und wie du es tust, kann dir niemand ab nehmen.
Entweder, du suchst dir einen Studiengang, machst ne Ausbildung, was auch immer und lernst es dort (dann ist der Wikipedia-Artikel angebracht), oder du versuchst es alleine, aber auch dann musst du anfangen. Fang einfach an, entscheide spontan. Ich bin der Meinung, dass spontane Entscheidungen, die ohne viel Denken getroffen werden, oft die Entscheidungen sind, mit denen man am besten leben und umgehen kann.
 
ok danke. ich habe mir fürs erste ein buch fürs java programmieren zugelegt und werde dann sicherlich auch mal C#.
Meine Ziele werden darum wie du sagtest klein anfangen mit erstmal der geeignetsten sprache lernen, mit der ich gut zurecht komme.^^
 
Entweder, du suchst dir einen Studiengang, machst ne Ausbildung, was auch immer und lernst es dort (dann ist der Wikipedia-Artikel angebracht), oder du versuchst es alleine, aber auch dann musst du anfangen. Fang einfach an, entscheide spontan. Ich bin der Meinung, dass spontane Entscheidungen, die ohne viel Denken getroffen werden, oft die Entscheidungen sind, mit denen man am besten leben und umgehen kann.

Und was genau hat er in der Hand, wenn er es "alleine" und ohne einen Plan zu haben versucht? Er wird sich verzetteln, wertvolle Zeit verschwenden und hat am Ende nichts vorzuweisen. Bestenfalls belastet er sich mit Vorkenntnissen, die - wenn er das Ganze dann noch mal "offiziell" lernen muss - schnell Langeweile verursachen werden.

Spontane, undurchdachte Entscheidungen sind wohl eher dazu geeignet, erst mal in die falsche Richtung zu steuern, statt den effizienten Weg zu gehen.
 
Oben