Kürzlich hörte ich von einem Ausbilder, dass das Entwickeln von Spielen der beste Weg sei, um Programmieren zu lernen. Abgesehen von der Tatsache, dass alles in Code erstellt werden musste, sagte er, dass Sie OOP wirklich vollständig erfahren und in Ihre Programme implementieren können. Mit anderen Worten, alles, was Sie in einem Spiel machen, ist sowohl technisch als auch konzeptionell ein wörtliches Objekt. Ist es sicher, diese Annahme zu machen? Oder gibt es beim Programmierenlernen immer Ausnahmen?
Beachten Sie, dass es auf die Entwicklung von .net / xna / c # ausgerichtet war.
learning
object-oriented
Edward
quelle
quelle
Antworten:
Die Spieleentwicklung ist meiner Meinung nach eine der herausforderndsten Entwicklungen. Sehen wir uns alle Konzepte an, die eine Person, die einen Ego-Shooter erstellt, kennen muss:
Sie sehen, ein Spiel kann viele Bereiche gleichzeitig abdecken . Dies macht es zu einem hervorragenden Lernwerkzeug, wenn Sie bereit sind, die Zeit zu verbringen und es gut zu machen.
OOP ist ein Muster, das gut funktioniert. Sie können ein Spiel als Lernwerkzeug verwenden, um gute Designtechniken zu üben.
Um Ihre Frage zu beantworten, ist dies jedoch nicht die einzige Möglichkeit, das Programmieren zu erlernen. Wenn Sie erst einmal ein fortgeschrittener Entwickler sind, können Sie beim Erstellen eines Spiels viele Programmierkonzepte und -ebenen berühren. Außerdem macht es Spaß!
quelle
Nicht tautologisch sein, aber Programmieren ist der beste Weg, um Programmieren zu lernen. Wenn Sie sich für Computerspiele interessieren, ist das Programmieren möglicherweise eine gute Möglichkeit, das Programmieren zu erlernen.
Ich mag keine Spiele, aber ich liebe Mathe, so viele meiner Lernprojekte waren sehr mathematischer Natur.
Unter dem Strich müssen Sie Wege finden, um Probleme mit Code zu lösen, und Spiele funktionieren für viele Menschen.
quelle
Es ist unter anderem eine Möglichkeit, das Programmieren zu erlernen. Wenn Sie Code schreiben, lernen Sie Dinge. Nun, ist es der beste Weg? Nicht so sicher.
Zumindest sind die beiden von Ihrem Lehrer angegebenen Gründe nicht gültig .
"Alles musste im Code erstellt werden" : Wenn Sie eine Business-App schreiben, schreiben Sie tatsächlich den Code. Es wird nicht von Zauberhand geschrieben. Ja, es gibt Helfer, mit denen Sie automatisch generierten Code verwenden können. Nein, es ist nicht obligatorisch, sie zu verwenden. Übrigens sind die automatisch generierten Teile im Allgemeinen das nervigste Programmieren (nicht durch Hinzufügen von Steuerelementen zum Windows Forms-Steuerelement lernen Sie etwas Aufregendes und Nützliches).
"Sie können OOP wirklich vollständig erleben und in Ihre Programme implementieren" : Jemand muss mir erklären, warum dies nur für Spiele gilt, aber für alles andere ungültig ist. Wenn Sie OOP verstehen und es verwenden möchten, können Sie es auch in Geschäftsanwendungen verwenden. Wenn Sie es nicht erhalten oder nicht verwenden möchten (und beispielsweise die funktionale Programmierung bevorzugen), werden Sie durch die Spieleentwicklung nicht gezwungen, Änderungen vorzunehmen.
Aber:
Das Entwickeln von Spielen kann Spaß machen . Die meisten jungen Leute mögen Spiele, deshalb würden sie gerne ein Spiel entwickeln, anstatt eine Geschäfts-App zu schreiben, was für die meisten von ihnen äußerst langweilig sein wird. Wenn Lehrer dies sehen, können sie anfangen zu glauben, dass das Spielen der beste Weg ist, um Programmieren zu lernen, und dann werden sie versuchen, eine logische Erklärung dafür zu finden.
Abgesehen davon machen diese Lehrer die Spieleentwicklung für junge Leute genauso langweilig wie die Entwicklung von Geschäfts-Apps. Wenn sie der Meinung sind, dass Spiele gemacht werden müssen , um OOP usw. zu lernen, werden sie ihre Schüler auffordern, die Art von Projekten zu machen, die überhaupt keinen Spaß machen. Dies war einer der größten Fehler meiner Lehrer, als ich am College war. Sie gaben uns sehr oft Spielprojekte, um in Ada im Konsolenmodus zu schreiben. Keine Grafiken. Kein Spaß. Keine Benutzererfahrung. In meinem ganzen Leben und meiner Karriere habe ich noch nie so langweilige Projekte gesehen.
quelle
BadGuy
,Weapon
,PowerUp
und andere Elemente in einem Spiel einfach ein Objekt sein können. Sie erhalten zu Programm - Interaktionen zwischen den Objekten und sehen sie auf dem Bildschirm. Ich denke, der visuelle Teil macht es so attraktiv. Business - Anwendungen , die Art Hierarchien habenServerTaskScheduler
,AbstractDataProcessor
,UserQueryAgent
usw ... sind nicht so spannend , auch wenn sie die gleichen OOP - Konzepte wie in Gaming lehren kann.Customer
oderProduct
oderTransaction
können Objekte sein. Aber ich verstehe, dass es viel angenehmer ist, mitBadGuy
s umzugehen, als mit langweiligenTransaction
s.Transaction
bedeutet.Spieleprogrammierung ist der beste Weg, um Spieleprogrammierung zu lernen. Wenn Sie die Webentwicklung erlernen möchten, tun Sie dies, wenn Sie die Systemprogrammierung erlernen möchten, tun Sie dies und so weiter.
Das Programmieren von Spielen ist herausfordernd und wird Ihnen höchstwahrscheinlich eine Menge Dinge beibringen (Michael hat in seiner Antwort viele festgestellt, und viele von ihnen sind sehr herausfordernd und auch außerhalb von Spielen verwendbar). Das Erstellen eines Rollenspiels oder eines Tycoons (oder eines ähnlichen Spiels) wird Ihnen viel über das OOP-Design beibringen, da sie sich sehr gut für dieses Paradigma eignen. Abhängig von der Komplexität Ihrer Grafik und Physik können Sie auch viel über Leistungsaspekte, einige Hardcore-Mathematik für Spiele usw. lernen.
Es ist ein guter Weg und der beste Weg, um einige Dinge zu lernen, aber es ist kein überlegener Weg, um Programmieren zu lernen. Unabhängig davon, wie viele Spiele Sie programmiert haben, ist es dennoch wahrscheinlich, dass Sie keine Ahnung haben, wie Sie ein Betriebssystem erstellen. Ich denke, dass die meisten Entwickler noch etwas verdienen könnten, wenn sie ein Spiel entwickeln, auch wenn sie dies nicht als Hauptdisziplin der Programmierung tun, solange sie Zeit haben.
quelle
Frage: Was ist die beste Methode, um das Programmieren zu lernen?
Antwort: Die Methode, die Sie tatsächlich anwenden
Dh, wenn Sie etwas lernen oder tun, spielt es keine Rolle, welche Methode Sie wählen, solange es sich um eine Methode handelt, die Sie tatsächlich durchlaufen.
Wenn Ihnen das Spielen wirklich Spaß macht, probieren Sie es aus. Wenn Sie die Lösung mathematischer Probleme zufriedenstellender finden, fangen Sie damit an. Es gibt viele verschiedene Arten des Programmierens und jedes erfordert unterschiedliche Fähigkeiten. Daher ist es eine gute Wette, mit der zu beginnen, die Sie am interessantesten finden. Mit dieser Wette werden Sie wahrscheinlich arbeiten.
... Aber ja, Gaming ist ein guter Weg, um eine breite Palette von Programmen zu erlernen, da es Mathematik, Parallelität, Algorithmen, oop, Grafiken usw usw enthält
quelle
Wenn Sie gerne spielen, ist das Schreiben von Spielen ein guter Einstieg in die Entwicklung, aber ich würde nicht sagen, dass dies der beste Weg ist. Ich denke, der beste Weg ist ein CS-Studiengang, gefolgt von einem Job bei einem Softwarehaus, das in die Ausbildung und Betreuung von Nachwuchskräften investiert.
Abgesehen von dieser zugegebenermaßen ziemlich pompösen Antwort, ja, die Spieleentwicklung würde Ihnen eine Menge guter Fähigkeiten beibringen, und wenn Sie Computerspiele mögen, werden Sie am Entwicklungsprozess interessiert sein. Es muss interessanter sein als viele andere einfache Apps, die man in Büchern findet.
quelle
Ich würde sagen, dass der beste Weg, Code zu lernen, darin besteht, es Ihnen Spaß zu machen. Es muss kein richtiges Spiel sein, sondern eine Art Spiel für dich. Für mich ist es ein Spiel, einige mathematische Probleme zu lösen und Algorithmen so zu entwickeln, dass ich ein komplexes Problem auf dem schnellstmöglichen Weg lösen kann. Fordere mich selbst heraus Ich werde bei jedem Versuch, ein Problem zu lösen, ein besserer Programmierer. Je schwieriger das Problem, desto besser.
Was das Erlernen von Code (Best Practices) angeht, müsste man sich größeren Herausforderungen stellen. Herausforderungen erfordern viel mehr einen einzelnen Ein- / Ausgang
quelle
Ich habe noch nie von Behauptungen gehört, dass das Spielen von Halflife oder Call of Duty Ihnen Programmierkenntnisse beibringt.
Vielleicht programmieren, aber so etwas sollte ein Anfänger nicht einmal probieren. Und gerade Anfänger haben oft den Eindruck, dass sie mit ihren nicht vorhandenen Programmierkenntnissen den nächsten Blockbuster schaffen können. Sagen Sie ihnen, sie sollen zuerst versuchen, einen PacMan- oder Tetris-Klon zu erstellen, und sie schreien, dass sie das nicht wollen und dass Sie mir "zuh koduz" geben sollen.
quelle
Nicht wirklich, nein. Es gibt nicht eine beste Art der Projektprogrammierung auf zu lernen. Die beste Art von Projekt ist eines, das für Ihre Interessen relevant ist.
Ich habe zum Beispiel versucht, auf verschiedene Arten das Programmieren zu lernen, einschließlich des Lernens, Spiele zu programmieren. Es schien einfach nie zu kleben.
Wann musste ich dann lernen, wie ich für das programmiere, was ich in meiner Forschung tat? Im Moment kann ich sagen, dass ich zwei Sprachen beherrsche und an einer dritten arbeite. Warum? Weil es für meine Interessen relevant war. Ich hatte einen Grund, mich daran zu halten, einen Grund zu lernen und mehr Probleme zu versuchen, als nur "Übung 8" im Buch.
Dies bedeutet übrigens nicht, dass das Programmieren von Epidemiemodellen der beste Weg ist, um das Programmieren zu erlernen. Aber es war der beste Weg für mich. Finde deins. Es können Spiele sein, aber es kann sehr gut nicht.
quelle
Nach meiner Erfahrung müssen Sie beim Schreiben eines Spiels (vorausgesetzt, Sie tun dies in Ihrem eigenen / kleinen Entwicklerteam) nicht nur über den algorithmischen / analytischen Teil der Programmierung nachdenken, sondern auch über die Benutzererfahrung und das Design.
Darüber hinaus werden Sie, wenn es sich um ein recht komplexes Spiel handelt, in ein paar Monaten daran arbeiten und erkennen, wie wichtig es ist, alles zu dokumentieren, was Sie später zu einem besseren Mitglied eines Teams macht.
quelle
Ich denke, dies ist ein ausgezeichneter Artikel, der einen Einblick in die Spieleentwicklung gibt.
Es geht um einige grundlegende Bereiche, auf die Sie sich konzentrieren sollten
quelle
Ich würde zustimmen, außer ...
Es ist genauso wahrscheinlich, dass die erste Programmiererfahrung, die viele jemals hatten, darin bestand, einen Lego-Roboter (Mindstorms) zu bauen und zu programmieren.
Während der allgemeine Begriff "Spiel" eine Kategorie definieren kann, die so groß ist, dass sie fast die gesamte Programmierung umfasst, scheint er im Kontext des ursprünglichen Posters immer "Doom-Spiele schreiben" zu bedeuten.
Wie bereits erwähnt, ist der beste Weg, um das Programmieren zu erlernen, etwas zu haben, das Sie wirklich wollen und das ein Programm erfordert. Das heißt - lernen Sie das Programmieren, indem Sie das gewünschte Programm schreiben.
Eines meiner ersten Windows-Programme war ein MIDI-Controller-Programm, weil ich wirklich ein MIDI-Controller-Programm haben wollte, und Windows schien perfekt zu passen (Schieberegler, Schaltflächen, SDK-Unterstützung für MIDI usw.). Ich habe eine Menge über die Windows-Programmierung (das war in den Win 3.1-Tagen) von diesem Programm gelernt.
Ich habe mich aus den hier genannten Gründen auch noch nie für Spieleprogrammierung interessiert - ich zeichne nicht so gut, daher hat jedes Spiel, das ich mache, schlechtere Grafiken als das eines Künstlers. Ich möchte lernen zu programmieren, nicht ein "Game Building Team" zu leiten (lobenswerte, aber völlig andere Übung).
Letztendlich stimme ich der Aussage des Lehrers nicht zu. Der beste Weg, um das Programmieren zu lernen, besteht darin, das Programm zu schreiben, das Sie wirklich wollen.
-R
quelle