Technische Informationen

Hier sind einige Technische Informationen über die Q-Pop Engine, die durch "reverse Engineering" hearusgefunden wurden.

## Tilemapping

Tilemapping ist eine Technik, bei der ein Level aus kleinen Kästchen den *Tiles* (eng. Fliesen) zusammengesetzt werden. Diese Technik wird vor allem bei Jump-and-Run-Spielen sowie klassischen Strategiespielen angewendet. Die anordnung der Tiles bezeichnet man als *Tilemap*. Die Grafiken für die Tiles bezeichnet man als *Tileset*. Neben der Grafischen bedeutung habe Tiles auch Metadaten, z.B. welche Tiles Hindernisse sind, und welche animiert werden.

Q-Pop verwendet Tilemapping für die Ausbreitungsrunde und die Sammelrunde.

In der Ausbreitungsrunde ist das Tileset in der MEER.DAT und besteht aus Tiles mit der Größe 16x16 Pixel. Ferner enthält die MEER.DAT noch die Sprites für die Tiere und die Explosion für den Meteoriteneinschlag. Die Weltkarte besteht aus 28x28 Tiles, wobei ein Rand aus einem Tile immer Wasser ist. Zusätzlich zur Tilemap gibt es auch ein Höhenrelief, das die Höhe über dem Meerespiegel angibt, und notwendig ist, damit sich durch Klimaänderungen nicht die Landmassen verschieben. Tilemap und Höhenrelief werden, zusammen mit der Liste mit den Einheiten gespeichert.

In der Sammelrunde ist das Tileset bei Q-Pop als Resource in der EXE-Datei enthalten, und bei Magnetic Planet ind der BACKGROU.DAT. Die Tiles sind 64x64 Pixel groß. Die Elektroschlange besteht ebenfalls aus besonderen Tiles (in der ELEKTRO.DAT), wird aber mit den Sprites gezeichnet. Die Tilemap ist 100x100 Tiles groß und hat einen 3 Tiles großen Rand, der mit Gebirge und "Ende der Welt"-Schildern bedeckt ist. Die Sprites befinden sich in einer zweiten Schicht. Positive Werte (0x01-0x7F) sind Indices in eine Liste mit Raubtieren. Hohe bzw. negative Werte (0xF0-0xFF) stehen für Weibchen und Konkurenten. Die Abtastung erfolgt merkwürdigerweise senkrecht statt waagrecht.
Die Tilemap für die Sammelrunde wird jede Runde neu erzeugt, und kann nicht bearbeitet werden. Es ist allerdings möglich sie im laufenden Spiel mit dem Borland Turbo-Debugger für 16-Bit Windows zu bearbeiten.

## Windows Sprites

Für einfache Zeichenoperationen mit der Windows-API verwendet man die Funktion BitBlt(), die ein Rechteck zwischen zwei Bitmap-Objekten überträgt. Diese Funktion ermöglicht neben einfachen kopieren auch Boolsche Operationen auf die Grafik anzwenden. Um ein Sprite zu zeichen braucht man eine zeite Bitmap als Transparenzmaske. Wenn ein Pixel Transparent sein soll, muss er in der Transparenzmaske weiß, und in der eigentlichen Bitmap schwarz sein. Andere Pixel sind in der Transparenzmaske schwarz, und haben den Farbwert in der eigenlichen Bit. Um ein Sprite zu zeichnen wird zuerst die Transparenzmaske mit einer UND-Verknüßpfung gezeichnet, und dan die eigentliche Bitmap mit einer ODER-Verknüpfung.

## "Alternative Skins" under Windows 3.1

Q-Pop hat seinen eigen Stil für die grafische Benutzeroberfläche. Soetwas wird bei neueren Programmen *Skin* genannt und Windows bietet seit Windows XP funktionen an um, die Darstellung von Steuerelementen zu verändern. Unter Windows 3.1 war soetwas allerdings nicht möglich. Q-Pop kann seine Fenster im eigenen Stil zeichnen, indem es einfach auf Windows Steuerelemente verzichtet, und alles (Knöpfe usw.) selbst zeichnet, und direkt auf Mausklicks reagiert anstatt Ereignisse von Steuerelementen abzufragen. Deswegen sehen auch z.B. die Knöpfe im oberen Balken aus wie unter Windows 3.1. und das Fenster kann auch nicht verschoben werden.

## Q-Pop erscheint nicht auf der Taskleiste

Q-Pop verwendet (im Gegensatz zu Magnetic Planet) anscheinend kein eigenes Fenster sondern zeichnet direkt auf das Desktop (NULL-Zeiger als Gerätekontext). Wenn es minimiert wird verkleinert es das Fenster und zeigt einen Balken an. Das ähnelt dem Verhalten unter Windows 3.1, wo ein minimiertes Fenster als Icon auf dem Desktop erscheint.

Dass man überhaupt auf das Desktop zeichnen hat hat durchaus einen Nutzen (z.B. für Bildschirmschoner), es ist aber bei neuen Programmen zu empfehlen ein eigenes Fenster zu öffnen.

## Musik als MIDI-Datei

Wenn Q-Pop ein Lied abspielt wird es unter C:\WINDOWS\TEMP\QPOP.MID (bzw. C:\WINDOWS\TEMP\MP.MID) abgespeichert, und an einen anderen Prozess übergeben. Sie können es also von dort herauskopieren, um es anzuhören.

Sie können allerdings auch die Musik einfach bei Frunit herunterladen.