Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

31

28.02.2018, 10:32

Ich empfehle auch dich erstmal mit "normalem" C# zu beschäftigen, bevor du dich mit dem Unity-Zeug auseinandersetzt.

Tiles

Treue Seele

Beiträge: 168

Wohnort: none

  • Private Nachricht senden

32

28.02.2018, 10:57

Zitat

Das ist doch Quatsch. Wo steht C# dir in Unity denn im Weg? Das einzige was du beachten musst ist die Sprachversion von C#. Ansonsten kannst du da alles machen was du möchtest. Tiles, du fängst jedes mal mit sowas an. Ich möchte einfach mal ein Beispiel haben wo es dir im Weg steht Ahnung von C# zu haben wenn du mit Untiy entwickelst.


Tja, da sind wir wohl wieder an dem Punkt an dem wir schon mal waren :)

Ich habe jahrelang mit Unity gearbeitet. Ich kenne die Kiste. Du ganz offensichtlich nicht. Sonst würdest DU nicht jedesmal mit sowas anfangen. Wenn du schon Ahnung hast mag das ne andere Kiste sein. Aber erst mal C# zu lernen wenn du mit Unity ein Spiel entwickeln willst ist einfach ein beschissener Rat. Das kostet dich nur unnötig Zeit und Energie, und verbiegt dich entsprechend falsch.

Ein C# Programmierer wird aus Gewohnheit so einiges zu Fuss erledigen für das es in Unity wunderschöne vorgefertigte Sachen gibt. Stichwort Inspector. Tausendmal gesehen, tausendmal den Kopf drüber geschüttelt. Programmierer wollen eben alles per programmieren lösen. Das ist eine der bad Habits die ich meine.

Und noch ein unbequemer Fakt: Wenn du erst C# lernst wirst du 99% Zeug lernen das du niemals in Unity benötigen wirst. Weil du in Unity nur einen klitzekleinen Bruchteil der C# Funktionalität brauchst. Welche Teile das sind weisst du aber vorher nicht. Also gehst du auf dem Weg einen riesen Umweg von Wochen oder Monaten. Lern erst Unity, dann lernst du auf dem Weg auch gleich C#, die Teile die du wirklich brauchst. Die Grundlagen der Sprache lernst du bei beiden Methoden. Und ich wage zu behaupten in Unity sogar schneller und besser. Weil du das da gleich praktisch anwendest.

Unity ist keine C# IDE, das ist eine Game Engine die als Scriptsprache C# verwendet. Wichtig ist da die Unity API, nicht die C# API. Wichtig sind die Unity Tools, nicht die C# Frameworks. Das alles kannst du mal ranziehen wenn du was machen willst wofür Unity eigentlich gar nicht vorgesehen ist. Aber dann würde ich nicht mehr unbedingt Unity verwenden.

Wenn es nur um dich gehen würde, mach wie du denkst. Es ist deine Zeit die du vergeudest. Hier gehts aber nicht um dich. Hier gehts um jemanden der gut beraten werden will.

Welchen Rat der Kael dann annimmt ist dann seine Sache. Erlaubt ist was funktioniert.
Free Game Graphics, Freeware Games https://www.reinerstilesets.de

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »Tiles« (28.02.2018, 11:16)


Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

33

28.02.2018, 11:50

