PDA

Vollständige Version anzeigen : "Programmieren - wie fange ich an?" aka "Lies' mich zuerst"


Jesus_666
08.12.2003, 00:07
Du willst also Programmieren lernen.
Wahrscheinlich willst du Spiele programmieren, vielleicht sogar einen neuen RPG Maker. Das ist ganz nett, aber du hast keine Ahnung, was du alles brauchst, um dein Ziel zu erreichen.
Das soll dieser Artikel ändern. Er soll dir vermitteln, was du alles brauchst, um Spiele oder was auch immer zu programmieren.


1. Kreativität und Zeit. Viel Zeit.
Das Thema der Kreativität lassen wir erst mal aussen vor.
Ohne Kenntnis einer Programmiersprache muss man sich noch keine Gedanken um Spielprinzip oder ähnliches machen.
Worüber man sich Gedanken machen muß ist das Programmieren des Spiels selber. Sprich: Du mußt eine Programmiersprache beherrschen, bevor du ein Spiel programmieren kannst.
Was brauchst du, um eine Programmiersprache zu lernen? Nun, zuerst brauchst du ein paar Programme, aber darauf kommen wir später zurück. Du brauchst auch und vor allem Geduld. Eine Programmiersprache muß man lernen wie eine normale Fremdsprache und das dauert. Syntax, Methoden und Techniken einer Programmiersprache müssen sitzen, bevor man ein derartig komplexes Projekt wie ein Spiel angehen kann.
Es ist nicht damit getan, zu sagen "Zeit? Hab ich... Ich bin zwar jeden Tag nach der Arbeit/Uni/Schule ziemlich fertig, habe aber so 2 Stunden Zeit um mich damit auseinander zu setzen. Das wird reichen." - Tut es nicht! So lange wird es bei komplexen Projekten alleine dauern, dich erst mal warm zu machen und dich in deinen Code einzulesen.
Die wichtigste Ressource, die ein Programmierer hat ist ununterbrochene Programmierzeit.

Noch wichtiger: Eine Programmiersprache lernt man nicht in drei Wochen, und um anspruchsvolle Spiele zu schreiben mußt du gut mit deiner Sprache umgehen können. Es kann Monate dauern, bis du soweit bist, dein erstes ernsthaftes Spiel in Angriff zu nehmen.
Du brauchst also eine Menge Zeit und Geduld.


2. Eine Programmiersprache
Ohne eine Programmiersprache kannst du nicht programmieren, logisch.
Die Wahl der Sprache ist nicht leicht, und jeder wird dir was anderes empfehlen. Für Anfänger ist eine IDE (Integrated Development Environment; Entwicklungsumgebung) empfehlenswert. Damit erleichterst du dir das Entwerfen deines Programms (und einen Teil des Programmierens selbst).
Gut, wir beschränken uns also auf die Sprachen, zu denen es IDEs gibt. Es gibt grundsätzlich zwei Arten von Sprachen: Compilersprachen und Interpretersprachen. Bei Compilersprachen wird deine Quellcode in ein Programm verwandelt, das so für sich lauffähig ist. Bei Interpretersprachen wird der Code einfach verpackt und später von einem andere Programm ausgeführt.
Interpretetsprachen neigen dazu, langsamer als Compilersprachen zu sein.
Hier einige der bekannteren Sprachen und IDEs:IDE Sprache Typ
--------------------------------------------------
Bloodshed Dev-C++ C++ Compiler
Borland C++ C++ Compiler
Microsoft Visual C++ C++ Compiler
Microsoft Visual C# (.net) C# Compiler
Borland Delphi Delphi Compiler
Microsoft Visual Basic Basic InterpreterWelche dieser Sprachen/IDEs du wählen solltest werden wir dir nicht sagen - da hat jeder eine andere Meinung, und deine Wahl sollte sich nach deinen Ansprüchen und nach nichts anderem richten. Am besten ist es wohl, wenn du mehrere Meinungen einholst und dir eigene Gedanken machst.


