Einstieg in die Spielebranche als C++ Programmierer

Einstiegsfragen, Mathematik, Physik, künstliche Intelligenz, Engine Design
Antworten
Benutzeravatar
Raidenkk
Beiträge: 64
Registriert: 27.11.2011, 02:32
Echter Name: Kevin
Wohnort: Bergkamen
Kontaktdaten:

Einstieg in die Spielebranche als C++ Programmierer

Beitrag von Raidenkk »

Hey,
ich heiße Kevin bin 18 Jahre alt und suche ein guten weg in die 2D Spiele Welt.
Ich habe mir bereits das Buch "C++ für Spieleprogrammierer" angeeignet und auch durchgelesen.
Ich kenne mich bereits mit den Basiswissen von C++ aus und habe auch schon ein wenig mit SFML 1.6 gearbeitet.
Leider bin ich in der Praxis noch nicht so begabt.
Und deswegen wollte ich euch fragen ob ihr für mich ein paar Tipps habt wie ich von einem 0,8,15 C++ Programmierer langsam zu einem Profi wird.

Ich hoffe ihr könnt mir helfen.

MFG:
Raidenkk / Kevin.K
pUnkOuter
Establishment
Beiträge: 303
Registriert: 15.04.2002, 15:59

Re: Einstieg in die Spielebranche als C++ Programmierer

Beitrag von pUnkOuter »

Am besten, du kopierst zu Beginn "einfache" Spiele, wie Snake, Asteroids, Tetris, Breakout, Minesweeper, Super Mario, etc. So musst du dich nicht allzu sehr mit Gamedesign befassen, sondern kannst dich auf die Programmierung konzentrieren. Wenn du willst, kannst du auch ein paar Modifizierungen einbauen, z.B. neue Blöcke im Tetris, oder Powerups im Asteroids, etc.
Wenn du mal ein paar dieser Spiele umgesetzt hast, kannst du dich dann an ein eigenes Projekt wagen. Oder du schliesst dich einem Team an.

Evtl. hilft es dir auch, den Quellcode von Open-Source Spielen anzuschauen. Dies könnte besonders hilfreich sein, wenn du mit deinem eigenen Projekt gestartet hast, und den Quellcode eines ähnlichen Spiels findest.
Ein Zeiger ins Blaue ist wie ein Wegweiser nach <SEGFAULT>. Wenn du denkst, mein Name hat was mit abgefuckter Kleidung und bunten Haaren zu tun, dann kehr besser um.
Benutzeravatar
Raidenkk
Beiträge: 64
Registriert: 27.11.2011, 02:32
Echter Name: Kevin
Wohnort: Bergkamen
Kontaktdaten:

Re: Einstieg in die Spielebranche als C++ Programmierer

Beitrag von Raidenkk »

Ja super Idee ich werde dann gleich mal mit den leichtesten dingen anfangen und mich steigen.
Zum Anfang werde ich ein Tic Tac Toe in SFML Programmieren :)

MFG:
Raiden
Benutzeravatar
ponx
Establishment
Beiträge: 217
Registriert: 04.05.2008, 12:52
Echter Name: Andy Ponx
Wohnort: Hamburg
Kontaktdaten:

Re: Einstieg in die Spielebranche als C++ Programmierer

Beitrag von ponx »

huhu Raiden,
es wär noch ne Überlegung wert, ob du wirklich gleich mit C++ anfangen willst. Es zeichnet sich gerade so ne Entwicklung ab, dass im Spielebereich mit C++ das passiert, was vor einigen Jahren (bzw ein, zwei Dekaden) mit Assembler passiert ist: Es wird immer weniger genutzt, und dann eigentlich nur noch für hardwarenahen Krams in Spiele-Engines. Überleg dir, ob nicht C# ne Alternative für dich ist, zumindest für den Anfang. Gerade wenn du erstmal 2D-Spiele machen willst, ist C++ eigentlich mit Kanonen auf Spatzen geschossen. Wenn du schon ein bisschen C++ kannst, wird dir der Sprung nach C# sehr leicht fallen. In C# kannst du moderne Engines wie XNA und Unity programmieren. Denen fehlen zwar die letzten 20-40% Leisung im Vergleich zu nativem C++ - Code, dafür entwickelt es sich damit aber sehr viel komfortabler, und man erreicht dank multi-plattform mit seinen Spielen aus dem Stand mehr Leute. Mit XNA kannst du sogar weltweit für die Xbox360 veröffentlichen.