Genau, wir sind wieder an dem Punkt. Auch wenn ich Unity schon ewig nicht mehr benutze habe ich es ein paar Jahre getan. Unter anderem ein Jahr beruflich. C# kenne ich jetzt etwas mehr als 9 Jahre wobei ich in den letzten Jahren immer weniger damit gearbeitet habe. Ich kriege sowohl hier als auch in anderen Foren die Probleme von vielen Leuten mit die mit Unity starten und keine Ahnung von C# haben. Ich habe im Freundeskreis einige Leute die seit Jahren mit Unity arbeiten, viele von denen leider auch ohne weiteres Vorwissen. Laut meiner Erfahrung basieren die meisten, nicht alle, Probleme darauf dass die Leute sich nicht mit C# auseinandersetzen und nicht wissen was sie damit ausdrücken können. Deine Aussage dass man gegen Unity entwickelt halte ich für Blödsinn. Ein guter Freund wollte mir das über Jahre verkaufen, mittlerweile hat er eingesehen dass er sich da getäuscht hat. Einfach weil er mittlerweile endlich an dem Punkt angelangt ist an dem er sich Gedanken über seinen Code macht und versteht wie er vernünftiges Code Design mit Unity verbinden kann. Das heißt nicht dass er den Inspector nicht benutzt. Den benutzt er sogar sehr viel, und trotzdem hat er verstanden wie man beide Seiten miteinander verbindet. Besagten Freunden und Bekannten helfe ich regelmäßig bei Unity und C# Problemen aus weshalb ich eigentlich immer mal wieder selbst davor sitze, wenn auch nicht am eigenen Computer.
Das mal zu meinem "Unity Background".
Von dir kommen hingegen nur leere Phrasen wie "Wenn du erst C# lernst lernst du unnötiges Zeug und gewöhnst dir Sachen an die gegen den Unity Style sind". Wobei das kein direktes Zitat sein soll, aber der Inhalt kommt von dir ja immer wieder. Erklär es mir doch einfach. Welche Dinge in deiner jahrelangen Erfahrung haben dir gezeigt dass dich das nicht weiter bringt? Um mal ein konkretes Beispiel von meinem Standpunkt zu bringen. Ein Bekannter wollte sich mit Unity auseinander setzen. Er hat ein wenig Grundlagenwissen in Java, wobei sich das wirklich auf absolute Basics wie if-else, Schleifen etc bezieht. Heißt, er ist noch nicht an dem Punkt an dem er selbstständig Probleme lösen kann, einfach weil er so weit nie gekommen ist. Besagter Bekannter saß Tag ein Tag aus vor Unity und hat schöne Dinge zusammen geklickt, Modelle importiert und Welten zusammen geschoben. Tolle Sache die auch motiviert, aber ab dem Punkt an dem Funktionalität gefragt war stand er da wie der Ochs vorm Berg. Weil er sich nicht vernünftig mit Programmierung im allgemeinen auseinander gesetzt hat konnte er auch keine vernünftigen Fragen formulieren. Fragen wie "Wie mache ich jetzt ein Skillsystem wie in Spiel XYZ" sind nicht wirklich zielführend. Jetzt muss man ja kein C# Vollprofi mit 15 Jahren Erfahrung sein um zu lernen wie man Aufgaben splittet und einzeln lösen kann. Das ist auch gar nicht das worauf ich hinaus will, aber zumindest ein kurzes und knappes Buch oder Tutorial über C# darf man sich schon rein ziehen. Und wenn du hier mal guckst, der TE möchte eigentlich C# lernen und keine Engine wie Unity benutzen. Zumindest ist das sein aktueller Stand. Und trotzdem findest du es doof wenn er jetzt C# lernt und hinterher vielleicht mal Unity? Stattdessen soll er einfach nur Unity lernen obwohl das eigentlich nicht das ist was er will?
Das passt ganz gut zu der Signatur die BlueCobold eine lange Zeit hatte. Nach dem Motto, egal welches Problem du hast, dir wird zu Unity geraten. Vielleicht sollten wir über neue Werbebanner nachdenken.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

34

28.02.2018, 12:03

Lern erst Unity, dann lernst du auf dem Weg auch gleich C#, die Teile die du wirklich brauchst.


Nein, eben nicht. Du lernst wie du in Unity dein Spiel zusammen klickst und einfache C# Scripte schreibst. C# ist mehr als nur If-Else. Du kannst das ganze .Net Framework nutzen.

Tiles

Treue Seele

Beiträge: 168

Wohnort: none

  • Private Nachricht senden

35

28.02.2018, 12:12

Mir scheint du willst mich unbedingt missverstehen. Du schiebst mir Standpunkte unter die ich überhaupt nicht vertrete. Ich zweifle auch nicht an deinen Fähigkeiten, du bist sicher ein guter und fähiger Programmierer. Du aber an meinen. Weil ich nicht deiner Meinung bin. Und genau da haben wir unser Problem.

Für mich will der OP ein Game entwickeln. Also gehe ich von dem Fall aus. Und nicht vom Fall dass er was sucht um C# zu lernen. Du schickst jemanden der ein Zimmer tapezieren will nicht auf eine dreijährige Malerlehre. Du zeigst ihm wie man die Bahnen aufrollt, wie man Kleister anrührt, wie man die Farbe aufträgt. Und dann langt das.

Mir geht es nicht darum überhaupt nicht C# zu lernen. Sondern mir geht es darum mit welcher Methode man schneller zum Ziel kommt. Erst C# lernen. Oder gleich bei Unity einsteigen, und von da aus C# lernen. Noch mal, Unity ist keine C# IDE. Das ist eine Game Engine. Da solltest du zuerst mal lernen wie man mit der Engine umgeht. Und es gibt für jedes Unity Problem auch ein Unity Tutorial. Du kannst komplett ohne C# Material auskommen.

Ein konkretes Beispiel wo dir C# Habits im Weg sein können habe ich genannt. Unity Inspector Variablen. Ein echter Programmierer verwendet natürlich .find. Ich habe auch gesagt wieso es besser ist erst mal Unity zu lernen. Weil erst C# lernen einfach viel länger dauert, und dich mit viel Material vollballert das du nie in Unity brauchen wirst.