3. Also, ich habe freie Zeit und einen Compiler. Zeit, mein Spiel zu schreiben!
Hey hey, immer ruhig mit den jungen Pferden. Wie schon gesagt ist Spieleprogrammierung eine komplexe Angelegenheit. Eine 3D-Engine oder eine komplette Spiele-IDE (wie den RPG Maker) kann man nicht ohne Erfahrung aus dem Ärmel schütteln.
Am Besten besorgst du dir ein Buch zur Sprache und ein paar Tutorials und machst ein paar kleine Projekte... Kreuzen und Nullen. Tetris. Pac Man. Super Mario Bros. Am Besten in dieser Reihenfolge, denn sie sind nach Schwierigkeit sortiert.
Lies' Tutorials. Bau' Beispielcode nach und schreibe ihn dann um. Erweitere ihn. Welche Techniken du zuerst lernst hängt vom Buch/Tutorial ab.

4. Konzept: (v. Malakai)
Bevor ihr anfangt ein Spiel o.Ä. zu programmieren, solltet ihr vorher eine grössere Konzeptphase machen. Es bringt nichts, mit ein, zwei Ideen einfach drauflos zu programmieren und dann nach 2 Monaten keine Ideen mehr zu haben. In dem Konzept sollten (auf Spiele bezogen) Dinge wie Storyboard, einheitliche Programmierstile, Möglichkeiten und Grenzen des Projekts etc. besprochen werden. Joah, das wollte ich nur dazu sagen. Ohne ein gutes Konzept ist IMHO ein (Spiele)Projekt zum Scheitern verurteilt.


Nun weißt du, daß es kein so kleiner Schritt ist, ein Spiel zu programmieren. Wenn du wirklich eins machen willst mußt du eine Menge Zeit, Geduld und Nerven investieren. Dafür bietet dir die Programmierung das, was alle schweren Unterfangen bieten: Ein verdammt gutes Gefühl wenn du erst mal fertig bist.

Falls wir dich mit diesem Artikel nicht abgeschreckt haben wünschen wir dir viel Spaß in der bunten Wunderwelt der (Spiele)programmierung.
-- Freezy und Jeez

MuadDib
24.12.2003, 19:26
Da mir an diesem Weihnachtsmorgen ausserordentlich langweilig ist, versuche ich mich einmal an einer wirklich brauchbaren und übersichtlichen Liste in Sachen verschiedene Programmiersprachen, auch wenn ich anfangs nur jene nennen kann, mit denen ich auch wirklich arbeite. Ev. findet sich jemand und ergänzt sie hinsichtlich Pascal und Konsorten. Ich versuche allerdings nur die Sprachen und die dafür erforderlichen Voraussetzungen ansich aufzulisten, Dinge wie ein GLUT-Framework oder spezielle Toolkits lass ich aussen vor.

C, C++

Jesus said it all...

Kostenlose Compiler, IDEs
Für diese sehr mächtige und umfangreiche Programmiersprache gibt es eine Reihe von (guten) Compilern und (mässigen) Entwicklungsumgebungen. Ich selbst hab lange nach einer wirklich guten IDE dafür gesucht und bin schliesslich und endlich wie Jesus auf die