In jedem Fall ein heißer Tipp zum Lernen von C++ und/oder C#:
http://www.gametutorials.com/
extrem gute und umfangreiche Sammlung kleiner Game-Beispiele , sehr sauberer und ausführlich dokumentierter Code. Es fehlt nur so'n bisschen der rote Faden.

oder für C++ :
http://www.directxtutorial.com
sehr gute Praxis-Lektionen in leicht verdaulichen Häppchen, nicht ganz so sauberer Code aber läuft und ist verständlich. Man wird schön bei der Hand genommen. Der Fokus ist aber stark auf 3D.

viel Spaß und Erfolg !
cheers,ponx
Benutzeravatar
Raidenkk
Beiträge: 64
Registriert: 27.11.2011, 02:32
Echter Name: Kevin
Wohnort: Bergkamen
Kontaktdaten:

Re: Einstieg in die Spielebranche als C++ Programmierer

Beitrag von Raidenkk »

Ich danke dir für diese wirklich gute Information cheers.
Ich möchte dir ja nicht widersprechen aber C++ ist für mich schon eine Lebenseinstellung geworden und deswegen würde ich wirklich gerne in C++ bleiben außerdem bin ich eine art Perfektionist und wenn ich schon höre das bei C sharp 20-40% weniger Leistung hat gehen mir die Haare Hoch :P.
Ich werde mir mal die Seiten anschauen. :)

MFG:
Kevin
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4254
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Einstieg in die Spielebranche als C++ Programmierer

Beitrag von Chromanoid »

Ich kann ponx nur zustimmen. Unterschiedliche Sprachen kennen zu lernen schadet nicht, sondern bringt einem höchstens neue Sprachkonzepte näher und macht flexibel. Was nützt einem 20% mehr Leistung, wenn man für die Arbeit doppelt so lange braucht und das Zeug auch so schnell genug läuft? Programmiersprachen und Softwarebibliotheken sind Werkzeuge und es ist doch gut, wenn der Werkzeugkasten schön gefüllt ist. Spezialisierung ist wichtig, man lernt dabei aber leichter und sinnvoller, wenn man sich von Ideologien und Bauchgefühlen fernhält.

Für bessere Programmierfähigkeiten ist es sonst vielleicht nützlich sich nicht zu sehr auf den Kontext Spiele zu beschränken. Übungsaufgaben a'la "Programmiere einen einfachen Taschenrechner" sind manchmal sogar besser, weil man die eigenen Ansprüche leichter im Zaum halten kann.
Benutzeravatar
BeRsErKeR
Establishment
Beiträge: 689
Registriert: 27.04.2002, 22:01

Re: Einstieg in die Spielebranche als C++ Programmierer

Beitrag von BeRsErKeR »

Ich glaube eigentlich, dass man anfangs besser bei einer Sprache bleiben sollte. Wenn man diese weitestgehend beherrscht ist das Erlernen einer anderen Sprache eigentlich ein Klacks. Am Anfang verwirrt es nur und man kommt durcheinander.

Ich denke auch nicht, dass man von C++ abraten sollte. Denn man lernt wirklich viel. Außerdem sollte man auch immer im Hinterkopf behalten, dass man später vielleicht doch von Spieleprogrammierung auf was anderes umschwengt und dann ist man mit C++ meist besser bedient als mit C#. Falls nicht wäre der Umstieg einfacher als von C# auf C++.

Mit meinen C++ Kenntnissen habe ich sofort jede Menge Jobangebote erhalten, für C# sah es ziemlich mau aus. Soll heißen, C++ ist immer noch weit verbreitet. Und man denke an technische Richtungen wie die Automatisierungstechnik oder Bereiche, wo die Leistung ziemlich wichtig ist. Da wird nicht viel mit C# gemacht.

Zum Thema: Bleib ruhig bei C++. Fang, wie schon erwähnt, klein an. Vielleicht sogar erstmal ohne 2D-Grafik oder mit einer kleinen 2D-Engine. Ich fands am Anfang wichtiger Dinge wie Spiellogik umsetzen zu lernen, als mich selbst um die Grafikausgabe zu kümmern. Ich weiß natürlich nicht wie weit du da schon bist. Wichtig ist machen. So viele Projekte wie möglich. Man zieht immer neue Erkenntnisse bei raus und findet mehr und mehr seinen Stil und bekommt das nötige Know-How.

