Sehr geehrtes Forum,
ich habe ein paar Fragen die mir auf dem Herzen liegen, es wäre schön wenn Ihr mir helfen könntet.
Also ich beschreibe mal kurz meinen bisherigen "Werdegang".
Leider hatte ich mir nie wirklich Gedanken über meinen beruflichen Weg gemacht und dachte, dass eine halbwegs vernünftige Ausbildung reicht um den Lebensweg zu bestreiten. Egal ob man Spaß daran hat oder nicht.
Seit meiner Kindheit habe ich gerne Computerspiele gespielt. Damals noch Gameboy/N64 etc. Als ich dann meinen ersten PC hatte, habe ich unzählige Super Nintendo auf einem Emulator gespielt und so weiter.
Dementsprechend kam auch mal der Gedanke, sich in diese Richtung beruflich zu erkundigen. Aber irgendwie ist an mir die Ausbildung als Fachinformatiker komplett vorbeigegangen und ich dachte man müsste auf jedenfall Studieren und das hatte ich mir nicht zugetraut. Das war ca. mit 15 nach meinem Hauptschulabschluss. Als ich dann die mittlere Reife fertig hatte
(mit 20, da ich nach der Hauptschule mich nicht um eine weiterführende Schule gekümmert hatte,
musste ich 1 Jahr auf dem BVJ parken und noch ein Jahr auf die mittlere Reife, da sonst das Zeugnis nicht gut gewesen wäre..soviel dazu)
habe ich mich zum einem auf Ausbildungsstellen beworben und auf ein Berufskolleg für Elektrotechnik und Informatik. Ich bekam dann ein Praktikum als Bürokaufmann, welches letztendlich in eine Ausbildung mündete die ich jetzt auch in der Tasche habe. Vor der Ausbildung kam parallel noch die Zusage von dem Berufskolleg, aber da ich langsam schauen musste wo ich bleibe, hatte ich mich fuer die Ausbildung entschieden. Das ging auch alles gut und ich wurde mit einer kleineren Verzögerung, bei der selben Firma fest angestellt und habe dann fast 3 Jahre dort gearbeitet. Allerdings hat mir die Arbeit nicht gut getan und musste letztendlich auf Grund von Gesundheitlichen Problemen kündigen. Da sich das angebahnt hatte, machte ich mir selbstverständlich Gedanken über Alternativen und kam wieder auf die Informatik. Ca. 2 Monate vor dem Ausscheiden hatte ich mir dann das unten erwähnte Buch zugelegt und es angefangen zu lernen.
Mein Plan war es dann, in der Zeit in der ich Arbeitslos war sich entweder als Fachinformatiker in Ausbildung zu bewerben oder auf meinen alten Beruf, obwohl ich das ehrlich gesagt ungern gemacht habe, da ich mittlerweile eine tiefen Gräul auf meinen alten Beruf hege. An für sich ist der Beruf nicht so schlimm aber die konkrete Arbeitssituation geht mir kurz gesagt auf den Zwirn. Desweiteren sehe ich in mir viel mehr Produktivität wenn ich etwas mache, dass mir auch Spaß macht.
Nun zurück zur Informatik. Bewerbungen als Fachinformatiker zeigten keinen Erfolg, es gab ein paar Bewerbungsgespräche, aber nichts weiterführendes. Währenddessen hatte ich mir ein paar Bücher zugelegt. Über die Programmiersprache C von Jürgen Wolf. Eine wirkliche Orientierung hatte ich nicht. Ich hatte von C mal gehört, da es ja auch recht häufig in der Spielentwicklung verwendet wird. Neben dem Buch hatte ich mir viel auf Youtube angeschaut und ein bisschen auch auf Udemy mich rumgetrieben. Gegen Ende des Jahres habe ich in QT dann ein Programm geschrieben, welches als eine Art Schnittstelle für Kundenreklamationen bei einen Möbelhaus fungieren hätte können. Ich wusste aber das meine Kenntnisse noch viel zu dürftig waren um es als richtige Software irgendwie an den man zu bringen, aber als Ziel hat es gereicht.
Das Programm hat halbwegs Funktioniert aber ich hatte damals noch keine Ahnung von Lizenzen und habe mir auch bzgl. Release und Debug Version zwar etwas angeschaut, es aber noch nicht wirklich verstanden.
Ich versuche jetzt ein bisschen Abzukürzen.
Mein nächstes Projekt war dann ein Spiel(Buch Heiko Kalista C++, Youtube, SFML), welches ich bis Heute programmiere. Mittlerweile bin ich ironischer weise auf dem Berufskolleg auf dem ich mich vor zehn Jahren beworben habe und bin nächstes Jahr Technischer Assistent.
Nun etwas kurz zu meinen Programmier "Künsten";
Es fällt mir wirklich schwer mich einzuschätzen, in der Schule kann ich mich natürlich nicht mit den anderen Schülern vergleichen. Wir benutzen in der Schule Java, Ohne zu lernen habe ich in Praktisch und Theoretisch eine 1 obwohl ich mir davor Java noch nie angeschaut hatte(Ich schätze da hat mir der Einstig bei C ganz gut geholfen). Gegen Ende des Jahres hat unser Lehrer dann mit 2D Kollisionen angefangen. War auch sehr easy da ich es schon mehrmals in meinem Spiel durch hatte. Am besten gefällt mir wirklich C++. Mein Spiel ist in C++ und SFML geschrieben.
Da ich aber irgendwie das Gefühl hatte oder immer noch habe, dass es SFML mir viel zu leicht macht, habe ich mir zwischendurch ein ein wenig OpenGL angeschaut. Bzw. mit Glew ein bisschen rumgespielt. Aber nichts großartiges. Shader habe ich mittlerweile nach dem 3ten Anlauf verstanden und kann halbwegs damit umgehen. Bei C++ gehts bei mir bis zu den Templates. Also OOp kann ich,Vererbung, STL kenne ich und ist Super.
Shared Pointer/Unique Pointer weiss ich zu benutzen. Const habe ich mittlerweile auch kapiert. Streams verstehe ich auch, bzw. hatte ich in der Schule in Java mit einem Klassenkameraden einen kleinen Netzwerkchat programmiert in dem ich "string" Streams verwendet habe. Bzgl. Filestreams habe ich mir für mein Spiel eine Klasse geschrieben die meine Ressourcen Binär speichert und auch wieder lesen kann.
Entschuldigt wenn das doof ist wie ich das alles beschreibe aber ich weis nicht wie ich sonst beschrieben soll was ich kann
MFC habe ich nur den Teil aus dem Buch von Heiko Kalista gemacht
. SDL habe ich dementsprechend auch durch aber habe nichts damit gemacht nur ein kleines Pong und das Beispiel aus dem Buch abprogrammiert.
Algorithmen kenne ich leider nicht viele. Die üblichen halt. Bubble,Small, Selection-Sort die könnte ich auch locker runterprogrammieren aber ich denke das ist nichts besonderes.
AStern habe ich mir zu Gemüte geführt und kann den jetzt auch locker von der Hand. Zumindest in 2D. Also ich denke in 3D hat der Wegpunkt dann halt noch die Z Koordinate, bloß ist dann die Frage wie groß dann das "Feld" ist. Die alternative wären dann Quader die in alle Richtungen testen. Aber da dies ja viel mehr Leistung benötigt, sollte man vielleicht an den Quadtree denken. Den habe ich mal angefangen aber hab es noch nicht verstanden. Tilemaps habe ich gefressen. Verkettete Listen oder Binäre Bäume sind mir auch geläufig. Erst vor kurzem habe ich einen Binary Heap für meinen AStern Algorithmus verwendet. Aber den muss ich noch auswendig lernen.
Mittlerweile kann ich auch ziemlich gut mit Microsoft Visual Studio umgehen. Libs hinzufügen, Breakpoints benutzen, Leistungsanalyse mit dem Profiler, ich verstehe den Debugger in 95% der Fälle.
Ansonsten könnte man noch erwähnen das ich viel mit Asesprite mache, also das Programm ist wirklich super und ich kann es auch gut benutzen. Nur leider bin ich kein Künstler. Also für 32x32 Feuergolem Gegner oder mit viel Anstrengung ein CharacterSpritesheet mit unrealistischer Belichtung reicht es.
Von der Schule nehme ich von diesem Jahr das bisschen Java mit. In "Computer" haben wir viel mit Linux gemacht. Also was heißt viel, uns wurde gezeigt wie man die Virtualbox benutzt, Festplatten einhaengt, Festplatten verschlüsselt, Benutzer einrichten, Rechte, Server einrichten mit Https und noch ein paar andere Sachen. Das ist viel aber irgendwie hätte ich mir Tiefgang gewünscht. Aber vielleicht nächstes Jahr. Dann habe wir noch HTML und CSS gemacht. Nächstes Jahr kommt dann noch PHP und SQL hinzu. SQL kenne ich schon ein wenig.
Nun zu meinen Fragen.
1.
Die nächsten Schritte, Ausbildung ja oder nein
Leider bin ich jetzt schon alt (29 Jahre) und würde zwar für meinen Traumberufsweg zur Not auch noch eine Ausbildung zum Fachinformatiker machen.
Allerdings bin ich fast der Meinung, dass ich mittlerweile es soweit drauf habe, dass ich es vielleicht als Junior Entwickler zumindest versuchen könnte. Zumal einige Lehrer bei uns an der Schule meinen, dass wir Schultechnisch bzgl. Programmieren, genau das selbe machen wie die Fachinformatiker. Bloß die haben dann je nach Firmenspezifikation eine bestimmte stärke.
Und den BWL teil vom Fachinformatiker habe ich von meiner Kaufmann Ausbildung bereits gedeckt.
Denkt Ihr ich hätte die Chance irgendwie ohne noch eine Ausbildung zu machen, ein Stelle als Softwareentwickler oder optimaler weise als Spielentwickler zu bekommen?
Wenn ja was wären die nächstbesten Schritte? 1 Jahr habe ich noch zeit um Sachen zu lernen. Ich hätte mich jetzt zwischen 3 Sachen Entschieden.
1. Ein zweites Spiel komplett in OpenGl evtl. 3D um sich mit 3D Grafikprogrammierung schon einmal anzufreunden.
2. Mit Unity oder Unreal anfreunden und da ein Spiel machen. Hat den Vorteil das es sehr viel Abnimmt aber ich denk mir dann immer, dass ich die Finger von Engines lassen sollte solange ich nicht komplett den Kern verstehe. Also OpenGL oder DirectX.
3. Spielentwicklung erst einmal zurückstellen und in Richtung MFC Windows Programmierung gehen und auch in Richtung Hacking. Also Trainer/Addons/Hacks für Spiele Schreiben. Ich habe schon ein bisschen Assembly gelernt und kann Cheat Engine & OllyDB benutzen.
Jetzt erst einmal wollte ich schauen das ich mein Spiel halbwegs fertig bekomme damit ich es als Repertoire auf Github hochladen kann. Also es ist schon hochgeladen aber privat.
Und da kommen wir zur nächstens Frage. Die eigentlich nicht direkt ins das Forum passt. Ich hätte es vielleicht doch in 2 Threads aufteilen sollen. Entschuldigt.
2.
Unter Welcher Lizenz stelle ich mein Spiel mit Texturen die mit CC Lizenz versehen sind
Ich habe mich schon mehrmals über Lizenzen belesen aber bekomme es trotzdem nicht auf die Reihe bzw. habe ich Angst das ich etwas falsch mache.
Also die Grafiken/Sounds etc. in meinem Spiel sind entweder von Opengameart.com oder von mir selbst versucht zu zeichnen oder produziert.
Ich habe extra geschaut das bei den Grafiken von OpengameArt alle Texturen mit der CC Lizenz versehen sind. Die CC ist die "schwächste" Lizenz von allen, wenn ich das richtig verstanden habe. Also ich kann mit den Texturen machen was ich möchte, auch einfach nehmen und verkaufen Theoretisch. SFML dachte ich wäre GPL oder LGPL aber als ich eben nachgeschaut habe, sah ich die zlib/libpng License. Kannte ich bisher noch nicht aber scheint auch ziemlich frei zu sein.
Nochmal kurz zur LGPL und GPL. Qt ist zum beispiel unter GPL zu haben. Wenn ich ein Programm unter GPL herausbringe, dann kann ich es verkaufen aber muss Code öffentlich machen und muss Dynamisch linken. Hätte QT LGPL wäre Linken egal und Code müsste auch nicht öffentlich sein. Stimmt das so halbwegs?
Und was muss ich jetzt genau machen, wenn ich mein Spiel auf Github hochlade? Also ich hätte mir jetzt eigentlich eine LGPL eines anderen Spieles gesucht und die auf mich angepasst und die als Textdatei mit hochgeladen. Da SFML jetzt aber unter eine anderen Lizenz läuft müsste ich mir diese zlib nochmal durchlesen.
Das ganze betrifft das Spiel aber nur Codetechnisch, wie sieht es mit den Texturen aus? Also da ich überhaupt froh bin überhaupt etwas zum zeigen auf Github zu haben, wäre es mir eigentlich egal. Allerdings habe ich mir bei manchen eigenen Texturen schon mühe gegeben und ich würde mich schon ärgern wenn die jemand im Unity Store vertickt weil ich die falsche Lizenz genommen habe.
Wie sicher ich mich dahingehend ab? Zumal ich um dem vorzubeugen alle meine Texturen Binär als Datei beifüge, somit könnte man sich die Texturen nur mit einem gewissen Know How rippen.
3.
Quantität oder Qualität beim Repertoire
Es ist ja, wie ich gehört habe, gut ein gewissen Maß an Projekten auf Github zu haben. Wäre es besser viele kleine Programme zu haben oder z.B 2 halbwegs große Spiele?
Leider ist bei mir die Github-Aktivität erst in den letzten Monaten ein wenig angestiegen, davor habe ich es gemieden mit Github zu arbeiten. Ist das schlimm?
Und zum Schluss hätte ich euch liebend gerne etwas von meinem Spiel gezeigt. Aber das ist wie gesagt bis jetzt nur Privat auf Github da es noch keine Lizenz hat.
Es ist ein Kachelbasiertes Topdown 2D RPG Game. Die Beschreibung trifft es ganz gut. Bis jetzt kann man einige Zauber wirken. Feuerball Blizzard etc, Level aufsteigen, Stärker werden, Verschiedene Waffen anziehen die auch sichtbar sind, Gegner Kaputt machen, für Atmosphäre springen ein paar Katzen Vögel und Schmetterlinge manchmal in der Gegend rum und Musik hat sich auch schon eingefunden.
Entschuldigt die lange Einleitung, ich hoffe ihr langweilt euch nicht bis zum Fragen Teil :/. EDIT: Naja ein Screenshot konnte ich noch kurz machen :p. Ist nichts besonderes aber ja
Der Charakter hat gerade die Augen zu, nicht wundern
. Und es ist auch nicht üblich das bei mir Funtkionen z.B Collide2 heißen. Die Entity Class muss noch noch komplett überarbeitet werden...
return 1;