Bloodshed Dev-C++ (http://www.bloodshed.net/devcpp.html) IDE gestossen. Sie verwendet standardmässig den MinGW Compiler und ist auch für große Zwecke ziemlich gut geeignet. Alternativ dazu sei die
NetBeans IDE (http://www.netbeans.org/) genannt. Diese wurde zwar ursprünglich für Java geschrieben, allerdings gibt es dementsprechende C++ Erweiterungen


In Sachen kostenloser Compiler empfehle ich uneingeschränkt

DJGPP (http://www.delorie.com/djgpp/)der auch aus gutem Grund auf so ziemlich jeder C++ CD mit dabei ist.


Für Linux und andere Unix Systeme sieht die C-Welt da um einiges besser aus: Da das Betriebssystem ja selbst in C geschrieben ist, ist standardmässig der Gnu C-Compiler (GCC) dabei. Auch gibt es eine Reihe Entwicklungsumgebungen, angefangen von normalen Editoren (Kate ist nett) bis hin zu Projekt-Orientierten Tools ist alles vorhanden. Wer KDE verwendet hat mit KDevelop eine wirklich tolle IDE, auch wenn die Projekte wirklich gruselig viel Dateien erstellen.

Kommerzielle Software

Microsoft Visual C++ (http://msdn.microsoft.com/visualc/
): IMO der wohl beste C++-Compiler für Windows, leider. Visual Studio ist umfangreich und mächtig, und für große Projekte wirklich 1a, allerdings - wie gesagt - kommerziell. Die IDE ist im Vergleich zum Compiler auch sau-langsam und frisst enorm viel Speicher. Bedingt empfehlenswert, ... ich komme mit den obigen Tools aus :). Kostenpunkt: 115€
Borland C++Builder (http://www.borland.com/cbuilder/): Ich kann nicht viel dazu sagen... die Borland IDEs sind meiner Erfahrung nach ziemlich gut, allerdings ist der Compiler wirklich nicht besonders und hat verdammt viele Eigenheiten, die - sofern man anderes gewohnt ist - das Leben schwer machen können. Dafür gibts den Compiler (http://www.borland.com/cbuilder/cppcomp/index.html) auch umsonst. Die aktuelle Version kostet 145€


Bücher

Die C++-Programmiersprache von Bjarne Stroustrup, dem geistigen Vater der Sprache. Ein wirklich umfassender Überblick über sämtliche Designkonzepte der Sprache und ein wirklich gutes Nachschlagewerk. Wer Erfahrungen mit Programmiersprachen hat, kann auch mit diesem Buch so ziemlich alle Konzepte von C++ erlernen. Mit etwas Glück bekommt an die Edition mit The-Programmer's-Best-Friend: einer Addison-Wessley Kaffeetasse. Preis: 50€
Go To C-Programmierung von Guido Krüger. Wer zuerst das normale Ansi-C erlernen will, und sich erst mit damit Grundlagen erbauen will, bevor er sich mit den Erweiterungen von C++ auseinandersetzt, sollte unbedingt hier zugreifen. Ein wirklich tolles Buch. Auch wird kurz Windows und Linux Programmierung angeschnitten, allerdings sollte schon ein kleines bisschen Programmiererfahrung vorhanden sein. Preis: 40€
C++, das Grundlagenbuch von Gerhard Willms. Dieses Buch gibt es über Amazon zwar nicht mehr, ist aber im guten Fachbuchhandel für ca. 10€ zu haben. Zwar nicht so ausführlich wie Stroustrup, allerdings weit einsteigerfreundlicher und zugänglicher. Wer sich die wahnwitzige Idee in den Kopf gesetzt hat, mit C++ Programmieren zu erlernen, hat eventuell mit diesem Buch Glück dabei.


Java

The Duke is on his way...

Kostenlose Compiler, IDEs
Für Java gibt es mittlerweile auch schon eine Reihe von Compilern, allerdings ist man am allerbesten immer noch mit der SDK des Erfinders bedient:

Java2 SE SDK (http://java.sun.com/j2se/1.4.2/download.html): Dieses Software Development Kit enthält eigentlich alles, um Java Programme zu compilieren und auszuführen - und funktioniert bedeutend besser in Webbrowsern als die Standard-Version von Microsoft. Einen anderen Compiler würde ich auch nicht empfehlen, Finger weg von MS J++ und der IBM Variante.


Auch gibt es eine Reihe von IDEs, weit mehr und bessere als für bsp.weise C.


Eclipse (http://www.eclipse.org/): Ich arbeite noch nicht lange damit, bin allerdings schwerst begeistert. Allumfassende IDE -- komplett kostenlos. In Sachen Features steckt Eclipse dank der Erweiterbarkeit durch Open-Source Plugins jedes kommerzielle Tool in die Tasche. Für Anfänger sicher etwas viel in Sachen Umfang, für Fortgeschrittene und professionelle Anwender 1a Entwicklungsumgebung
JCreator (http://www.jcreator.com): Nicht ganz so kostenlos wie Eclipse, allerdings in einer Trail-Version vorhanden und sehr gut für Einsteiger. Man kann seine Programme sowohl in Projekte organisieren, als ihn auch als einfachen Java Editor mit Compilier-Funktion verwenden. Einige nette Features sind ebenfalls vorhanden. Ich programmier heute noch damit :)
NetBeans (http://www.netbeans.org): Auch sehr professionell und von Sun sogar empfohlen. Für JSP-Projekte auch wirklich eine tolle IDE, ich bin allerdings nie richtig warm damit geworden. Ausserdem läuft sie sehr, sehr langsam


Da man damit eigentlich sehr gut auskommen sollte, lasse ich die komerziellen Produkte weg. Das ganze ist natürlich alles Cross-Platform... es lebe Java :)

Bücher

Handbuch der Java-Programmierung von Guido Krüger. So... wenn ich jetzt das richtige Buch erwischt habe (ich hab leider nur eine HTML-Variante), so ist dieses Werk das IMO die Java-Bibel schlechthin. Ich hab noch kein Problem gehabt, dass ich nicht mit den Beispielen aus diesem Buch gelöst hätte. Sehr gut geschrieben und tolle Beispiele. Deckt auch so ziemlich alles ab, was die SE von Java bietet. Preis: 50€. Edit: Die HTML-Version dieses Buches gibt es kostenlos zum Download unter http://www.javabuch.de
Sprechen Sie Java? von Hanspeter Mössenböck. a.k.a Lern Programmieren mit der Verwendung von Java. Relativ billig, und für Einsteiger, die mit Java Programmierkonzepte und dergleichen erlernen wollen, ist dieses Buch sehr zu empfehlen. Programmier-Erfahrene werden wenig Freude damit haben. Preis: 30€
Java in a Nutshell von David Flanagan. Wie für alle O'Reilly Nutshells gilt: Umfassendes Nachschlagewerk (v.a. für die Java Klassenbibliothek), und auch nur als solche zu gebrauchen. Preis: 46€


C#

Für diesen MS-Neuling gibt es mittlerweile auch schon einiges zu haben, wenngleich das ganze ziemlich MS-Dominierend ist.

Kostenlose Compiler, IDEs

Windows:

Das ganze ist voll und ganz kostenlos, allerdings auch nur von Microsoft zu haben. Um C# zu programmieren benötigt man das .NET Framework (http://msdn.microsoft.com/netframework/technologyinfo/howtoget/default.aspx) und die .NET Framework SDK (http://www.microsoft.com/downloads/details.aspx?FamilyId=9B3A2CA6-3647-4070-9F41-A333C6B9181D&displaylang=en). Mehr ist eigentlich nicht nötig.

Als kostenlose IDE bietet sich sehr gut SharpDevelop (http://www.icsharpcode.net/OpenSource/SD/Default.aspx) an. Eine OpenSource IDE für C#.

Linux:
Unter Linux sieht .NET sehr traurig aus. Es gibt einige Projekte, die Plattform zu portieren, allerdings sind alle noch im Entwicklungsstadium und werden von MS nicht wirklich unterstützt. Wer daran interessiert ist, sollte folgende Links besuchen

Project Mono (http://www.go-mono.com/)
DotGNU (http://www.gnu.org/projects/dotgnu/)


Allerdings ist .NET Entwicklung unter Linux noch ein Traum...

Kommerzielle Software
Kurz und bündig: Microsoft Visual C#. Viel langsamer als SharpDevelop, dafür genau auf die .NET Programmierung ausgelegt. Ich bin kein wirklicher Freund davon, ausserdem ist es den hohen Preis nicht wert.

Bücher

Softwareenticklung mit C#. Ein kompakter Lehrgang von Hanspeter Mössenböck. Der Name sagt alles. Nicht mehr und nicht weniger wird einem geboten :). Für Einsteiger sehr gut! Preis: 30€
Die .NET Technologie von Hanspeter Mössenböck u.a. Als Ergängzung zum obrigen, wer C# also kann und nun wirklich die Möglichkeiten des .NET Frameworks ausschöpfen wil. Preis: 41€
C# in a Nutshell von Peter Drayton. Wie alle Nutshells: Tolles Nachschlagewerk, zum Lernen ungeeignet.
Go To C# von Armin Harnisch. Sehr guter Überblick über C# und die neuen Konzepte. Für Programmier-Erfahrene sehr gut zur Einschulung geeignet. Preis: 40€


Wer Java sehr gut kann, und sich mit C# auseinandersetzten will, ist mit diesen PDFs (http://www.ssw.uni-linz.ac.at/Teaching/Lectures/CSharp/) sehr gut bedient. Mehr ist eigentlich nicht nötig.


So, ich hoffe das hier kommt etwas an und wird eventuell erweitert. Wer weiß, vielleicht wird auch ein "offizieller Thread" daraus, was nicht unbedingt schlecht wäre :).

Frohes Fest euch allen!

Freezy
25.12.2003, 02:11
...

Pascal (Delphi, ObjectPascal, whatever)

Kostenlose Compiler/IDE`s

BloodShed Dev-Pascal (http://www.bloodshed.net/devpascal.html): Open Source mit intigrierten GNU-Pascal oder Free-Pascal Compilern für Programme/DLL`s die unter Windows laufen. Daumen Hoch :A

Komerzielle Programme

Borland Delphi (http://www.borland.de/delphi_net/index.html): Mein persönlicher Fav. Sehr gute IDE, schneller Compiler, einfaches Debuggen uvm. Preis ist mir derzeit nicht bekannt. Erstell Programme/DLL`s für Windows und Linux*

Bücher

Turbo Pascal 7.0 - Das Kompendium (http://www.amazon.de/exec/obidos/ASIN/3827251664/qid=1072292514/sr=2-2/ref=sr_aps_prod_2_1/302-3751488-1516011): Um die Techniken selbst zu erlernen Ideal. Leider bezeiht sich dieses Buch auf die auf MS-DOS version (TP7.0) des Compilers.

* Nur Version 7. Ansonsten Kylix verwenden!

Jesus_666
27.12.2003, 01:53
Ich stelle in diesem Post ein kleines Lexikon mit Begriffen zusammen, die einem in diesem Forum früher oder später über den Weg laufen könnten.
Erweiterungen und Änderungsvorschläge bitte nicht posten, sondern per PM an mich schicken; das spart Platz. Generelle Fragen und ommentare können gepostet werden, allerdings werden alle Informationen in diesem Post bleiben.
Der "rev. *"-Zusatz hinter dem Threadnamen wird immer um einen erhöht, wenn ich das Lexikon erweitere oder ändere.
Einträge sind mit dieser Farbe gekennzeichnet.

API (Application Program(ming) Interface; Schnittstelle für Anwendungsentwicklung) - Offengelegte Programmierschnittstelle einer Anwendung oder eines Betriebssystems. Ermöglicht es, eigene Funktionen zu integrieren und mit dem Betriebssystem/dem Programm zu kommunizieren
App (abk.: application) - Anwendung. Die englische Version von Prog

Binary (pl. Binaries) - Ein fertig kompiliertes Programm
Bug - Ein Fehler in einem Programm

Code (alias Sourcecode, Quellcode) - Das, was man schreibt, um ein Programm zu erstellen
coden (alias proggen) - Code schreiben; programmieren
Compiler - Ein Programm, das Code in ausführbare Programme umsetzt

Debugger - Ein Programm, das dem Anwender hilft, Bugs in seiner Software zu finden und zu entfernen
Dotnet (alias .Net) - Software-Framework von Microsoft, die einfach zu erstellende und angeblich irgendwann portable Programme erlaubt, im Moment aber nicht mal auf Windows wirklich gut funktioniert. Wird oft mit Java verglichen

Framework - Ein Framework ist ein System, welches auf Basis eines Grundgerüsts verschiedene Komponenten für ein bestimmtes Anwendungsgebiet bereitstellt

GUI (Graphical User Interface, Grafische Benutzerschnittstelle) - Eine grafische Anwendungsoberfläche eines Programmes

IDE (Integrated Development Environment; Integrierte Entwicklungsumgebung) - Entwicklungsumgebung für Programmiersprachen, normalerweise mit einer GUI. Enthält für gewöhnlich Editor, Compiler und Debugger, aber auch zahlreichen Tools zur Erstellung eigener Programme

kompilieren - Mit einem Compiler aus Code ein Programm erstellen

Open Source - Open Source-Software (OSS) zeichnet sich dadurch aus, daß jeder Zugriff auf den Sourcecode hat. OSS entwickelt sich für gewöhnlich schneller als normale ("Closed Source"-)Software und paßt sich schneller an. Das bekannteste Beispiel für OSS ist Linux. Die Open Source-Initiative hat eine genauere Definition (http://www.opensource.org/docs/definition.php)

portabel - Ein portables Programm kann auf mehreren Betriebssystemen kompiliert werden und ist dort lauffähig
Prog (abk.) - Programm. Bezieht sich auf Programme in allen Entwicklungsstufen, ob kompiliert oder nicht
proprietär - Das Gegenteil von Open Source. Proprietärer Code gehört einem Unternehmen, bzw. einer Person; Andere haben keinen Zugriff

RAD (Rapid Appliaction Development; Schnelle Anwendungsentwicklung) - Ein Konzept zur schnellen Erstellung von Applikationen, welche u.A. auf Wiederverwendung von Softwarekomponenten und Mehrentwicklerbetrieb baut

SourceForge (alias SF) - Die Website www.sourceforge.net, eine Sammelstelle für Open Source-Projekte

Mit Erweiterungen von MuadDib

Master of Disaster
27.01.2004, 01:10
@MuabDib:
Mit MCS (Teil des Mono-Projekts, http://www.go-mono.com/c-sharp.html) gibts für C# mittlerweile auch einen freien Compiler für Windows, nur wie es mit der Kompatibilität zu Winzigweich aussieht weiß ich nicht. Wenn ich mal Zeit habe, und du nicht schneller bist, werd ich euch meine Erfahrungen zukommen lassen.

Was auch einmal festgehalten werden muß ist, daß HTML, CSS, XML und Konsorten *KEINE* Programmiersprachen sind! Es programmiert doch auch niemand in LaTeX oder RTF!?
JavaScript dagegen würde ich auch eher als Skriptsprache als Programmiersprache im klassischen Sinn definieren. Zumindest ist es noch einer Programmiersprache am Nächsten.

Gothic Magier 9000
21.07.2004, 19:06
Ich würde an deiner Stelle mit Delphi anfangen.
Diese Sprache ist einfach für den Anfang konzipiert und bietet eine Grundlage um Sprachen wie c++ später besser verstehen zu können.

Ich empfehle das Buch Delphi für Kids von Hans Georg Schuman

Später (Wenn du das gut beherschst) kannst du dir dann noch
das Buch 3d programmierung mit Delphi für Kids kaufen.

Freezy
21.07.2004, 23:30
Und ich würde mir an deiner Stelle erstmal die beiträge eines Treads durchlesen bevor man in diesem Postet. Niemand hat hier danach gefragt - es ist ein Info Tread.

dennis_meckel
23.07.2004, 01:30
Klasse, jetz kennen wir ein paar Complikfjösda...

Jedenfalls was bringt es denn Vollnubs (wie mich) wenn Ihr eine Liste von allen guten und zT. kostenlosen Programmen schreibt?

Jezt mal ne blöde Frage meinerseits...

Ich hab mir mal einen Screenshot von so einem Compiler angeschaut... Sind die Programme so aufgebaut wie HTML/PHP usw.? (also vom "Design"?)

Ich werd´s nie kapiern :(

---

bevor jemand motzt -> Info Thread

masterquest
14.11.2004, 17:10
Also, standardmäßig läuft das bei Compilern so:
Programm schreiben, Konsole öffnen, Befehl "compiler.exe prog.xyz" eingeben, dann compiliert der Compiler das und gibt auf der Kommandozeile lediglich Fehlermeldungen aus.

Auf Screenshots sieht man also nur 'ne Kommandozeile, also etwa so:
http://people.freenet.de/masterquest/non-site-pics/compiler.jpg
Sonst hast du Screens von einer Entwicklungsumgebung gesehen. Das ist ein Texteditor mit 'nem eingebauten Compiler und Debugger. Da drückst du nur auf einen Knopf, und das Programm wird kompiliert.