Irgendwann kann man dann vielleicht sogar mal eine kleine Bibliothek schreiben, in die man Teile, die man in allen möglichen Spielen wiederverwenden kann, packt. Wobei es bei mir eher so war, dass ich das Rad immer neu erfunden habe. Allerdings war das Rad von mal zu mal besser. Für den Lernprozess finde ich das, entgegen der weit verbreiteten Meinung das Rad nicht immer neu zu erfinden, eigentlich recht angebracht.
Ohne Input kein Output.
Benutzeravatar
ponx
Establishment
Beiträge: 217
Registriert: 04.05.2008, 12:52
Echter Name: Andy Ponx
Wohnort: Hamburg
Kontaktdaten:

Re: Einstieg in die Spielebranche als C++ Programmierer

Beitrag von ponx »

ich wollte niemandem davon abraten, C++ zu lernen - bei mir's war's auch ne Art Lebenseinstellung und ich bin froh, dass ich's jetzt für meine Zwecke gut genug kann, und benutze es immer noch gerne. Aber ich bin halt auch froh, wenn ich C# benutzen kann, erst recht für GUI-basierte Tools und sowas. Da wird in der Spielebranche soweit ich's überblicken kann auch kaum noch was anderes verwendet. Wenn man sich bei der Spieleentwicklung am Anfang für C++ entscheidet, muss einem nur klar sein, dass andere schon sowas hier auf mehreren Plattformen kommerziell in C# raushauen, während man selbst noch mit der Debug-Ausgabe seiner Engine kämpft. Das Drumherum kann bei C++ am anfang sehr nervig und frustrierend sein... kryptische Fehlermeldungen, die dann darauf zurückzuführen sind, dass man header-Dateien in der falschen Reihenfolge eingebunden hat und was weiß ich. Aber wer grundsätzlich lieber möglichst nah an der Hardware rumfrickeln will, der wird sich davon nicht abschrecken lassen. Raiden ist so einer, hab ich schon gemerkt ! :) Es schadet auf jeden Fall nix, mit C# anzufangen. Der Sprung von C++ nach C# ist allerdings ein Klacks, im Gegensatz zu umgekehrt.
antisteo
Establishment
Beiträge: 854
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Einstieg in die Spielebranche als C++ Programmierer

Beitrag von antisteo »

Das mit den kryptischen Fehlermeldungen sollte sich zumindest seit der Existenz von clang/clang++ so einigermaßen erledigt haben.

Ich persönlich habe mich erst sehr spät im C/C++-Feld betätigt, und auch nur, weil
- es um Studium Pflicht war
- einige Projekte in C geschrieben waren
- es einige Bibliotheken nur mit C++-Interface gab

Probier dich als Anfänger so High Level wie möglich - ich hab z.B. mit BASIC angefangen. Heutzutage gibt es immer noch Freebasic, Java ist auch gut für Applet-Spiele etc.. Wenn du C++ wählst, musst du wirklich sehr viel drumherum machen. Das fängt beim Einrichten von Bibliotheken an (ist unter Windows kein Zuckerschlecken) und erstreckt sich über alle Bereiche: Operator Precedence, Pointer Arithmetik, Include Order Constraints, Link Order Constraints, Define Order Constraints.... eben alle Schwachstellen von C++, die irgendwie jede andere Sprache behebt.
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
Benutzeravatar
BeRsErKeR
Establishment
Beiträge: 689
Registriert: 27.04.2002, 22:01

Re: Einstieg in die Spielebranche als C++ Programmierer

Beitrag von BeRsErKeR »

antisteo hat geschrieben:... eben alle Schwachstellen von C++, die irgendwie jede andere Sprache behebt.
Und dafür andere Schwächen zur Verfügung stellt. ;)
Ohne Input kein Output.
Benutzeravatar
Raidenkk
Beiträge: 64
Registriert: 27.11.2011, 02:32
Echter Name: Kevin
Wohnort: Bergkamen
Kontaktdaten:

Re: Einstieg in die Spielebranche als C++ Programmierer

Beitrag von Raidenkk »

Ja BeRsErKeR das denke ich auch und ich werde es nach verfolgen :)
Ich schreibe gerade in C++ mit der SFML lib von SFML-dev.org ein kleines Tic Tac Toe spiel und werde mich dann steigern.
Das Tic Tac Toe spiel hatte ich vorher erfolgreich in einem kleinen Konsolen Spielchen ausprobiert um die Logik dahinter zu verstehen.
Wenn ich fertig bin werde ich es hier zum Testen zur Verfügung stellen ;)

MFG:
Raidenkk
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4254
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Einstieg in die Spielebranche als C++ Programmierer

