Jump to content
Unity Insider Forum

C# lernen & anwenden?


w0rks

Recommended Posts

Hallo wiedermal ◠‿◠

 

Ich habe ein ernsthaftes Problem dass mich jetzt schon seit Jahren beschäftigt, . . und das ist C# in Unity.

Ich versuche seit 2018 (seit dem ich Unity kenne) C# zu lernen um ein eigenes Spiel-Spiele entwickeln zu können. Allerdings weiß ich nicht wie ich es lernen soll.

Ich habe mir damals viele Videos auf Youtube angesehen & mir auch ein Buch speziell für Unity gekauft um es zu verstehen & zu lernen (zusätzlich nochmals ein C#-Buch für 50€). Ich versuche es jedes Jahr auf neue mich ernsthaft hinzusetzen & mich damit auseinander zu setzen. Aber jedes mall aufs neue verstehe ich nigs... & kann auch nichts eigenes wirklich machen.

Es sind immer nur Bruchstücke die ich verstehe aber nie selbstständig anwenden kann.

Seit Oktober bis jetzt versuche ich es wieder mit Hilfe eines Buches (siehe Bild) es zu verstehen. Aber dieses Buch ist auch nicht wirklich Hilfreich weil es will dass ich etwas nachmache / abschreibe & dann mir die Erklärung für das geschriebene danach lese,.. aber irgendwie kann ich daraus nichts lernen...

Für dieses Spiel was ich mache, kommen mir nur Tutorials zur Hilfe für Sachen die ich ungefähr so machen möchte aber nie wirklich dass was ich letztendlich geplant habe & will. Und Tutorials sind 0% Hilfe da ich daraus nichts lerne & nur nachmache... (mit glück habe ich eigene Skripte mal zum laufen gebracht ohne sie wirklich nachvollziehen zu können & denke mir so danach,.. " Ok,...gut 😕 ")

In denn vergangen Jahren habe ich schon öfters gedacht ob ich wirklich Dumm bin dass ich es nicht verstehe & bin immer mehr der Überzeugung dass es wirklich so ist.

Ich weiß wirklich nicht was ich genau Falsch mache, da ich es nicht immer gleich sondern anders probiere es zu lernen & dennoch nicht funktioniert : /

Ich denke immer nur wie das andere verstehen können, um etwas eigenes daraus zu machen...

 

 

Wie kann man C# lernen / verstehen?

IMG_20230110_140536.jpg

IMG_20230110_140822.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Tutorials variieren stark in dem, was sie tun. Ich hab da vor vielen Jahren mal diesen Post zu geschrieben, der ein bisschen damit zu tun hat. Es gibt so Tutorials, die ich für meinen Teil als weniger wertvoll erachten würde. Die zeigen dir einfach einmal, wie man eine bestimmte Sache macht. Bessere Tutorials erklären dir dazu noch das Wie und vor allem das Warum.

Die erste Sorte Tutorials finde ich deshalb weniger gut, weil sie eine bestimmten Fähigkeit vom Leser erfordern. Der Leser muss in der Lage sein, ein spezifisches Beispiel zu nehmen, die Konzepte dahinter selber (!) zu erkennen und diese dann abstrakt zu verstehen. Wenn du also liest, wie man einem Knopf in der Szene beibringt, eine bestimmte Tür zu öffnen, dann erkennst du mit diesem Skill ganz schnell, dass du dasselbe Konzept auch anwenden kannst, um eine Fernsteuerung zu bauen, die der Spieler in die Hand nehmen kann, um damit ein Auto fernzusteuern.

Diese Fähigkeit ist bei Leuten aber unterschiedlich stark ausgeprägt; und ich bin davon überzeugt, dass man sie trainieren kann. Ich glaube, dass wenn du das Gefühl hast, "dumm" zu sein, dann liegt das daran, dass du diese Fähigkeit nicht oder nicht stark ausgeprägt besitzt. Ich würde jemanden dann aber nicht als dumm bezeichnen. Gibt einen Haufen Arten, wie man schlau sein kann. Und das ist nur eine davon.

Deswegen finde ich Tutorials besser, die das "Warum" noch mit dabei haben. Wer das nicht alles selber sofort versteht, kann die zugrunde liegenden Konzepte besser erkennen, wenn sie erklärt und nicht nur über Beispiele vorgeführt werden.

Davon abgesehen ist es für dich natürlich besser, an dir selbst zu arbeiten und nicht an allem um dich herum. Wenn du also keine Tutorials, Bücher oder anderes hast, mit denen es richtig Klick macht, dann versuche, diese Fähigkeit zu verbessern. Da kannst du, wie @gombolo sagt, einfach immer weiter programmieren. Setze dir selber Ziele. Oder mache Coding Challenges, z.B. hier.

Programmieren lernen ist etwas, das deine grundlegende Denkweise beeinflusst. Du gehst als jemand, der diese Fähigkeit hat, mit einer ganz anderen Logik an die ganze Welt heran als jemand, der anders denkt. Sein Gehirn so umzupolen ist ein Prozess, der sehr lange dauern kann. Wenn du das wirklich können willst, darfst du dich von der zähen Reise dahin nicht entmutigen lassen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das große Problem am "Programmieren lernen mit Unity" ist, dass du dabei 2 Dinge lernen musst/willst.

Das Eine ist das Programmieren selbst. Also quasi eine Sprache zu erlernen. Aber eben nicht nur die Vokabeln sondern auch die richtige Anwendung.
Das Andere ist die Besonderheit in Unity, die Objekte, Module und Funktionen zu steuern und Informationen über sie abzufragen.

Wenn man sich Tutorials für Unity anschaut, dann wird mehr oder weniger das Können der Programmiersprache vorraus gesetzt und es geht meist nur um die Besonderheiten in Unity. Diese sind zwar alle mit der Programmiersprache verzahnt, aber sie sind eben Obendrauf! Wenn man das Programmieren nicht verstanden hat, kommt man mit den Besonderheiten in Unity nicht weit.

Deswegen würde ich empfehlen entweder erstmal nur die Grundlagen des Programmierens zu lernen (unabhängig von Unity). Oder aber mit Unity zusammen, aber dann (egal ob das Projekt einem gefällt oder nicht) nach jedem Schritt zu schauen, ob man verstanden hat was da passiert.
Einfach mal eine ähnliches Szenario aufbauen und das Gelernte gleich anwenden. Auch wenn es erst einmal sinnlos erscheint.
Schritt für Schritt!
Aber das musst du machen! Es einfach nur abtippen um dann zu sehen, dass es bei dir genauso funktioniert reicht nicht. Du musst es zerlegen und analysieren.

Es wird dann bestimmt irgendwann Klick machen. Und dann ist alles klar!
Es wird immer Dinge geben, die du erst mal nicht verstehst. Aber du wirst mit jedem Mal schneller zur Lösung kommen.
Und dann kannst du das Wissen auf alles was du willst anwenden.
Du bist bestimmt nicht dumm. Es hat einfach nur noch nicht "klick" gemacht!

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 21 Stunden schrieb malzbie:

Deswegen würde ich empfehlen entweder erstmal nur die Grundlagen des Programmierens zu lernen (unabhängig von Unity).

Das stimmt dass habe ich mir auch schon öfters gedacht dass außerhalb von Unity mall zu versuchen. 👍

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb w0rks:

Das stimmt dass habe ich mir auch schon öfters gedacht dass außerhalb von Unity mall zu versuchen. 👍

Empfehle ich dir nicht...sicher hat Unity so seine Eigenheiten, aber es ist für dich eine Plattform auf dem du aufbauen kannst. 

Erstelle doch einfach mal ein 3D Objekt und bewege es mit den Tasten

Dann bewegst du es z.B. über Sin/Cos

Dann fängst du an mit Arrays und erstellst GameObjekte die in diesem Array gespeichert werden

Dann gehst du das Array durch und löscht das Objekt aus dem "Spielfeld" 

usw...

So lernst du C# und gleichzeitig mit Unity umzugehen...

ist meine Meinung...ich empfehle jedem Anfänger mal Snake zu programmieren. Du hast da so ziemlich alles was ein Spiel ausmacht. Ein Spielfeld...Futter für die Schlange...die Schlange die sich bewegt. Mache dir Gedanken wie der Computer es schafft die Schlange zu zeichnen und zu bewegen....einfach mal anfangen. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hast du denn noch anderweitig irgendwie mit Programmierung zu tun, außerhalb des Selbststudiums in den eigenen 4 Wänden?

Eine der wie ich finde wichtigsten Dinge beim Lernen ist oftmals der Input und Austausch von und mit anderen Leuten.

Ich hatte beispielsweise die letzten 2 Jahre meines Studium hobbymäßig versucht, mir Programmieren beizubringen. Aber so wirklich Klick hat es erst gemacht, als ich meinen ersten Job hatte und mit Leuten zusammenarbeiten konnte, die mehr Erfahrung als ich hatten. Sowohl sich den Code anderer anschauen und dazu Fragen stellen zu können, als auch Feedback zum eigenen Code zu bekommen, hat mich unglaublich schnell weiter gebracht.

In diesem Sinne finde ich auch den Vorschlag mit dem Game Jams nicht schlecht - soweit ich weiß schwören viele Leute darauf dort mitzumachen, selbst wenn man noch nicht so viel Erfahrung hat.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also erst mal die Grundlagen lernen und dann Projekte angehen und "VERSAGEN". Will ehrlich sein. Dafür reichen bereits die Youtubevideos heutzutage. Bücher sind eher fürs Nachschlagen gut.

Durch Versagen habe ich mehr gelernt und bin da wo ich heute bin. Beispiel, hätte ich kaum Performanceprobleme, hätte ich nie erfahren, was Performanceprobleme verursacht. Probleme beim Skalieren. Also mein Code war so schlecht, dass ich nicht erweitern konnte. Daher rate ich auch vielen ab gleich mit großen Spielen anzufangen. Immer kleines bissel anfangen und Features einbauen. Und, irgendwann merkt man schon bei Kleinigkeiten, dass es nicht so schön ist und man versucht das besser zu machen. Und auf Dauer wird man immer und immer besser darin.

Beispiel was klein ist. Ein Spiel wie Mario. Space Invaders. Breakout. Solche Spiele sind sehr simple, aber haben potenzial sehr coole Features zu bekommen. Beispiel

  • Mario
    • Mehrere Levels
    • Speicherpunkte
    • Gegner
    • Bosse
    • Punkte
    • Leben und Respawnsystem
    • Missionen und Events
    • Procedurales Level System (eher nicht für Anfänger gut, aber man würde viel lernen)
  • Space Invaders
    • Gegnergruppen
    • Bosse
    • Events
    • Waffenupgrades / Powerups
    • Inventarsystem
    • Coolere Effekte und Design
    • Levels
  • Breakout
    • Bewegende Blöcke
    • Mehrere Bälle
    • Powerups

Und generell jeder könnte Multiplayer bekommen. Multiplayer ist nicht immer einfach :D.

vor 5 Stunden schrieb Antragon:

Hast du denn noch anderweitig irgendwie mit Programmierung zu tun, außerhalb des Selbststudiums in den eigenen 4 Wänden?

Eine der wie ich finde wichtigsten Dinge beim Lernen ist oftmals der Input und Austausch von und mit anderen Leuten.

Ich hatte beispielsweise die letzten 2 Jahre meines Studium hobbymäßig versucht, mir Programmieren beizubringen. Aber so wirklich Klick hat es erst gemacht, als ich meinen ersten Job hatte und mit Leuten zusammenarbeiten konnte, die mehr Erfahrung als ich hatten. Sowohl sich den Code anderer anschauen und dazu Fragen stellen zu können, als auch Feedback zum eigenen Code zu bekommen, hat mich unglaublich schnell weiter gebracht.

In diesem Sinne finde ich auch den Vorschlag mit dem Game Jams nicht schlecht - soweit ich weiß schwören viele Leute darauf dort mitzumachen, selbst wenn man noch nicht so viel Erfahrung hat.

 

Es kommt drauf an. Ich kann ja dazu meine Erfahrung sagen. Ich habe nie Studiert (außer 2-3 Monate ^^ und dann abgebrochen) und sogar keine Ausbildung gemacht.

Ich habe mit Programmierung ca. in 2004 angefangen und mir selbst beigebracht und damals gab es keine Tutorials wie heute. Kaum Youtube Videos (glaub youtube gab es damals nicht mal). Damals musstest du VIEL Geld ausgeben um zu lernen. Ich hab dennoch geschafft kostenlos zu lernen. Mein großes Projekt begann damit, als ich eine Webseite in PHP schrieb, was wie Facebook ähnlich aufgebaut war. (Ja.. zeitlich wurde tatsächlich (The)Facebook entwickelt und wir beide hatten die selbe Idee. Ich hab ne Seite geschrieben für Schüler und meine Umgebung, die sich dort finden und sich anschreiben können. So ne Art Social Media / Single Börse. Hätte ich nur gewusst, dass man damit Geld machen kann xD.) Also programmieren konnte ich dann schon so langsam bereits gut, aber immer noch fehlte strukturiertes Vorgehensweise.

Falls das interessiert, so sahen sie aus:

https://myworks.hardcoded.mywire.org/statics/images/php/fd_1.png
https://myworks.hardcoded.mywire.org/statics/images/php/fd_2.png
https://myworks.hardcoded.mywire.org/statics/images/php/fd_3.png

Durch das Projekt habe ich viel dazu gelernt, wie man es nicht machen sollte, wo meine Sicherheitslücken waren usw., denn die Seite war definitiv hackbar, hehe. Irgendwann begann ich mich fürs Hacken in Spielen zu interessieren. Fing mit AutoIT und C++ an. Ich habe tatsächlich für Counter-Strike Wallhacks geschrieben, aber nur für mich persönlich ab und zu verwendet. Mir ging nur ums lernen. Tatsächlich funktionierte es nach Jahren immer noch. Ich riskierte, aber hab kein Bann bekommen. Vielleicht, weil ich ganz kurz benutzt habe. Hier, muss man gesagt haben, war ich immer noch Anfänger. Ich konnte kaum ohne nachzulesen weiterkommen.
Ebenfalls wuchs dadurch meine Interesse für Bots und Automation. Mochte immer mehr alles zu automatisieren. Egal am PC oder in Spielen (auch, wenn es laut AGB nicht darf). Das tat ich meistens mit AutoIt

https://i.imgur.com/2MoD3rZ.png <- bei dem Bild sieht man sogar wie ich beschreibe, dass ich ich Captcha Codes automatisch löse (hier war ich aber bereits in Pro ^^).

Nach der Webseite Sache in der schulischen Ausbildung war ich damals in der Programmierstunden der "Beste", weil ich einfach zu Fortgeschritten war. Das war 2011 oder so. Trotz des "schwänzens" hat mir der Lehrer eine 1 gegeben, weil er einfach gemerkt hat, dass ich mich zu sehr langweile.

Nebenbei liebte ich in Garrysmod mit Expression 2 zu programmieren, weil du in einem Spiel, Multiplayer programmiert hast und gleichzeitig Visual gesehen hast. Beispiel eine Autosteuerung, Flugzeug oder visuelle Effekte, Physik, Züge, Ampel, Simulationen usw. War mega nice.

Mein "richtiges" Lernen kam mit C#, denn vorher hab ich kaum über Architektur und andere Dinge bedenken müssen.
Kann nicht sagen, wann genau ich C# anschaute, aber ich interessierte mich für Spieleentwicklung, aber mit C++ fand ich das irgendwie nicht so geil. Entdeckte irgendwann XNA was in C# war damit fing es an. Ich mochte direkt C# und wusste, dass diese Sprache mein Mainsprache sein wird.

Entdeckte dann Unity ca. in 2012-2013. Nebenbei programmierte ich noch in Lua und habe sogar Aufträge aus dem Internet angenommen. Nach Studiumabbruch ab 2014 war ich selbstständig, denn ich konnte hier bereits richtig gut programmieren, aber Vorgehensweise war noch nicht gut. Sprich, wie sollte alles aufgebaut werden. Skalierbarer usw. Ab hier wurde es aber ernst, weil ich unternehmerisch vorging. 2016 wurde ich dann professionell mit C#, weil ich nun fast alles beherrschte, wie man auch als Developer sein muss, weil ich so viel ausprobiert habe und immer wieder neu und neues angefangen habe und so viel dazu gelernt habe. Das war eigentlich Mega boost kann man sagen und hab mich sehr viel für Dinge interessiert, wie man etwas Aufbaut und Techniken ausprobiert. In Discord sieht man dazu oft was von mir. Theoretisch kann man sagen bin sogar Software Ingenieur. Das heißt, war bereits in dem Level, wo ich Leute sogar beraten kann und sagen kann wie etwas aufgebaut werden muss. Heutzutage könnte ich ein Unternehmen beraten, wenn es in Unity :D. Naja bissel tue ich das ja tatsächlich.

Fazit
Was ich damit sagen möchte ist, dass man selbstständig auch gut werden kann. Man muss oft versagen und aus den Fehler lernen, dass macht dich zum "pro". Zum Beispiel hab ich neulich mit Teilzeit angefangen, weil ich unternehmerisch mir neue Erfahrung aneignen wollte. Dort arbeiten Leute die aus dem Studium kommen oder noch Studenten sind. Der Code ist in der Qualität, wo ich 2013/2014 programmiert haben. Also Grotten schlecht. Überall Singletons, Manager und andere Dinge. Vieles in eine Klasse reingepackt. Und sie selbst erkennen bereits, dass nun bald "neu" programmieren müssen, aber geht nicht. Es ist bissel "zuspät". Also das Lernen wie man programmiert ist einfach, aber die Umsetzung von Ideen dafür braucht man etwas länger. Man muss tatsächlich viele praktische Erfahrung haben und sehr oft erkennen, dass hier und da was falsch läuft um nächstes mal das zu vermeiden.

Disclaimer: Kann sein, dass nicht alle Jahreszahlen stimmen. Ist einfach zulange her.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 13.1.2023 um 03:16 schrieb MaZy:

Fazit
Was ich damit sagen möchte ist, dass man selbstständig auch gut werden kann. Man muss oft versagen und aus den Fehler lernen, dass macht dich zum "pro". Zum Beispiel hab ich neulich mit Teilzeit angefangen, weil ich unternehmerisch mir neue Erfahrung aneignen wollte. Dort arbeiten Leute die aus dem Studium kommen oder noch Studenten sind. Der Code ist in der Qualität, wo ich 2013/2014 programmiert haben. Also Grotten schlecht. Überall Singletons, Manager und andere Dinge. Vieles in eine Klasse reingepackt. Und sie selbst erkennen bereits, dass nun bald "neu" programmieren müssen, aber geht nicht. Es ist bissel "zuspät". Also das Lernen wie man programmiert ist einfach, aber die Umsetzung von Ideen dafür braucht man etwas länger. Man muss tatsächlich viele praktische Erfahrung haben und sehr oft erkennen, dass hier und da was falsch läuft um nächstes mal das zu vermeiden.

Disclaimer: Kann sein, dass nicht alle Jahreszahlen stimmen. Ist einfach zulange her.

MaZy, Danke fürs schreiben 👍

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 12.1.2023 um 20:21 schrieb Antragon:

Hast du denn noch anderweitig irgendwie mit Programmierung zu tun, außerhalb des Selbststudiums in den eigenen 4 Wänden?

Eine der wie ich finde wichtigsten Dinge beim Lernen ist oftmals der Input und Austausch von und mit anderen Leuten.

Nein leider nein,.. Reines Selbststudium😔 mit Projekten wo ich meine dass die was werden könnten..

Das Pixel Art Projekt an dem ich aktuell dran bin ist schon das insgesamt 4te große Projekt dass ich vor habe.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 12.1.2023 um 17:53 schrieb Lewo:

Das Buch von Rheinwerkverlag habe auch, fand es allerdings nicht wirklich spannend.

https://learn.unity.com/pathway/junior-programmer

fand ich allerdings recht hilfreich. Das fängt praktisch bei Null an, arbeitet sich durch diverse Themen und beinhaltet die ganzen Assets.

Das finde ich sehr interessant 👍

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...