IT-Academy Logo
Sign Up Login Help
Home - Programmieren - Portable Spieleentwicklung



Portable Spieleentwicklung

Nachdem Linux nun auch auf privaten PC's immer stärkere Verbreitung findet, ist es an der Zeit sich bei der Entwicklung von Spielen gedanken zu machen, wie man Spiele so programmieren kann das Sie auf verschiedenen Betriebssystemen laufen.


Autor: Martin Heinlin (maanhe)
Datum: 25-08-2003, 20:51:26
Referenzen: keine
Schwierigkeit: Fortgeschrittene
Ansichten: 7098x
Rating: 6 (3x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



1. Emulatoren:

Die einfachste Möglichkeit für Spieleentwickler ist der Einsatz von Emulatoren. Die Spiele werden für ein System entwickelt und können unter jedem Betriebssystem gespielt werden für den ein Emulator verfügbar ist. Wird ein Spiel zum Beispiel für Windows entwickelt, kann es unter Linux zum Beispiele mittels des Emulators wine gespielt werden.

Problem:

Emulatoren bilden das Original-System nach und verbrauchen für aktuelle Systeme zum Teil enorme Rechenleistung. Daher sind Emulatoren in aller Regel deutlich langsamer als das Orginalsystem.

Vorteil:

Kein Mehraufwand bei der Entwicklung der Spiele

2. Java

Java funktioniert ähnlich wie ein Emulator. Das Spiel wird in Java programmiert und kompiliert. Mittels der Virtuell Machine kann es auf jedem System ausgeführt werden, für die eine Virtuell Machine verfügbar ist.

Problem:

Java ist sehr langsam, zu langsam für die meisten aktuellen Spiele.

Vorteil:

Kaum Mehraufwand für Entwickler

3. Portable C/C++ Bibiotheken

Für C/C++ existieren viele portable Bibiotheken, die speziell für die Entwicklung von Spielen entwickelt wurden.

3.1 Simple Direct Media Layer

Diese Bibiothek ist mit DirectX vergleichbar, sie ist für sehr viele Betriebssysteme wie Windows, Linux oder BeOS verfügbar. Sie enthält alles was man zum Entwickeln von Spielen braucht, Grafikfunktionen, Soundfuktionen, Tastatur-, Maus-, Joystickfunktionen... Es gibt inzwischen sehr viele erweiterungen, die es zum Beispiel erlauben MP3-Dateien oder alle möglichen Grafikformate einzubinden. Für 3D-Spiele bietet SDL auch eine OpenGL-Schnittstelle an.
Weitere Infos:
www.libsdl.org
www.libsdl.de

3.2 Allegro

Die Allegro-Bibiothek ist vergleichbar mit SDL und ebenfalls für viele Betriebssysteme wie z.B. BeOS, Linux, DOS, QNX oder Windows verfügbar.
Weitere Infos:
alleg.sourceforge.net/index.de.html

3.3 GLUT und OpenGL

GLUT ist eine einfache Schnittstelle für OpenGL und ist für viele Betriebssysteme verfügbar. GLUT umfasst allerdings nur Funktionen für Grafik und Steuerungsfunktionen (Tastatur, Maus, Timer usw.) Wer seine Spiele mit Sound ausstatten will, kann zum Beispiel OpenAL verwenden. OpenAL ist eine relativ neue Bibiothek die es ermöglicht Geräsche quasi beliebig im Raum zu verteilen. Stereo und Dolby Surround Effecte sind damit kein Problem.
Weitere Infos:
www.opengl.org
www.openal.org

3.4 DirectX

DirectX ist die bekannteste Bibiothek für Spieleprogrammierer, allerdings nicht sonderlich portabel, daher sollte man bei der Entwicklung von portablen Spielen lieber die Finger davon lassen.

Ergäzung:

In den hier aufgeführten Bibiotheken wurde des öfteren OpenGL erwähnt. OpenGL ermöglicht es 2D oder 3D Grafiken zu programmieren, die durch die Grafikkarte sehr schnell verarbeitet werden kann und so den Prozessor entlastet. Allerdings beötigt OpenGL immer eine Schnittstelle zum Betriebssystem, wie SDL oder GLUT.

Nachteile der C/C++ Bibiotheken

Entwickler müssen Ihre Spiele unter jedem Betriebssystem neu kompilieren

Vorteile

Sehr schnell, da keine zusätzliche Rechenleistung für die Emulation oder Virtual Machine benötigt wird.


dreamer
Expert
Beitrag vom:
14-08-2006, 22:44:17

Java ist kein Emulator

Die Java Virtual Machine als Emulator oder ähnlich zu Emulatoren zu bezeichnen, ist meiner Ansicht nach nicht richtig. Emulatoren sind Programme die Programme in Machinensprachen übersetzen für andere Betriebssysteme als für die sie ursprünglich compiliert wurden. Der Java-Bytecode dagegen ist ein Zwischencode der durch ein zusätzliches Programm weiter verarbeitet wird um so durch das Betriebssystem ausgeführt werden zu können.

Aber ansonsten hat mich der Artikel gut gefallen. Davon hätte ich gerne mehr!

-----------------------------------------------------


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04508
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06243
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1144
Comments: 0