Beitrag von Chromanoid »

BeRsErKeR hat geschrieben:
antisteo hat geschrieben:... eben alle Schwachstellen von C++, die irgendwie jede andere Sprache behebt.
Und dafür andere Schwächen zur Verfügung stellt. ;)
Ja, es gibt keine perfekte Sprache. Man muss sich entscheiden welches "Stärken/Schwächenprofil" für einen selbst bzw. das Projekt am besten geeignet ist. Ich entscheide mich dabei meistens gegen C++, aber da kommt es eben sehr auf den Anwendungsfall und die Erfahrungswelt des Entwicklers an. Ich selbst habe mit Pascal angefangen, eine sehr angenehme Lernsprache.
Benutzeravatar
Raidenkk
Beiträge: 64
Registriert: 27.11.2011, 02:32
Echter Name: Kevin
Wohnort: Bergkamen
Kontaktdaten:

Re: Einstieg in die Spielebranche als C++ Programmierer

Beitrag von Raidenkk »

Naja ich bin kein völliger Noob^^ ich kann wie gesagt mit den Grundsachen umgehen wie Klassen,Structruken, STL....
Und ich selber muss sagen das ich C++ am besten finde und das nicht weil es viel genutzt wird. ;)

Mir hat halt nur das Know how gefehlt, die Idee des umsetzens.
Wann ich z.b eine Klasse verwenden sollte und wann es reicht eine Klasse in die main.cpp zu stecken oder wann ich List/Vectoren etc nutzen sollte.
Aber ich glaube das wird sich mit der Zeit selbst beantworten.
antisteo
Establishment
Beiträge: 854
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Einstieg in die Spielebranche als C++ Programmierer

Beitrag von antisteo »

BeRsErKeR hat geschrieben:
antisteo hat geschrieben:... eben alle Schwachstellen von C++, die irgendwie jede andere Sprache behebt.
Und dafür andere Schwächen zur Verfügung stellt. ;)
Ja, aber solche Probleme wie Performance hat irgendwie jede Sprache. C/C++ hingegen ist mit seinen Wehwehchen ein ziemlicher Exot ist. Es hat irgendwie niemand das Include-System von C noch mal in seine Sprache aufgenommen. Naja und selbst wenn man eine Sprache ohne gewisse "doofe" Konzepte neu-konzipieren würde, könnte die genau so schnell wie C/C++ werden (D zum Beispiel)
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4254
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Einstieg in die Spielebranche als C++ Programmierer

Beitrag von Chromanoid »

@Raidenkk: Ja, Umsetzungsvermögen lernt man vor allem durch praktische Auseinandersetzung. Hilfreich ist dabei sicherlich zu schauen wie das jew. Problem von anderen gelöst wird. Das hat pUnkOuter ja schon anfangs empfohlen. Ich wünsche viel Erfolg bei deinen Lernprojekten. Eine Teilnahme an Wettbewerben wie http://www.ludumdare.com/compo/ ist sicher auch eine spannende lehrreiche Abwechslung.
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Einstieg in die Spielebranche als C++ Programmierer

Beitrag von dot »

antisteo hat geschrieben:
BeRsErKeR hat geschrieben:
antisteo hat geschrieben:... eben alle Schwachstellen von C++, die irgendwie jede andere Sprache behebt.
Und dafür andere Schwächen zur Verfügung stellt. ;)
Ja, aber solche Probleme wie Performance hat irgendwie jede Sprache. C/C++ hingegen ist mit seinen Wehwehchen ein ziemlicher Exot ist. Es hat irgendwie niemand das Include-System von C noch mal in seine Sprache aufgenommen. Naja und selbst wenn man eine Sprache ohne gewisse "doofe" Konzepte neu-konzipieren würde, könnte die genau so schnell wie C/C++ werden (D zum Beispiel)
Ja. Nur gibt es zu C++ ne riesige Codebase und Community, sehr sehr viele Leute die die Sprache sprechen und die Compiler bieten 20 Jahre Know-How und Produktiveinsatz. Ich seh keinen Grund das alles für eine geschmacklich leicht veränderte Syntax wegzuwerfen und erwarte ehrlich gesagt nicht, dass D gegenüber C++ jemals mehr als ein paar Prozent Land gutmachen wird...
Benutzeravatar
BeRsErKeR
Establishment
Beiträge: 689
Registriert: 27.04.2002, 22:01

Re: Einstieg in die Spielebranche als C++ Programmierer

