Ergebnis 1 bis 16 von 16

Thema: Fragen: Xbox 360 / Windows Games Entwicklung mittels C# in .NET Framework (XNA)

  1. #1

    Fragen: Xbox 360 / Windows Games Entwicklung mittels C# in .NET Framework (XNA)

    Hallöschen~
    Ich habe derzeit echt ein gravierendes Problem:
    Ich bin gelernter Fachinformatiker in der Anwendungsentwicklung und habe seit 6 Jahren nichts mehr programmiert, also keine Erfahrung mehr! Nun wollte ich mich in C# einlesen da man mittels XNA Framwork(erweiterung) in .NET Spiele für Xbox 360 und auch Windows entwickeln kann.
    Gleich mal vorweg: Ich bin keiner der denkt, dass er innerhalb der ersten Monate Blockbuster entwickelt.
    Ich möchte mir das Wissen aneignen, um mit Freunden an größeren projekten zu arbeiten. Nun habe ich mir ein C# Buch gekauft fdas aber sowas von...Furztrocken ist.
    Hat jemand von euch Erfahrung gesammelt wie ich das ggf. gleich mit Praxisbezogenen Themen lernen kann, also nicht nur learing by doing, sondern auch in dem Aufgabenfeld "Spieleentwicklung"? Kleinere Gamesklone und so weiter?
    Die offizielle XNA Seite wurde runumerneuert und nun findet sich da der Creators Club nicht mehr.

    Das Problem was ich festgestellt habe nachdem ich gut 200 Seiten des 600 Seiten Wälzers durchhabe und mich leicht mit XNA befasst habe, ist das viele neue Funktionen dazukommen, die in C# nicht existieren wie z.b. graphics.PrefferedBufferedHeight etc... die also eher für die Spieleentwicklung verwendung finden.

    Ich bringe Abends immer 3-4 Std. Zeit mit, kann mich also mit der Materie befassen und will es auch, nur find ich den Stoff im Buch wie gesagt einfach zu "trocken" und das kann ja nicht die einzige Methode sein C# zu lernen.

    Ich bin wirklich über jeden Tipp dankbar!

  2. #2
    Programmiere doch einfach mal kleine Spiele, das hilft mehr als jedes Theoriebuch. Da kannst du dich dann immer weiter steigern.

    Btw, bezweifle ich das du keine "Erfahrung" mehr hast

  3. #3
    Wie soll ich etwas programmieren von dem ich recht wenig Ahnung derzeit habe... das ist so als wenn du nen Bauer sagst "Baue mal ne Lokomotive, das kriegste schon hin" xD Ich brauche ja Tutorials für sowas, nen Buch nehme ich Optional wenns sein muss und/oder es nicht zu trocken geschrieben ist. ^^

    Glaube mir, ich kann wirklich nur noch die Basics wie Variabeln deklarieren und so. ;P

  4. #4
    Wenn du nur noch weißt, wie man Variablen deklariert, solltest du dir ernsthaft Gedanken machen, ob Programmieren wirklich was für dich ist bzw. ob du überhaupt irgendwas in deiner Ausbildung gelernt hast.
    Sorry, dass es nun so hart klingt aber 6 Jahre ist auch nun keine so große Zeit um wirklich alles zu verlernen.
    Die Entwicklung einer größeren Software fängt nicht damit an, gleich drauf loszuprogrammieren, sondern auf Papier. Klar hat man im Hinterkopf, auf welcher Plattform es laufen soll aber im Vordergrund steht erstmal ein grobes Konzept der Realisierung. Also z.B. was soll die Software können und welche Datenstrukturen benötigt man dabei?
    Ich habe bis jetzt noch nie mit XNA gearbeitet, sondern bis jetzt nur mit OpenGL unter C aber es wäre da auch nicht verkehrt, wenn du dich mit der Computergrafik auskennst. Also z.B. wie das Phong-Beleuchtungsmodell oder generell die Rendering-Pipeline arbeitet, etc. Da XNA auf C# basiert und C# Objektorientiert ist, solltest du dich auch mit der Objektorientierten Programmierung auskennen.
    Ein weiteres ist, dass du dich mit Datenstrukturen auskennen musst. Also was sind z.B. verkettete Listen, Binäre Bäume, Schwarz-Rot-Bäume, Hash-Tabellen, etc.?

    Die Erlernung der C#-Syntax ist da nur das geringste Übel.

  5. #5
    Wie man Konzepte schreibt und das auch noch logisch ist kein problem.
    Bei uns in der Ausbildung war die Programmierung in der Firma auch leider 2. Rangig. Und ich nehme es dir nicht übel, warum auch? ^^

    Also in der Schule haben wir auch nicht angefangen die programme zu schreiben, aber nach 6-10 Informatikstd. mussten wir z.b. einen Taschenrechner programmieren. Oder zur zweitens Jahreshälfte ein eigenes projekt stämmen. Die Theorie die man sich aneignet finde ich immer besser durch die aktuelle programmierung vermitellt zu bekommen und das hat damals ja auch gut geklappt. Mittlerweile bin ich in einer KOMPLETT anderen Tätigkeit die nichts mehr mit Programmierung zu tun hat, zumal ich damals Pascal und Delphi gelernt habe. java stand zwar auch auf dem programm aber das hatten wir nur 3 Monate. Da ists doch auch irgendwie klar dass man nach 6 Jahren nichts mehr drauf hat was Programmierung angeht wenn man ab da nichts mehr getan hat.

  6. #6
    Ich muss sowohl R.D. als auch Whiz-zarD zustimmen: Ich finde es etwas arg heftig, dass du von dir behauptest, außer Basics nichtsmehr von Programmierung zu wissen... Sowas verlernt man normalerweise nicht nach 6 Jahren^^...

    Auch aus eigener Erfahrung weiß ich: Das dickste und dollste Buch nützt nichts, wenn man die darin enthaltenen Beispiele nicht nachprogrammiert - und dabei nicht bloß abtippt, sondern bei der Gelegenheit auch mal schaut, wie sich das Beispielprogramm weiterentwickeln könnte... Ich pers. programmiere bei "neuen" Programmiersprachen grundsätzlich einige einfache Spiele nach, meistens Sokoban-Umsetzungen - das lernt einem die Syntax besser als jedes Buch, wenn man es durchzieht...

    EDIT: OT: Nebenbei bemerkt finde ich es blöd, dass das neue Forendesign aus "^^" einen Smilie macht^^...

    Geändert von Manuel (20.10.2010 um 16:46 Uhr)

  7. #7
    Zitat Zitat von Manuel Beitrag anzeigen
    Ich pers. programmiere bei "neuen" Programmiersprachen grundsätzlich einige einfache Spiele nach, meistens Sokoban-Umsetzungen - das lernt einem die Syntax besser als jedes Buch, wenn man es durchzieht...
    In der Schule haben wir, um den Umgang mit OpenGL zu lernen, Pong, Pacman und Sokoban programmiert.

  8. #8
    Zitat Zitat von Manuel Beitrag anzeigen
    Ich muss sowohl R.D. als auch Whiz-zarD zustimmen: Ich finde es etwas arg heftig, dass du von dir behauptest, außer Basics nichtsmehr von Programmierung zu wissen... Sowas verlernt man normalerweise nicht nach 6 Jahren^^...]
    Soll ich lieber lügen und behaupten dass ich der Ultra Crack bin?
    Manchmal verstehe ich das Forum nicht. Es ist so, ich ziehe mir sowas sicherlich nicht aus den Fingern...

  9. #9
    Zitat Zitat von Gogeta-X Beitrag anzeigen
    Manchmal verstehe ich das Forum nicht. Es ist so, ich ziehe mir sowas sicherlich nicht aus den Fingern...
    Aber was genau willst du denn wissen?
    Nur es gibt halt Dinge, die man nicht so schnell vergisst/verlernt und 6 Jahre ist nunmal keine allzu große Zeitspanne, in der man alles komplett vergisst.
    In einem größeren Projekt zu arbeiten bedeutet mehr, als nur die Syntax einer Sprache zu lernen und es bringt nichts, wenn man versucht, nur die Syntax zu lernen, wenn man das Basiswissen nicht besitzt.
    Und was genau willst du denn nun wissen? Wenn du schreibst, dass du nur noch wüsstest, wie man unter Delphi (nehme ich mal an) Variablen deklariert, dann fehlt das komplette Wissen und man hat einfach keine Basis, dir was zu erklären. Die Syntax von C# kann man 2 bis 3 Tagen lernen. Nur damit ist es ja nicht getan. Wer noch nie mit OOP in Berührung gekommen ist, muss sich dann erstmal schlau machen, wie man Klassen und deren Vererbungen geschickt anwendet. Wenn man das denn drauf hat, kann man sich XNA anschauen und dann benötigt man das Basiswissen von der Computergrafik und am Besten noch das Basiswissen der Vektorrechnung. In OpenGL ist es z.B. so, dass man zuerst den Bildschirm/das Fenster initialisieren muss. Also z.B. welche Auflösung? Welcher Vektor zeigt nach Oben? Auf welchen Punkt schaut der Betrachter? Wo steht der Betrachter? Eigenschaften der Oberfläche (Spekular-, Diffus- und Ambient-Anteil)? Positon der Beleuchtung? Art der Beleuchtung? etc. Und irgendwann kommt das Thema: "Texturen". Ich denke mal, bei Direct3D wird das wohl ähnlich aussehen.

    Und wenn du nicht mit der Grafikumsetzung beschäftigt bist, sondern z.B. mit der Speicherung der Daten, musst du wissen, wie man effizient Daten speichert und sie wieder abruft. Also z.B. lohnt sich ein Baum oder reicht eine verkettete Liste? etc.

    Bis jetzt konntest du aber auch nicht genau sagen, was du nun eigentlich von uns möchtest.
    Programmieren lernt man auch nicht wirklich aus Büchern oder Tutorials, sondern durch Learning-by-Doing. Bücher oder Tutorials können einen nur Tipps und Tricks geben.

    Für mich ist einfach die Frage, ob das alles wirklich was für dich ist?
    Da hängt ein riesiger Rattenschwanz dran und wenn du schon an der Syntax von C# quasi scheiterst, denke ich nicht, dass das Programmieren, in diesem Umfang was für dich ist.
    Und wenn das C#-Buch, was du dir geholt hast, für dich nichts ist, warum holst du dir dann nicht ein anderes? Gibt ja genug Bücher über C#.
    Es erfordert halt mehr, als "Ich kauf mir ein Buch und schon kann ich programmieren und wenn nicht, dann frag ich in einem Forum nach".

  10. #10
    Ich habe 2 Jahre Programmierung in der Schule gelernt, auf der Arbeit habe ich es aber nun einmal nicht all zu oft gebraucht. Unsere Firma hat eher Sachen angepasst und da musste ich zwangsweise so gut wie nie programmieren.
    Ich bin nun seit mehr als 6 Jahren aus dem Beruf raus und bin seither im Vertrieb tätig. Du glaubst doch nicht dass ein Vertriebler der Forecasts, Marketing etc... sich da noch sowas wie Programmierung merkt wenn er damit schon vorher nicht viel am Hut hatte? Und ja, 6 Jahre sind da ausreichend wenn du nebenerh, hobbyseitig oder so nichts machst.
    Was ich aber wollte ist folgendes:

    Ich würde gerne wieder programmieren, eben weil ich sehr gerne kleine Spiele zur Übung machen will um dann schlußendlich mich mittels XNA an die Xbox360 zu trauen. Nur kann ich wie gesagt nicht mehr wirklich viel.

    Ihr will wissen wie ich am Effizientesten eine Sprache lernen kann und das habt ihr ja teilweise beantwortet -> Learning by doing. Ich frage mich hier halt noch wie ich das anstreben soll. Wennich mir z.b. Sokoban als Basis nehme, wie soll ich mich an sowas ranwagen? Das man zu aller erst ein Konzept schreibt ist mir hoffentlich noch bewusst. ^^ Aber was kommt danach? Ich blicke da wie gesagt nicht mehr so ganz durch und möchte einfach eine "Starthilfe" bekommen.

    Es bringt ja auch nichts zu sagen "Schreib mal Basisspiele" wenn ich nicht einmal die Syntax kenne...andersherum ists eventuell auch nicht wirklich effizient. :/

    Und ich will mich natürlich auch Stück für Stück hocharbeiten. Also mit 2D anfangen, kleinere Spielerein machen. In 3D Wage ich mich bewusst nicht rein weil mich 3D
    1) Nicht interessiert
    2) Ich niemand kenne und auch selber keine 3D Modellierung anstoßen kann
    3) Shader mittels HLSL derzeit ebenfalls nicht beherschen möchte

    Ich hoffe die problematik wird jetzt etwas klarer. ^^

    Geändert von Gogeta-X (22.10.2010 um 12:46 Uhr)

  11. #11
    Zur Syntaxproblematik: In der Berufsschule hatten wir uns grundsätzlich angewöhnt, bei einer neuen Programmiersprache eine Art Zusammenfassung zu schreiben - für jede Sprache einzeln. Da hast du dann immerhin wenigstens die wichtigsten Programmierkonstrukte im Blick (Variablendeklaration, welche Variablentypen gibt es, alle möglichen Schleifenarten, if/then/elif/else-Zweige etc.)... Ein Verhalten, was ich mir übrigens bis heute behalten habe. Auf meinem Rechner schlummert irgendwo noch eine von mir geschriebene Datei, die in sieben Seiten Umfang Python (eine andere Programmiersprache) und Pygame (eine Bibliothek für Spiele) zusammenfasst - war während meiner Lernphase eine große Hilfe...

    Zum "Konzept" ansich kann ich leider nicht viel sagen, weil ich mir die selbst abgeschaut hatte... Ich hatte damals mit Hilfe von diesem Tutorial in QBasic (eine weitere Programmiersprache) verstanden, wie Tile-basierte Spiele (also Spiele, die in einem Raster ablaufen) funktionieren. Mit diesem Grundwissen kann man dann leicht andere Tile-basierte Spiele ableiten... Gut, ob das Tutorial jetzt für dich geeignet ist, musst du selbst wissen, da zwischen QBasic und XNA wohl Welten liegen dürften, nicht nur in der Syntax^^, aber die Grundlogik ansich (vorallem das Wissen um die Arrays) hatte es mir damals sehr gut beigebracht... Ich programmiere heute noch Spiele in diesem Schema^^...

  12. #12
    Zitat Zitat von Gogeta-X Beitrag anzeigen
    2) Ich niemand kenne und auch selber keine 3D Modellierung anstoßen kann
    Wer sagt denn, dass du Modellieren musst?
    Zitat Zitat von Gogeta-X Beitrag anzeigen
    3) Shader mittels HLSL derzeit ebenfalls nicht beherschen möchte
    Wer sagt denn, dass du die Shader benötigst?

    Ich glaube, bei dir fängt das Problem schon viel früher an, als bei der grafischen Entwicklung. Ich denke, dass du schon Probleme hast, generelle Konzepte umzusetzen und das fängt schon damit an, z.B. eine Datenstruktur und eine Schnittstelle für die Maps von Sokoban zu entwickeln.
    Der Schritt von 2D nach 3D ist nur ein kleiner Schritt. Auch Direct3D kann 2D. Man lässt halt die Z-Koordinate auf 0. Ich würde dir raten, erstmal grundlegende Programmierkenntnisse anzueignen, bevor du wirklich in die Spieleentwicklung eintauchst. Dazu gehört z.B. geschicktes modularisieren eines Programmes oder die Realisierung einer Datenstruktur. Mit diesem Wissen könntest du dann schon mal anfangen, ein Modul zu entwickeln, was die Maps von Sokoban verwaltet. Erst jetzt könnte man sich Gedanken machen, wie man die Map nun grafisch darstellt.

    Ich hab mal kurz Google benutzt und bin auf diese Seite gestoßen: http://www.riemers.net/
    vielleicht ist sie ja was für dich.

  13. #13
    Zitat Zitat von Whiz-zarD Beitrag anzeigen
    Wer sagt denn, dass du Modellieren musst?
    Sagt ja niemand, aber 3D interessiert mich einfach nicht. Ich will mich momentan auf 2D konzentrieren.

    Zitat Zitat
    Wer sagt denn, dass du die Shader benötigst?
    Hier das gleiche wie oben.

    Zitat Zitat
    Ich glaube, bei dir fängt das Problem schon viel früher an, als bei der grafischen Entwicklung. Ich denke, dass du schon Probleme hast, generelle Konzepte umzusetzen und das fängt schon damit an, z.B. eine Datenstruktur und eine Schnittstelle für die Maps von Sokoban zu entwickeln.
    Darum geht es ja gerade. Ich weiß nun einmal nicht wie eine Engine aufgebaut ist. Dafür fehlt mir in der Tat das logische verständnis. Das werde ich aber niemals bekommen wenn mir keiner da hilft. Nur auf mich zeigen und sagen dass ich es nicht kann, bringt mich nicht weiter.

    Zitat Zitat
    Der Schritt von 2D nach 3D ist nur ein kleiner Schritt. Auch Direct3D kann 2D.
    Ja wie schon gesagt, 3D juckt mich nicht im geringsten. Wieso sollte ich etwas lernen was ich nicht brauche. Ausserdem würde ich niemals auf die idee kommen derzeit ein 3D Projekt zu beginnen. Eventzuell verstehst du mich ja auch falsch. Es ist sicherlich nicht verkehrt 3D umzusetzen aber wie du sagtest. D3D arbeitet auch in 2D und das reicht mir.

    @Manuel Vielen Dank nach sowas habe ich gesucht! Eine dynamische Engine... den Grundgedanken verstehe ich jetzt. Neue Engines arbeiten dann wohl eher mittels XML gehe ich von aus? ^^

  14. #14
    Zitat Zitat von Gogeta-X Beitrag anzeigen
    @Manuel Vielen Dank nach sowas habe ich gesucht! Eine dynamische Engine... den Grundgedanken verstehe ich jetzt. Neue Engines arbeiten dann wohl eher mittels XML gehe ich von aus? ^^
    Dann wäre es vom Vorteil, wenn du dich vorallem mit verketteten Listen auseinandersetzt.
    Eine Tilebasierte Map in eine XML Struktur zu klopfen ist nicht vom Vorteil und wird auch nicht gemacht, weil der Overhead viel zu groß wäre.
    Die Tiles werden in verkettete Listen oder dynamische Arrays gespeichert.

  15. #15
    Hallo Gogeta-X, hier mal ein Buchtitel für dich: "Spieleprogrammierung mit dem XNA Framework" von Microsoft Press. Kostet 19,90 Euro und ist für Einsteiger und 'wieder Einsteiger' gedacht. Du lernst zuerst grundlegendes zu C#, Einstieg in das XNA Framewwork, beginnst mit 2D Grafik, Sprites, Effekte und Sound, Maps, bekommst dann einen ersten einblick in die Programmierung von 3D Grafik, Terrains und Multitexturing und wie man Spiele für die Xbox umwandelt. Das Buch hat gerade mal ca. 350 Seiten und liest sich sehr gut. Der grawierende Nachteil des Buches ist die Tatsache, das man auf 350 Seiten jedes Thema nur oberflächlich behandeln kann, d.h. wenn Du tiefer in die Themen des Buches eintauchen möchtest, brauchst Du zusätzliche Informationsquellen. Für den ersten Einstieg in die Thematik ist das Buch jedoch zu Empfehlen.

    Gruss

    Carsten

  16. #16
    Kannst du dieses Buch wirklich empfehlen? Als ich damals auf der Suche nach Büchern über das Thema XNA war, bin ich auch darüber gestolpert, hab mich dank Amazon-Rezensionen dann aber anderweitig orientiert. Dieses Buch soll anscheinend wirklich nur sehr rudimentär auf das Thema C# und XNA eingehen.

    Meiner Meinung nach sollte man sich keine Bücher kaufen, die man nicht auch später noch gut als Nachschlagewerk benutzen kann. Anfängerwissen kriegt man im Internet überall hinterhergeschmissen. Bücher sind leider eine ziemlich teure Sache. Da sollte sich die Anschaffung auch wirklich lohnen. Nur einmal lesen für den Einstieg finde ich da etwas wenig.

    Erste Anlaufstelle sind bei mir immer die GalileoComputing-Openbooks. Dort gibt es auch ein sehr gutes C#-Buch, welches sehr umfassend ist (und man komplett kostenlos lesen kann).

    Ich habe seit ein paar Monaten intensiveren Kontakt mit der Sprache C# und dem .NET-Framework und ich muss sagen, dass ich vollkommen beeindruckt von der Sprache bin. Selten sowas geniales gesehen. Die Sprache ist noch leichter und intuitiver als Java, hat ein sehr mächtiges Fundament mit dem .NET-Framework und ist überraschend schnell für ein auf Bytecode basiertes Konzept. Ich arbeite derzeit an einem komplexeren Projekt und dank C# kann ich 90% der Zeit mit Konzeptarbeit verbringen und benötige nur 10% für die Programmierung. Das Programmieren macht Spaß und hilft beim Entstehungsprozess statt ein weiteres Hindernis zu sein. Wow! Ich bin total begeistert!

    Damals hatte ich mich auch mal eine Zeit lang mit XNA-Programmierung beschäftigt. Allerdings ist Computergrafik nochmal eine ganze Stufe heftiger als "normale" Programmierung. Man sollte da schon ein ordentliches Vorwissen aufbringen.
    Ich hatte mir das Buch Professional XNA Programming geholt, kann hier aber sicher keine Empfehlung für Anfänger geben. Das Buch erwartet viel Vorwissen, bleibt dabei aber leider trotzdem oft nur oberflächig.

    Was ich aber auf jeden Fall empfehlen kann sind die Video-Tutorials von 3D Buzz. Im Gegensatz zu anderen professionellen Video-Tutorials wie von Video2Brain nimmt man sich hier extrem viel Zeit wirklich alles langsam und detailiert zu erklären. Natürlich aber auf englisch. Und der Preis ist auch heftig. 100 Dollar kostet der Spaß. Dafür bekommt man aber auch über 100 Stunden professionelle Video Tutorials, die bei 0 mit C#, OOP und .NET starten und sich dann auf XNA, 2D und 3D hinarbeiten wird. Auf der Seite kann man sich auch die ersten Stunden kostenlos ansehen. Dort wird eine Text-Adventure Engine designt und implementiert. Sollte man bei interesse ruhig mal angucken.

    Wenn ich nach 10 Stunden arbeitstag mit dem Zug nach hause fahre hab ich meistens keine Lust ein Buch zu lesen. Zeit für ein Video hab ich aber dann doch. Find ich eigentlich ne feine Sache so ein Videotutorial ^^

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •