AndEngine und Eclipse unter Ubuntu aufsetzen

Bei AndEngine handelt es sich um eine Gameengine für Androidgeräte. Die Apps für diese Plattform werden ja bekanntlich in Java geschrieben. Und darum soll es hier auch gehen. Im ersten Schritt wird Eclipse aufgesetzt und anschließend nehmen wir die AndEngine in Betrieb. Im ersten Schritt muss also das Paket eclipse installiert werden. Danach sollte das Android SDK für Linux unter http://developer.android.com/sdk/index.html heruntergeladen werden und auf der Festplatte entpackt werden. Dann geht es in den Ordner tools des SDKs und dort wird dann

./android update sdk 

ausgeführt. Nun bestätigt man die Lizenz und installiert die verschiedenen SDK Versionen. Dies kann dabei einige Minuten dauern.

Nun kann man Eclipse starten. Beim ersten Start erscheint ein Begrüßungsbildschirm den man schließen kann. Danach sollte man unter Help -> Install new Software die Android Development Tools installieren. Dazu wird in dem sich öffnenden Dialog die URL http://dl-ssl.google.com/android/eclipse/ eingegeben und durch einen Druck auf den Add… Button hinzugefügt. Dann klicken wir die Checkbox Developer Tools an und betätigen die Installation mit dem Next… Button. Mittels eines Assistenten wird man nun durch die Installation geleitet. Nachdem die Installation beendet ist empfiehlt Eclipse einen Neustart der Umgebung. Diesem sollte Wunsch sollte man Folge leisten.

Nun benötigt Eclipse die Information wo das Android SDK sich auf der Festplatte befindet. Dazu geht man auf Window -> Preferences -> Android. Dort wählt man den Pfad des Android SDKs aus und bestätigt den Dialog mit OK.

Die grundlegende Konfigurationsarbeit ist damit geleistet. Nun kann mit dem ersten Projekt begonnen werden. Dazu gehen wir auf File -> New -> Project und wählen dort Android Project aus und klicken dann auf Next. In dem darauf folgenden Dialog geben wir dem Projekt einen Namen z.B. Hello World. Im Feld Package Name geben wir den Namen des Package an z.B. net.seeseekey.hello_world und bei Activity name z.B. FormMain und bei Application name z.B. Hello World und bestätigen das ganze mit dem Finish Button.

Danach wird automatisch das Grundgerüst für eine Android Applikation erzeugt. Sollte es beim Erzeugen der Anwendung der Fehler

Project ‚RuntimeAndroid‘ is missing required source folder ‚gen‘
The project cannot be built until build errors are resolved 

auftreten so hilft es die R.java Datei zu löschen. Sie wird danach automatisch neu erzeugt. Wenn wir nun auf den grünen Play Knopf (Run) in der Symbolleiste klicken so startet Eclipse das Programm im Android Emulator. Beim ersten Start sollte allerdings ein Dialog erscheinen welcher einem anbietet ein virtuelles Gerät für den Emulator anzulegen. Nachdem dies geschehen ist, wird das Hello World Programm im Emulator geladen und ausgeführt. Und schon ist das erste Hello World Programm geschrieben und die Funktionsfähigkeit der IDE getestet.

Nun geht es an die AndEngine. Erst einmal holen wir uns den Sourcecodes mittels hg (Mercurial) auf die Festplatte:

hg clone https://andengine.googlecode.com/hg/ andengine
hg clone https://andengineexamples.googlecode.com/hg/ andengineexamples 

Anschließend importieren wir das andengineexamples Projekt (File -> Import…) in den Workspace. In dem Projekt AndEngineExamples sind dabei viele Beispiele zur Anwendung der Engine zu finden.

Nun nehmen wir unser bereits angelegtes Hello World Projekt und erzeugen in diesem (mittels New -> Folder) einen Ordner namens lib. In diesen kopieren wir die andengine.jar aus dem AndEngine Examples Projekt. Nun klicken wir mit der rechten Maustaste auf die andengine.jar und wählen dort Build Path -> Add To Build Path… aus. Damit ist die Bibliothek referenziert. Nun gehen wir in unsere Activity, in diesem Fall FormMain und löschen dort alles bis auf die packages Zeile. Nun fügen wir dort folgenden Quelltext ein:

public class FormMain extends BaseGameActivity {
	// Konstanten
	private static final int CAMERA_WIDTH = 720;
	private static final int CAMERA_HEIGHT = 480;

	// Variablen
	private Camera mCamera;

	@Override
	public Engine onLoadEngine() {
		this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
		return new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.mCamera));
	}

	@Override
	public void onLoadResources() {
	}

	@Override
	public Scene onLoadScene() {
		this.mEngine.registerUpdateHandler(new FPSLogger());

		final Scene scene = new Scene(1);
		scene.setBackground(new ColorBackground(0, 0, 0.8784f));

		return scene;
	}

	@Override
	public void onLoadComplete() {

	}
}

Anschließend werden mittels Strg + Shift + O alle benötigten Importe in die Datei eingefügt. Wichtig ist es jetzt noch dem Manifest folgende Zeile hinzuzufügen:

<uses-permission android:name="android.permission.WAKE_LOCK"/>

Nun kann man das ganze im Emulator starten. Es dürfte ein blauer Bildschirm angezeigt werden. Nun kann man sich damit beginnen das ganze mit Leben zu erfüllen :)

