Programmieren lernen Kapitel 1 Einleitung

Tutorials zu verschiedenen Softwarenutzungen

Moderator: Moderatoren

Benutzeravatar
Jaegerfeld
Tribunus Angusticlavius
Tribunus Angusticlavius
Beiträge: 3571
Registriert: 10. November 2010 21:15
Wohnort: AudiCity
:
Pfeiler der Community Gewinner Userwahl

Programmieren lernen Kapitel 1 Einleitung

Beitragvon Jaegerfeld » 20. November 2010 09:51

Kapitel 1

Einführung


Hallo und herzlich willkommen zu meiner kleinen Einführung in das Programmieren im Allgemeinen und die Entwicklung einer Spieleengine im Besonderen. Im Zuge der nächsten paar Dutzend Kapitel werden wir ein kleines Adventure inklusive Editor erstellen.

Das Tutorial ist zweigeteilt. In der ersten Linie geht es um unser Adventure, hier werden wir uns direkt mit PC Spielen und ihrer Erschaffung beschäftigen. Im zweiten Part werde ich allgemeine Dinge erklären(z.b. wie man die Entwicklungsumgebung installiert oder was eine Klasse überhaupt ist).

Immer dann, wenn etwas neues eingeführt wird werde ich parallel ein paar allgemeine Erklärungen posten.

Beginnen möchte ich mit einer kurzen Bestandsaufnahme, damit ihr wisst worauf ihr euch einlasst.
Um was geht es und was muss ich jetzt schon können?

(Warum sollte ich Physik studieren, wenn ich mir eine viel bessere Welt erschaffen kann?)

Programmieren ist mit das kreativste was ein Mensch überhaupt tun kann. Der Programmierer erschafft allein mit der Kraft seines Vorstellungsvermögens und den Gesetzen der Logik eigene Welten, Grenzen gibt es wenig.(nur zu wenig Ressourcen :-))

Dabei ist es heutzutage nicht weiter schwer selber kleine Programme zu schreiben. Die modernen Programmiersprachen sind weitestgehend selbsterklärend und nehmen dem Entwickler viele Dinge ab. Die Maschinensprache zu sprechen ist, im Gegensatz zur Darstellung des Programmierers in der SF (Maschinenpriester etc.), schon lange nicht mehr nötig. Aber natürlich von Nutzen.

Wie in allen Künsten gibt es aber einen riesigen Unterschied zwischen dem begabten Amateur und echten Meistern.

Jeder kann ein Lied am Lagerfeuer trällern, Beethovens Werke aber sind von solcher Exaktheit und Genialität, dass es unglaublicher Erfahrung und Wissens bedurfte sie zu erschaffen. Wer sich mit der Musik des 18.Jhd. beschäftigt wird vielleicht erkennen, dass die großen Meisterwerke quasi programmiert wurden. Sie folgen ganz klaren Regeln und MUSSTEN so geschrieben werden wie sie sind.

Dies ist das eigentlich geniale daran. Beethoven hatte den Schlüssel zur Musik gefunden, praktisch das Wesen der Musik begriffen.

So ähnlich müsst ihr euch die Chefentwickler bei Crytek & Co. vorstellen. Sie leben und atmen ihre Arbeit, der Rest der Menschheit kann nur zusehen und staunen.

Vergesst einfach, dass ihr im Zuge dieser Textreihe zu so etwas fähig werdet. Dies erfordert jahrelanges hartes Training und sehr viel mehr Einsicht in die Mathematik als man aus ein paar Büchern lernen kann.

Aber wenn ihr es bis zum letzten Kapitel schafft und immer fleißig trainiert reicht es locker für "Hoch auf dem gelben Wagen" auf dem Pfadfindertreffen; um den Kreis zu schließen.
Was brauch ich denn nu?