Aber um eine Antwort um die zwei Punkte, wieso es viel besser sein soll erst mal viel Zeit zu vergeuden und gegen Unity statt mit Unity zu arbeiten, hast du dich ja jetzt schon zum zweiten Mal wunderbar rummanövriert, und wirst stattdessen schon wieder persönlich.

Den Teil finde ich schade. Aber das beendet auch jedes weitere Gespräch. Denn für Haarklaubereien und rumgeflame ist mir meine Zeit zu schade.
Free Game Graphics, Freeware Games https://www.reinerstilesets.de

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

36

28.02.2018, 12:33

Den Teil finde ich schade. Aber das beendet auch jedes weitere Gespräch. Denn für Haarklaubereien und rumgeflame ist mir meine Zeit zu schade.

Mir geht es hier gar nicht um Streitereien. Das mag über das Internet vielleicht manchmal etwas falsch rüber kommen.

Mir scheint du willst mich unbedingt missverstehen. Du schiebst mir Standpunkte unter die ich überhaupt nicht vertrete. Ich zweifle auch nicht an deinen Fähigkeiten, du bist sicher ein guter und fähiger Programmierer. Du aber an meinen. Weil ich nicht deiner Meinung bin. Und genau da haben wir unser Problem.

Das tue ich absolut nicht. Ich kenne deinen Background nicht, warum sollte ich dir da unterstellen dass du keine Ahnung von der Materie hast? Soweit ich weiß steckst du doch hinter dem Blender Fork. Wenn du so ein Projekt auf die Beine stellst wirst du wohl nicht ganz unfähig sein und wissen was du da tust. Ich möchte dir also keinesfalls unterstellen ein mieser Entwickler zu sein. Ich weiß nicht was du genau kannst, muss das denke ich aber auch gar nicht so genau wissen.
Für mich will der OP ein Game entwickeln. Also gehe ich von dem Fall aus. Und nicht vom Fall dass er was sucht um C# zu lernen. Du schickst jemanden der ein Zimmer tapezieren will nicht auf eine dreijährige Malerlehre. Du zeigst ihm wie man die Bahnen aufrollt, wie man Kleister anrührt, wie man die Farbe aufträgt. Und dann langt das.

Um bei deinem Beispiel zu bleiben, klar schicke ich ihn nicht auf den Lehrgang. Wenn jetzt aber jemand sagt er möchte Maler werden, dann schon. Hier wurde doch konkret danach gefragt. Unity wurde ihm ja schon vorgeschlagen und er hat gesagt dass er das nicht benutzen möchte. Bzw, er hat gesagt dass er allgemein keine Engine nutzen möchte. Ich habe doch schon darauf hingewiesen dass das nach einiger Zeit vielleicht wieder anders aussieht. Wenn man die ersten Codes mit OpenGL oder DirectX hinter sich hat und sieht was man da alles selbst machen muss überlegt man sich das ja vielleicht noch mal anders. Sein Ziel scheint dann also nicht nur zu sein irgendwie das Spiel fertig zu kriegen, er will vor allem auch programmieren lernen. So verstehe ich ihn zumindest.

Ein konkretes Beispiel wo dir C# Habits im Weg sein können habe ich genannt. Unity Inspector Variablen. Ein echter Programmierer verwendet natürlich .find. Ich habe auch gesagt wieso es besser ist erst mal Unity zu lernen. Weil erst C# lernen einfach viel länger dauert, und dich mit viel Material vollballert das du nie in Unity brauchen wirst.

Mir ist grad nicht ganz klar an welcher Stelle man jetzt find verwendet? Du hast Variablen im Inspector und kannst im Behavior Skript doch direkt darauf zugreifen? Dass es länger dauert wenn man erst C# lernt ist klar, dafür erspart man sich hinterher einiges an Arbeit. Wie gesagt, mir geht es nicht darum dass man ein 2000 Seiten Buch liest und die nächsten 3 Jahre nichts anderes als Konsolenprogramme entwickelt. Aber ein kleines Einstiegsbuch zu den wichtigsten Basics sind sicher nicht verkehrt. Nehmen wir mal C# kurz und gut von O'REILLY, ich habe das Buch selbst nicht gelesen und kann deshalb nichts über die Qualität sagen, kenne aber andere Bücher in dem Stil. Das sind etwas mehr als 200 Seiten und wenn ich ins Inhaltsverzeichnis gucke ist so gut wie alles davon auch in Unity wichtig. Ausgenommen mal LINQ, unsicherer Code, Präprozessor und vielleicht auch asynchrone Aufrufe, wobei ich die selbst recht schnell benötigt habe, auch in Unity. Und nochmal, in diesem Fall hat der TE ja sogar explizit gesagt dass das nicht sein Ziel ist, auch wenn ich selbst den Punkt sehe dass es das Ziel mal werden könnte.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

