program Hallo;
begin
writeln('Hallo Welt');
end.
1. Was ist Pascal?
2. Compiler und IDE
Zur plattformübergreifenden Open-Source-Programmierung empfiehlt sich vor allem der Freepascal-Compiler. Er wird benötigt, um den eingegebenen Quellcode in Maschinensprache zu übersetzen, also zu kompiiieren. Unter Windows werden so .EXE und auch .DLL-dateien erzeugt. Der Freepascal-Compiler kann auf der Seite http://www.freepascal.org heruntergeladen werden. Er ist auch in der Lage, Code für ARM-Plattformen zu erzeugen.
3. Getting started
Um das Programmieren mit Pascal zu erlernen, empfiehlt es sich, Tutorials durchzuarbeiten:
Dazu kann man die Entwicklungsumgebung FPC.EXE nutzen. Pascal-Text eingeben und dann auf Run klicken. Synthaxfehler (also wenn was falsch geschrieben ist) meldet der Compiler mit Zeilennummer und Position. Die aktuelle Position des Cursors lässt sich am unteren Rand des Fensters ablesen
http://www.lernnetz-sh.de/kmLinux/doc/Pascal-Tutorial/pade.htm
http://www.muenster.de/~m-frost/
http://www.wirthi.at/w/Pascal-Tutorial
Dann kann man sich auch mal dranmachen, verschiedene Algorithmen mit Pascal zu implementieren.
Der Klassiker wäre z.B. ein Bubblesort:
http://de.wikipedia.org/wiki/Bubblesort
oder auch andere:
http://de.wikipedia.org/wiki/Liste_von_Algorithmen
wobei die Sortieralgorithmen besonders zu empfehlen sind, da leicht zu verstehen..
Was man dann auch mal angehen könnte, wäre, einen RECORD-Satz oder eine Textdatei auf die Festplatte zu schreiben und zu lesen.
Dann wäre es noch sinnvoll, das Unit-Konzept verstanden zu haben und auch mal selbst eine kleine Unit kompiliert und benutzt zu haben. In diese Kategorie fällt seit Freepascal auch das Erstellen eigener DLL-Dateien unter Windows. Allerdings sind für solche Dinge die Änderungen im Quelltext gegenüber einem normalen Programm doch recht überschaubar...
4. Spieleprogrammierung
Ein nettes Beispiel für ein in Pascal geschriebenes Spiel ist hier zu finden:
http://www.wieringsoftware.nl/mario/
Allerdings noch für DOS. Der Sourcecode läuft nicht auf Freepascal, aber man kann ihn sich für das uralte Turbo Pascal 5.5 runterladen, was inzwischen ebenfalls frei erhältlich ist.
Das Programm hat leider auch viel Assembler-Code. Dieser wird hauptsächlich für Ein- und Ausgabe sowie Sprites benutzt. Unter Windows werden mit den richtigen Hilfsmitteln genau diese Routinen nicht mehr notwendig sein. Das Interessante an dem Spiel ist auch vielmehr die dahinter stehende Logik.
Das Hilfsmittel, was die Spieleprogrammierung -plattformübergreifend- stark vereinfacht, ist die Simple Direct Media Layer-Bibliothek:
http://www.libsdl.org/
Die SDL-Dateien kommen als Bibliotheken (unter Windows DLLs), welche in C geschrieben wurden. Sie
-vereinfachen den Zugriff auf bestimmte Hardwarefunktionen, gerade hinsichtlich Multimedia und Spiele, gegenüber dem Aufruf von Betriebssystemfunktionen
-Gestalten den Zugriff auf bestimmte Hardwarefunktonen (Tastaturabfrage etc.) für das zu entwickelnde Programm auf allen Betriebssystemen einheitlich.
Um diese Routinen aus Freepascal anspechen zu können, gibt es verschiedene Projekte:
State of the Art ist eigentlich das JEDI-SDL-Projekt, was verschiedene Units liefert um die SDL-Bibliotheken anzusprechen:
http://www.delphi-jedi.org/
http://sourceforge.net/projects/jedi-sdl/
Veraltet: http://sdl4fp.sourceforge.net/
Installationstipps gibt es hier:
http://www.lazarusforum.de/viewtopic.php?f=10&t=2457
Kleine Beispielprogramme werden bei JEDI-SDL bereits mitgeliefert. Die Endung der Beispiele ist allerdings .dpr, da sie für Delphi gedacht sind. Die meisten Beispiele lassen sich aber auch mit Freepascal ausführen, sofern sie keine Main-Unit besitzen.
Weitere tiefergehende Erklärungen und Tutorials für OpenGL und SDL finden sich hier:
http://wiki.delphigl.com/index.php/
Interessant sind die Einsteiger- Grundlagen und SDL-Tutorials.
Da das ganze plattformübergreifend läuft, sollte es eigentlich möglich sein, erste Schritte mit Pascal auf Windows zu lernen, und dann später ARM-Code für die Pandora zu programmieren.
-- Fr Feb 12, 2010 22:42 --
So, hab noch mehr zum Thema Spieleprogrammierung mit Freepascal:
1) Beispiel-Game "Sheepkiller" in 3D, mit nem Wikinger, der Schafe abmetzelt. Natürlich komplett Open Source.
http://www.lugato.net/thesheepkiller/
Wenn ich meine Pandora hab, wird als eine der ersten Handlungen mal versucht, dieses Game für die Pandora zu kompilieren...
2) Das Pascal Gamer Magazine
Ein sehr informatives und hochwertig aufgemachtes Szene-Magazin, was sich jeder Interessierte im PDF-Format umsonst runterladen kann. Mit interessanten Interviews und Neuigkeiten, aber auch Anregungen zum praktischen Programmieren bezüglich der Spieleprogrammierung mit Pascal, Delphi und co. Auch Open Source und die Independent-Szene haben hier eine Plattform.
http://www.pascalgamer.com/
Erste Ausgabe von Juli 2009: Link
Ich hoffe sehr, dass noch viele Ausgaben folgen werden.
begin
writeln('Hallo Welt');
end.
1. Was ist Pascal?
Wikipedia.de said:Die Programmiersprache Pascal (benannt nach Blaise Pascal) wurde von Niklaus Wirth an der ETH Zürich 1972 als Lehrsprache eingeführt, um die strukturierte Programmierung zu etablieren.
Pascal ist eine Weiterentwicklung von Algol 60.
Die Sprache wurde von Niklaus Wirth als Lehrsprache entwickelt. Sie wurde deshalb so einfach und strukturiert wie möglich gestaltet. Ihre große Verbreitung in der professionellen Programmierung fand sie als Borland/Turbo Pascal (Delphi) – gegenüber dem Ur-Pascal wesentlich erweiterte und verbesserte Versionen.
Pascal zeichnet sich durch eine strikte und einfach verständliche Syntax sowie durch den Verzicht auf kontextabhängige Interpretationen des Codes aus. Somit erlaubt Pascal im Vergleich zu Sprachen wie C und Fortran eine gute Lesbarkeit und, verglichen mit Fortran, auch eine bessere Unterstützung von strukturierter Programmierung.
Ein wichtiges Konzept, das Wirth zur Anwendung brachte, ist die starke Typisierung (engl. "strong typing"): Variablen sind bereits zur Übersetzungszeit einem bestimmten Datentyp zugeordnet, und dieser kann nicht nachträglich verändert werden. Typenstrenge bedeutet, dass Wertzuweisungen ausschließlich unter Variablen gleichen Typs erlaubt sind.
[...]
http://de.wikipedia.org/wiki/Pascal_(Programmiersprache)
2. Compiler und IDE
Zur plattformübergreifenden Open-Source-Programmierung empfiehlt sich vor allem der Freepascal-Compiler. Er wird benötigt, um den eingegebenen Quellcode in Maschinensprache zu übersetzen, also zu kompiiieren. Unter Windows werden so .EXE und auch .DLL-dateien erzeugt. Der Freepascal-Compiler kann auf der Seite http://www.freepascal.org heruntergeladen werden. Er ist auch in der Lage, Code für ARM-Plattformen zu erzeugen.
Freeascal.org said:Free Pascal (aka FPK Pascal) is a 32 and 64 bit professional Pascal compiler. It is available for different processors: Intel x86, Amd64/x86_64, PowerPC, PowerPC64, Sparc, ARM. The discontinued 1.0 version also supports the Motorola 680x0. The following operating systems are supported: Linux, FreeBSD, Mac OS X/Darwin, DOS, Win32, Win64, WinCE, OS/2, Netware (libc and classic) and MorphOS.
[...]
The language syntax has excellent compatibility with TP 7.0 as well as with most versions of Delphi (classes, rtti, exceptions, ansistrings, widestrings, interfaces). A Mac Pascal mode, largely compatible with Think Pascal and MetroWerks Pascal, is also available. Furthermore Free Pascal supports function overloading, operator overloading, global properties and several other extra features.
3. Getting started
Um das Programmieren mit Pascal zu erlernen, empfiehlt es sich, Tutorials durchzuarbeiten:
Dazu kann man die Entwicklungsumgebung FPC.EXE nutzen. Pascal-Text eingeben und dann auf Run klicken. Synthaxfehler (also wenn was falsch geschrieben ist) meldet der Compiler mit Zeilennummer und Position. Die aktuelle Position des Cursors lässt sich am unteren Rand des Fensters ablesen
http://www.lernnetz-sh.de/kmLinux/doc/Pascal-Tutorial/pade.htm
http://www.muenster.de/~m-frost/
http://www.wirthi.at/w/Pascal-Tutorial
Dann kann man sich auch mal dranmachen, verschiedene Algorithmen mit Pascal zu implementieren.
Der Klassiker wäre z.B. ein Bubblesort:
http://de.wikipedia.org/wiki/Bubblesort
oder auch andere:
http://de.wikipedia.org/wiki/Liste_von_Algorithmen
wobei die Sortieralgorithmen besonders zu empfehlen sind, da leicht zu verstehen..
Was man dann auch mal angehen könnte, wäre, einen RECORD-Satz oder eine Textdatei auf die Festplatte zu schreiben und zu lesen.
Dann wäre es noch sinnvoll, das Unit-Konzept verstanden zu haben und auch mal selbst eine kleine Unit kompiliert und benutzt zu haben. In diese Kategorie fällt seit Freepascal auch das Erstellen eigener DLL-Dateien unter Windows. Allerdings sind für solche Dinge die Änderungen im Quelltext gegenüber einem normalen Programm doch recht überschaubar...
4. Spieleprogrammierung
Ein nettes Beispiel für ein in Pascal geschriebenes Spiel ist hier zu finden:
http://www.wieringsoftware.nl/mario/
Allerdings noch für DOS. Der Sourcecode läuft nicht auf Freepascal, aber man kann ihn sich für das uralte Turbo Pascal 5.5 runterladen, was inzwischen ebenfalls frei erhältlich ist.
Das Programm hat leider auch viel Assembler-Code. Dieser wird hauptsächlich für Ein- und Ausgabe sowie Sprites benutzt. Unter Windows werden mit den richtigen Hilfsmitteln genau diese Routinen nicht mehr notwendig sein. Das Interessante an dem Spiel ist auch vielmehr die dahinter stehende Logik.
Das Hilfsmittel, was die Spieleprogrammierung -plattformübergreifend- stark vereinfacht, ist die Simple Direct Media Layer-Bibliothek:
http://www.libsdl.org/
libsdl.org said:Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used by MPEG playback software, emulators, and many popular games, including the award winning Linux port of "Civilization: Call To Power."
SDL supports Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX. The code contains support for AmigaOS, Dreamcast, Atari, AIX, OSF/Tru64, RISC OS, SymbianOS, and OS/2, but these are not officially supported.
SDL is written in C, but works with C++ natively, and has bindings to several other languages, including Ada, C#, D, Eiffel, Erlang, Euphoria, Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP, Pike, Pliant, Python, Ruby, Smalltalk, and Tcl.
SDL is distributed under GNU LGPL version 2. This license allows you to use SDL freely in commercial programs as long as you link with the dynamic library.
Die SDL-Dateien kommen als Bibliotheken (unter Windows DLLs), welche in C geschrieben wurden. Sie
-vereinfachen den Zugriff auf bestimmte Hardwarefunktionen, gerade hinsichtlich Multimedia und Spiele, gegenüber dem Aufruf von Betriebssystemfunktionen
-Gestalten den Zugriff auf bestimmte Hardwarefunktonen (Tastaturabfrage etc.) für das zu entwickelnde Programm auf allen Betriebssystemen einheitlich.
Um diese Routinen aus Freepascal anspechen zu können, gibt es verschiedene Projekte:
State of the Art ist eigentlich das JEDI-SDL-Projekt, was verschiedene Units liefert um die SDL-Bibliotheken anzusprechen:
http://www.delphi-jedi.org/
http://sourceforge.net/projects/jedi-sdl/
Veraltet: http://sdl4fp.sourceforge.net/
Installationstipps gibt es hier:
http://www.lazarusforum.de/viewtopic.php?f=10&t=2457
Kleine Beispielprogramme werden bei JEDI-SDL bereits mitgeliefert. Die Endung der Beispiele ist allerdings .dpr, da sie für Delphi gedacht sind. Die meisten Beispiele lassen sich aber auch mit Freepascal ausführen, sofern sie keine Main-Unit besitzen.
Weitere tiefergehende Erklärungen und Tutorials für OpenGL und SDL finden sich hier:
http://wiki.delphigl.com/index.php/
Interessant sind die Einsteiger- Grundlagen und SDL-Tutorials.
Da das ganze plattformübergreifend läuft, sollte es eigentlich möglich sein, erste Schritte mit Pascal auf Windows zu lernen, und dann später ARM-Code für die Pandora zu programmieren.
-- Fr Feb 12, 2010 22:42 --
So, hab noch mehr zum Thema Spieleprogrammierung mit Freepascal:
1) Beispiel-Game "Sheepkiller" in 3D, mit nem Wikinger, der Schafe abmetzelt. Natürlich komplett Open Source.
http://www.lugato.net/thesheepkiller/
Wenn ich meine Pandora hab, wird als eine der ersten Handlungen mal versucht, dieses Game für die Pandora zu kompilieren...
2) Das Pascal Gamer Magazine
Pascal Gamer Magazine said:Pascal Gamer Magazine is a free, online, downloadable (PDF) publication with a focus on game development and design with Pascal and Object Pascal development tools. It will have many great features for those interested in programming, level design, the commercial and independent game industry, news and highlights on Pascal tools technologies and other developers as well as the latest games made with our beloved tools.
Ein sehr informatives und hochwertig aufgemachtes Szene-Magazin, was sich jeder Interessierte im PDF-Format umsonst runterladen kann. Mit interessanten Interviews und Neuigkeiten, aber auch Anregungen zum praktischen Programmieren bezüglich der Spieleprogrammierung mit Pascal, Delphi und co. Auch Open Source und die Independent-Szene haben hier eine Plattform.
http://www.pascalgamer.com/
Erste Ausgabe von Juli 2009: Link
Ich hoffe sehr, dass noch viele Ausgaben folgen werden.