Für den Anfang reicht:
  • Rudimentäre Kenntnisse der höheren Mathematik , oder wenigstens die Bereitschaft sich damit zu beschäftigen. Vor allem boolsche Logik wird essentiell werden. Wer schon mal ein Event für HOI2 geschrieben hat bringt Grundkenntnisse mit. Später wird Mathe immer wichtiger werden, spätestens bei 3D Grafik muss man einfach in der Lage sein ein Mathebuch zu lesen um an Informationen zu gelangen. Ein Mathe Leistungskurs ist sicher nie verkehrt, aber wie mir jeder Informatiker bestätigen wird ist die Schulmathe nach ca. 2 Wochen Studium am Ende ihres Könnens.
  • Englisch. Die englische Sprache ist die Verkehrssprache unserer Welt und vor allem in der Informatik die Sprache der Wissenschaft.Das ich mich für C# als Programmiersprache entschlossen habe, hat aber einen Vorteil: Ihr gewinnt als Partner einen riesengroßen Konzern (Microsoft), und im Gegensatz zur von Fachblättern wie Bild verbreiteten Meinung ist der Support bei MS herausragend.Jedenfalls für Programmierer. Zu so gut wie allem, was euch (Anfänger) interessieren könnte gibt 's seitenweise deutsche Erklärungen und meist sogar Webcasts (Videotutorials direkt von MS). Ihr werdet es lieben, versprochen. Trotzdem sollte man wenigsten Leo.org kennen.
  • Geduld, Geduld, Geduld. Es klingt komisch aber: Programmieren lernt man NUR durch Programmieren. Übung ist alles. Zum Glück könnt ihr so gut wie nichts kaputt machen. Also probiert herum und versucht so ständig etwas neues zu lernen.

Wenn diese Voraussetzungen gegeben sind können wir uns dem praktischen Teil widmen.

Benötigte Software:

Visual C# 2010 Express: http://www.microsoft.com/germany/expres ... ndows.aspx

Das ist die von uns benutzte Entwicklungsumgebung, praktisch der Werkzeugkasten. Die Express Version ist kostenlos und reicht für den Hobbyentwickler vollkommen. Die Kaufversionen haben keinen größeren Sprachumfang, sondern nur mehr Werkzeuge, die es dem Entwickler leichter machen. Die von mir verwendete Version kostet mehrere tausend Euro, die müsst ihr aber definitiv nicht ausgeben.

Visual Studio 2008 und 2010 erfordern mindestens XP SP3, Raubkopien müssen also vielleicht draußen bleiben.

Da ihr aber alle brave Entwickler seid ist das ja kein Problem.

Theoretisch könntet ihr C# Code auch mit Notepad schreiben, das ist aber eher was für Masochisten.



Leute mit langsamer DSL Verbindung und Vista/Win7 können auch gleich das hier:

http://go.microsoft.com/fwlink/?LinkID=189554

laden. Das ist das rundum sorglos Paket von MS. Hiermit erübrigen sich die anderen Downloads weiter unten.



NET 4.0

Jeder Windows 7 Besitzer hat das (hoffentlich) sowieso, der Rest findet es hier:

http://www.microsoft.com/downloads/en/d ... laylang=en

Bei der Installation von Visual C# 2010 Express sollte das eigentlich von selbst auf eurem PC landen. Wenn nicht, verwendet den Link.

Das .NET Framework ist ein riesiger Werkzeugkasten, das es euch ermöglicht moderne Programme zu schreiben.

Seine Ausprägung als C# ist entfernt mit JAVA verwandt. Nicht direkt, aber von der Idee her. Später dazu mehr.



XNA 4.0

Damit werden wir unser Spiel erstellen. XNA ist ein Aufsatz auf .NET, sozusagen ein Addon.

Für Vista und Win7 benötigt ihr diese Version:

http://go.microsoft.com/fwlink/?LinkID=189554



XP Besitzer müssen leider auf die Windows Phone Entwicklung verzichten und wählen diese Version:

http://go.microsoft.com/fwlink/?LinkId=197288



VS 2010 müsst ihr registrieren, dafür benötigt ihr eine Live ID.

Ist kein Problem und MS nervt auch eher wenig mit Spam, die Infos von MS sind sogar sehr gut.

Außerdem kann man sehr detailliert angeben zu welchen Themen man Informationen haben will. Die Masse wird euch noch gar nichts sagen, also lasst die Häkchen einfach weg.



Im nächsten Kapitel starten wir dann auch direkt mit dem ersten Programm. --->Kapitel 2
Zuletzt geändert von Jaegerfeld am 24. November 2010 20:49, insgesamt 2-mal geändert.
„Ich schätze mal, das kann jeder Online-Community passieren. Irgendwann stellen die höflichen und vernünftigen Leute fest, dass sie sich in dieser Gruppe nicht mehr aufhalten wollen. Also verschwinden die. Und diejenigen die übrig bleiben, erfahren nur noch die Leute die genau so wie sie drauf sind.“