Weitere Informationen gibt es unter:
http://www.andengine.org/
http://code.google.com/p/andengine/
http://code.google.com/p/andengineexamples/
http://developer.android.com/sdk/installing.html
http://www.andengine.org/forums/tutorials/getting-started-updated-t2198.html
http://www.andengine.org/forums/tutorials/andengine-core-terminology-t316.html
http://www.andengine.org/forums/tutorials/getting-started-with-andengine-t11.html
http://www.andengine.org/forums/tutorials/eclipse-andengine-and-helloworld-t380.html
http://www.andengine.org/forums/tutorials/mimminito-s-tutorial-list-t417.html

Secret of Evermore – zu zweit?

Secret of Evermore ist ein Spiel für das SNES. Im Gegensatz zur Secret of Mana Reihe (welche einen Mehrspielermodus bot) besitzt Secret of Evermore keinen Mehrspielermodus. Wobei nun müsste es richtig heißen es besaß keinen Mehrspielermodus. Bei Secret of Evermore war es nämlich schon immer möglich beide Charaktere zu steuern. Der andere Charakter wurde dann von der KI übernommen. Nun hat sich jemand die Arbeit gemacht und einen Patch für Secret of Evermore erstellt welcher diesem einen Mehrspielermodus hinzufügt, so das man beide Figuren steuern kann. Zu finden ist dieser Patch unter http://fusoya.eludevisibility.org/soe/index.html. Viel Spaß beim ausprobieren :)

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Secret_of_Evermore

Lunar Magic

Dank vieler Emulatoren haben eine Menge Spiele und Konsolen ihre Renaissance erlebt. So wurde viele ROMS in andere Sprachen übersetzt und einige ROMS so verändert das sie schon als neues Spiel durchgehen. Für ein Spiel gibt es sogar einen mächtigen Leveleditor. Die Rede ist von Super Mario World für das Super Nintendo. Für dieses Spiel gibt es einen Editor namens Lunar Magic. Mit diesem Editor kann man die Level von Super Mario World problemlos anpassen und das ganze anschließend spielen. Zu finden ist der Editor dabei unter http://fusoya.eludevisibility.org/lm/index.html.

Weitere Informationen gibt es unter:
http://www.smwiki.net/wiki/Lunar_Magic
http://magicstone.de/rhwiki/article/Hauptseite
http://www.smwiki.net/wiki/Super_Mario_World
http://de.wikipedia.org/wiki/ROM_%28Spielmodul%29#ROM-Hacking

Gamecube und Wii Emulator

Vor einiger Zeit laß ich etwas über den Gamecube Emulator Dolphin und dachte mir es ist mal wieder Zeit auf deren Webseite vorbeizuschauen. Auf http://www.dolphin-emu.com erwartete mich dann die Überraschung. Dolphin emuliert mittlerweile nicht nur das Gamecube System sondern auch die Wii von Nintendo. Darüber hinaus gibt es Dolphin mittlerweile in einer Version für Linux und Windows (jeweils 32 und 64 Bit Version). Da sollte man mal schauen wie sich dieses Projekt in Zukunft entwickelt.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Dolphin_%28Emulator%29

SNES Emulatoren unter Linux

SNES Emulatoren unter Linux sind so eine Sache. Wir haben da einmal SNES9x, ZSNES und noch einen Emulator den ich aber erst später nennen möchte :) Unter Windows benutze ich immer SNES9x. Das war dort für mich das Non Plus Ultra. Ein schöne Oberfläche und er machte wofür er gemacht ist: Spiele emulieren. Leider sieht es mit der Oberfläche für SNES 9x nicht ganz so rosig aus. Und Fullscreen wollte er bei mir auch nicht laufen. Von der Controllerunterstützung unter Linux in Verbindung mit SNES9x fange ich jetzt gar nicht erst an. Für Windows ist SNES9x unter http://www.snes9x.com/ zu finden.

Also musste eine Alternative her. Diese Alternative war ZSNES. Beim ersten Mal ist die Oberfläche gewöhnungsbedürftig, aber besser als gar keine Oberfläche ;) ZSNES ist dabei zu großen Teilen in Assembler geschrieben, was sich spürbar auf die Geschwindigkeit auswirkt. Die Controllerunterstüzung ist auch spitze, es funktioniert einfach. Und für Netbooks ist es dank der geringen Resourcenbelastung ideal. ZSNES ist dabei unter http://www.zsnes.com/ zu finden.

So und nun zum dritten Emulator im Bunde den ich persönlich bevorzuge (wenn ich nicht gerade auf dem Netbook spiele). Dieser Emulator emuliert das SNES dabei so genau wie möglich und verzichtet vollständig auf irgendwelche Hacks. Nachteil an dieser Philosophie ist, das der Emulator einen recht leistungsstarken Rechner benötigt. Der Vorteil ist, das bis auf drei Spiele (deren Spezialchips noch nicht emuliert werden) alle anderen Spiele ohne Probleme laufen. Die Rede ist hierbei von bsnes welcher unter http://byuu.org/bsnes/ zu finden ist. Es gibt ihn dabei für Windows und Linux und er baut auf dem Qt Framework auf. Der Code steht dabei unter GPL.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/SNES
http://de.wikipedia.org/wiki/SNES-Emulator