Beitrag von BeRsErKeR »

antisteo hat geschrieben:
BeRsErKeR hat geschrieben:
antisteo hat geschrieben:... eben alle Schwachstellen von C++, die irgendwie jede andere Sprache behebt.
Und dafür andere Schwächen zur Verfügung stellt. ;)
Ja, aber solche Probleme wie Performance hat irgendwie jede Sprache. C/C++ hingegen ist mit seinen Wehwehchen ein ziemlicher Exot ist. Es hat irgendwie niemand das Include-System von C noch mal in seine Sprache aufgenommen. Naja und selbst wenn man eine Sprache ohne gewisse "doofe" Konzepte neu-konzipieren würde, könnte die genau so schnell wie C/C++ werden (D zum Beispiel)
Wenn man mit C++ vernünftig umgehen kann hat man keine Probleme mehr. Ich hatte auch noch nie irgendwelche größeren Probleme mit dem Include-System. Und Compiler gibt es doch genug für C++. IDEs benutzt ich eh nur selten, wenn ich z.B. gezwungen bin unter Windows zu entwickeln. Und der gcc sagt einem eigentlich immer genau was schief läuft und wo.
Ohne Input kein Output.
Benutzeravatar
dowhilefor
Moderator
Beiträge: 173
Registriert: 27.02.2009, 15:44
Alter Benutzername: 6SidedDice
Echter Name: Nico Probst
Wohnort: Bochum
Kontaktdaten:

Re: Einstieg in die Spielebranche als C++ Programmierer

Beitrag von dowhilefor »

Ich glaube in dem Thread gehts um Tipps für jemanden der C++ zum Spieleprogrammieren verwenden möchte, nicht um eine weitere Diskussion über Vor und Nachteile dieser oder jener Sprache.
Also beschränkt euch bitte darauf.
Und deswegen wollte ich euch fragen ob ihr für mich ein paar Tipps habt wie ich von einem 0,8,15 C++ Programmierer langsam zu einem Profi wird.
Als Tips kann ich dir aufjedenfall schon mal das mitgeben was du im Grunde auch bisher wunderbar beherzigt hast. Mach kleine einfache Schritte und bleib dran. :)
Tic Tac Toe ist schonmal eine sehr schöne Wahl, man kann hier schon einiges über States, Abläufe etc. lernen. Ich kann auch noch sehr Tetris oder eine der vielen möglichen Varianten empfehlen.
Gerade durch die Echtzeit komponente, im Gegensatz zum rundenbasierten TicTacToe, kommt nochmal eine ordentliche Schwierigkeit und Komplexität hinzu, die man meistern muss.
Aber wie gesagt, erstmal eines wenigstens im groben fertig machen ;)

Ich wünsch dir viel Erfolg und zeig uns was du gemacht hast! :)
Mein Gehirn besteht nur noch aus einem hash-index, ich weiss was ich kenn aber kenn nicht was ich weiss
Benutzeravatar
Raidenkk
Beiträge: 64
Registriert: 27.11.2011, 02:32
Echter Name: Kevin
Wohnort: Bergkamen
Kontaktdaten:

Re: Einstieg in die Spielebranche als C++ Programmierer

Beitrag von Raidenkk »

Ja ich werde hoffentlich Heute mit meinem Tic Tac Toe spiel fertig.

Zu Tetris muss ich ehrlich sagen das ich mir gerade nicht vorstellen kann wie es Programmiert ist aber ich denke durch ein bisschen Ausprobieren und Googeln wird das schon gehen. :)
Benutzeravatar
dowhilefor
Moderator
Beiträge: 173
Registriert: 27.02.2009, 15:44
Alter Benutzername: 6SidedDice
Echter Name: Nico Probst
Wohnort: Bochum
Kontaktdaten:

Re: Einstieg in die Spielebranche als C++ Programmierer

Beitrag von dowhilefor »

Tetris ist deswegen eine gute Aufgabe. Es ist gar nicht so schwer wenn du dir das Spielfeld als 2 Dimensionales Array vorstellst in dem du bspw. IDs speicherst 0 = leer, 1 = roter block, 2 = blauer block etc. Dann noch Bewegung, der fallende aktuelle Stein und am Ende immer das obligatorische testen nach gelöschten Reihen und das Aufrücken der darüber liegenden :) Klar kann man das noch auf viele weitere Arten lösen. :)
Mein Gehirn besteht nur noch aus einem hash-index, ich weiss was ich kenn aber kenn nicht was ich weiss
Antworten