=== David Gaider, Bioware ===

Benutzeravatar
Jaegerfeld
Tribunus Angusticlavius
Tribunus Angusticlavius
Beiträge: 3571
Registriert: 10. November 2010 21:15
Wohnort: AudiCity
:
Pfeiler der Community Gewinner Userwahl

Re: Programmieren lernen Kapitel 1 Einleitung

Beitragvon Jaegerfeld » 20. November 2010 09:55

Soooo, der erste Schritt ist online.
Ich werde heute noch das erste kleine Programm posten, danach geht es sukzessiv weiter.
Erst mal die Basics und sehr überschaubar, danach startet die zweite Tutorialreihe, die sich dann konkret mit dem Spiel beschäftigt.

Alle Tutorials erscheinen zuerst auf meiner Homepage, danach dann hier.
Wer schon mal einen Blick auf kommendes werfen will, kann sich mal mit MyAdventure auseinandersetzen.
Dorthin und darüber hinaus wird es gehen.

Ihr könnt immer im jeweiligen Thread Fragen stellen, ich werde versuchen alle zu beantworten.
Die einzelnen Kapitel bekommen jeweils einen eigenen Thread, ihr habt also Platz genug.

Grüße
Jaegerfeld
„Ich schätze mal, das kann jeder Online-Community passieren. Irgendwann stellen die höflichen und vernünftigen Leute fest, dass sie sich in dieser Gruppe nicht mehr aufhalten wollen. Also verschwinden die. Und diejenigen die übrig bleiben, erfahren nur noch die Leute die genau so wie sie drauf sind.“

=== David Gaider, Bioware ===

Benutzeravatar
pogotorte
Praefectus Fabrum
Praefectus Fabrum
Beiträge: 4805
Registriert: 4. November 2010 18:19
Wohnort: beim Stronomenkönig
:
Modder Team-SZ Gründer/Eigentümer der SZ

Re: Programmieren lernen Kapitel 1 Einleitung

Beitragvon pogotorte » 24. November 2010 20:04

Ich finde es großartig und habe mir vorgenommen mal Stück für Stück nachzubasteln :strategie_zone_22:
Besonders knuffig finde ich die locker-fluffigen Formulierungen zwischendurch mit denen das Ganze aufgelockert wird. So liest es sich wirklich wunderbar! :strategie_zone_5:
Bild
Forenregeln.......................................................................................Wer Hunde liebt, der wird auch Menschen mögen

Benutzeravatar
Jaegerfeld
Tribunus Angusticlavius
Tribunus Angusticlavius
Beiträge: 3571
Registriert: 10. November 2010 21:15
Wohnort: AudiCity
:
Pfeiler der Community Gewinner Userwahl

Re: Programmieren lernen Kapitel 1 Einleitung

Beitragvon Jaegerfeld » 24. November 2010 20:17

Danke schön. Ernste "programmieren lernen in 24 Tagen /Monaten/Jahren" Bücher gibt es schon genug.
Ich werde aber demnächst mal ein paar Leseempfehlungen posten, denn eines muss jedem klar sein:
Ich erkläre hier nur ganz ganz wenig. Wer sich wirklich damit beschäftigen will kommt um ein Fachbuch nicht herum.
Vor allem da ich teilweise stark vereinfache. Diese teilweisen sehr starken Vereinfachungen (die einem Programmiernazi sicher den nächsten Schlaganfall bringen)
löse ich nur auf sollte es notwendig werden.

Es bringt aber imho wenig wenn ich mich (wie in den meisten Anfängerbüchern) erst mal ein dutzend Seiten mit höheren Konzepten beschäftige, die eh kein Anfänger versteht.
Das ist mein Hauptkritikpunkt an der deutsche Technikliteratur.

In kürze geht es mit Kapitel 3 weiter, es ist schon fast halb fertig geschrieben.
„Ich schätze mal, das kann jeder Online-Community passieren. Irgendwann stellen die höflichen und vernünftigen Leute fest, dass sie sich in dieser Gruppe nicht mehr aufhalten wollen. Also verschwinden die. Und diejenigen die übrig bleiben, erfahren nur noch die Leute die genau so wie sie drauf sind.“

=== David Gaider, Bioware ===