37

28.02.2018, 12:34

Wenn ich mich recht an die erste Seite dieses Themas erinnere (ist schon lange her; schade, dass es in diesem Forum leider unmöglich ist, frühere Beiträge anzusehen), dann wollte der Threadersteller hier eigentlich ein Spiel mit Python entwickeln... ;) ;) ;)

Tiles

Treue Seele

Beiträge: 168

Wohnort: none

  • Private Nachricht senden

38

28.02.2018, 12:39

Zitat

Nein, eben nicht. Du lernst wie du in Unity dein Spiel zusammen klickst und einfache C# Scripte schreibst. C# ist mehr als nur If-Else. Du kannst das ganze .Net Framework nutzen.


Ja klar kann man, aber dann würde ich nicht mehr Unity verwenden. Du nimmst das doch gerade weil das Spiele entwickeln da so einfach geht :)

Für mich sind Programmieren und Entwickeln zwei komplett unterschiedliche Ziele. Wer programmieren will will Code schreiben. Unity ist ein spezielles Tool um schnell und effektiv ein Spiel zu entwickeln. Mit möglichst geringem Programmieraufwand. Das steht sich schon ein wenig gegenüber.
Free Game Graphics, Freeware Games https://www.reinerstilesets.de

Tiles

Treue Seele

Beiträge: 168

Wohnort: none

  • Private Nachricht senden

39

28.02.2018, 12:48

Zitat

Mir geht es hier gar nicht um Streitereien. Das mag über das Internet vielleicht manchmal etwas falsch rüber kommen.


Ja, das stimmt wohl, das Internet ist da manchmal hinterhältig.

Zitat

Mir ist grad nicht ganz klar an welcher Stelle man jetzt find verwendet?


Du kannst viele Objekte oder Scripte die du sonst zum Beispiel mit getComponent oder GameObject.find aus der Szene angelst auch gleich mit einer Inspectorvariablen mit dem GO verknüpfen.

Zitat

er will vor allem auch programmieren lernen.


Das scheint mir wohl grade der Casus Knaxus zu sein. Will er programmieren. Dann würde ich ihm aber nicht zu Unity raten. Oder will er ein Spiel entwickeln. Ich gehe einfach davon aus dass jemand der Unity wählt ein Spiel entwickeln will. Weil das eben so gemacht ist so einfach und schnell wie möglich zum Ziel zu kommen.
Free Game Graphics, Freeware Games https://www.reinerstilesets.de

40

28.02.2018, 13:00

Hier nun keine großen Streitigkeiten ausüben :)

Zur Klarstellung:
Ursprünglich wollte ich mit Python ein Spiel entwickeln. Habe mich damit in den letzten Wochen mit der Python Entwicklung intensiver befasst. Allerdings auch gemerkt dass das 'so schnell nichts wird' - zumindest in dem Bereich was ich gern machen würde. Daraufhin habe ich mich mit meinem Grafiker zusammengesetzt und ein wenig ausdiskutiert. Dieser hat schon Erfahrung mit Unity, weswegen wir auf den Punkt kamen das dies wahrscheinlich die bessere Lösung ist.

Für mich gehört C# und Unity schon irgendwie zusammen. Ich weiß auch das es wohl mit Javascript auch geht, allerdings war ich noch nie ein Fan von Java(Egal ob als Script oder als Sprache)
Python habe ich deswegen nun eher auf die 'lange Bank' geschoben und will mich damit im privaten Bereich Beschäftigen. C soll wegen Arduino Programmierung auch noch irgendwann wieder dazu kommen.

Für C# möchte ich vor allem ein gutes Nachschlagewerk, Internet ist bei einigen Fällen auch ausreichend, in anderen Fällen wieder nicht. Da aber vieles in C# ähnlich ist wie in C++ fühl ich mich von Anfang an ein wenig heimisch.

Für Unity wäre auch ein Nachschlagewerk nicht verkehrt, um diverse Probleme einmal 'nachschlagen' zu können wenn etwas nicht so funktioniert wie es soll.

Da ist mir dieses Buch aufgefallen:
https://www.amazon.de/Einstieg-Unity-ent…ords=unity+buch

Als C# Buch ist mir dieses hier aufgefallen:
https://www.amazon.de/Visual-Studio-2015…L40_&dpSrc=srch


Und ja, das Ziel ist es am Ende ein Spiel zu entwickeln, ich allerdings auch gern die Sprache dann besser verstehen möchte um diverse Probleme auch anders angehen zu können. :)

Python wird in dem Fall mein kleines Privatprojekt, genauso wie ich denke das ich iiiirgedwann noch mal C++ anfassen werde - im Moment hab ich davor aber wegen meinem Studium eine kleine Phobie -.-'

Werbeanzeige