Benutzeravatar
Karbe
Tribunus Angusticlavius
Tribunus Angusticlavius
Beiträge: 3097
Registriert: 12. November 2010 21:29
Wohnort: Leipzig
:
User des Monats Teilnahme an einem Contest Gewinner Tippspiel Pfeiler der Community Gewinner Userwahl
Kontaktdaten:

Re: Programmieren lernen Kapitel 1 Einleitung

Beitragvon Karbe » 24. November 2010 20:35

Ich werd mich kommende Woche auch mit in den WOrkshop einklinken. Wollte mir schon immer mal VB anschauen, bin aber bisher nie zu gekommen. Muss auch dazu sagen, daß Programmieren, egal ob objektorientiert oder mit Skriptsprachen, ganz und gar nicht mein Steckenpferd ist..

Grüße
Scheisse mit Erdbeeren.
Boah, schon wieder Erdbeeren :/


BildBild

Benutzeravatar
Jaegerfeld
Tribunus Angusticlavius
Tribunus Angusticlavius
Beiträge: 3571
Registriert: 10. November 2010 21:15
Wohnort: AudiCity
:
Pfeiler der Community Gewinner Userwahl

Re: Programmieren lernen Kapitel 1 Einleitung

Beitragvon Jaegerfeld » 24. November 2010 20:48

ich mach aber nix mit VB, das ist eklig (hehe, bekomm ich Kopfschmerzen von der syntax).
Aber für viele andere sicher sehr nützlich, jedenfalls wenn man mal etwas in Office machen will.

Sobald ich die Basics durchgehechelt bin gehts an die Spieleengine, später will ich dann vor allem Sachen erklären wie Wegfindung, Nearest neighbour probleme oder so komplizierte Dinge wie: "wie schaffe ich es in einer 3d Landschaft ein Modell anzuklicken". Das ist nämlich alles andere als trivial.

Die XNA Tutorials hören meist leider einfach auf nachdem man ein buntes Modell dargestellt hat.
Ein Spiel lässt sich damit meist eher wenig umsetzen. (außer Hau den Lukas vielleicht).
„Ich schätze mal, das kann jeder Online-Community passieren. Irgendwann stellen die höflichen und vernünftigen Leute fest, dass sie sich in dieser Gruppe nicht mehr aufhalten wollen. Also verschwinden die. Und diejenigen die übrig bleiben, erfahren nur noch die Leute die genau so wie sie drauf sind.“

=== David Gaider, Bioware ===

Benutzeravatar
pogotorte
Praefectus Fabrum
Praefectus Fabrum
Beiträge: 4805
Registriert: 4. November 2010 18:19
Wohnort: beim Stronomenkönig
:
Modder Team-SZ Gründer/Eigentümer der SZ

Re: Programmieren lernen Kapitel 1 Einleitung

Beitragvon pogotorte » 24. November 2010 21:52

Das was da folgt muss ich mir aber nicht als schnöde C++-Vorlesung an der Uni vorstellen (wo man es hört weil es halt irgendwie dazugehört oO), oder? Also thematisch, meine ich: So trocken die Themen runterreißen ohne Bezug zu irgendwas... Es führt schon alles zu einem Endziel hin, ja? (Vorsicht, das Nazometer schlägt aus :strategie_zone_255: )
Bild
Forenregeln.......................................................................................Wer Hunde liebt, der wird auch Menschen mögen

Benutzeravatar
Jaegerfeld
Tribunus Angusticlavius
Tribunus Angusticlavius
Beiträge: 3571
Registriert: 10. November 2010 21:15
Wohnort: AudiCity
:
Pfeiler der Community Gewinner Userwahl

Re: Programmieren lernen Kapitel 1 Einleitung

Beitragvon Jaegerfeld » 24. November 2010 21:59

das Endziel ist ein vollkommen lauffähiges Point & Click Adventure.
Wenn du einen Zwischenschritt sehen willst guck dir MyAdventure auf meiner Homepage an.
Das ist sozusagen ein prototyp.
„Ich schätze mal, das kann jeder Online-Community passieren. Irgendwann stellen die höflichen und vernünftigen Leute fest, dass sie sich in dieser Gruppe nicht mehr aufhalten wollen. Also verschwinden die. Und diejenigen die übrig bleiben, erfahren nur noch die Leute die genau so wie sie drauf sind.“

=== David Gaider, Bioware ===