# AntMe!

AntMe! ist eine in C# geschriebene Simulationssoftware für Windows, die Programmieranfängern das Thema künstliche Intelligenz näherbringen und einen leichten Einstieg in die Sprachen C# oder Visual Basic bieten soll. AntMe! gehört zur Gattung der Serious Games und es ist eines der Projekte der von Microsoft ins Leben gerufenen Initiative „coding4fun“; Projektleiter und Initiator ist Uwe Baumann von Microsoft.
Zwischendurch wurde für das AntMe!-Projekt die AntMe Limited gegründet, die das Projekt unter diesem Namen weiterentwickelte und betrieb. Mitte 2011 ist aus der AntMe Limited dann der AntMe! e. V. geworden. Dadurch ist AntMe! jetzt vollständig gemeinnützig. Die Firma Microsoft ist weiterhin offizieller Partner des Projekts.
Bei der Simulation geht es darum, eine KI für ein Ameisenvolk zu programmieren. Man muss den Ameisen beibringen, Zucker oder Äpfel zu sammeln und Käfer zu bekämpfen. Es ist auch eine Spezialisierung möglich, wodurch manche Völker nur Käfer bekämpfen, andere dagegen nur Zucker sammeln. Den Einstieg in das Programm erleichtern mehrere Video-Tutorials.
Seit April 2007 gibt es eine voll funktionsfähige Version. Im September 2008 wurde die Version 1.6 veröffentlicht, in der unter anderem Teambildung implementiert wurde, so dass man nun auch im Modus XvsX spielen kann. Durch die Auslagerung der Spielkonfiguration sind auch Varianten wie „Capture The Apple“ möglich und bei den Entwicklern sehr beliebt.

## Voraussetzungen

Für AntMe! wird neben der Software AntMe! das .NET Framework in der Version 2.0 und eine Integrierte Entwicklungsumgebung benötigt. Empfohlen wird das Microsoft Visual Studio, das es auch in einer kostenlosen Express-Variante gibt. Visual Studio 2010 ist für Windows XP ab Service Pack (SP) 3, Windows Server 2003 ab SP 2, Windows Vista ab SP 2 und Windows 7 verfügbar. Anstelle von Microsofts Visual Studio ist z. B. auch die Verwendung von SharpDevelop als Entwicklungsumgebung möglich. AntMe! empfiehlt sein Ameisenvolk in C# zu programmieren, es ist jedoch auch mit Hilfe aller anderen Sprachen des .NET Frameworks, wie z. B. Visual Basic oder C++/CLI, möglich.

## Download

AntMe! kann man nach einer kostenlosen Registrierung auf der offiziellen Website herunterladen. Dort gibt es neben AntMe! für C# und Visual Basic auch den Quelltext von AntMe!. Nach dem Download des ZIP-Files muss man die Dateien entpacken und in ein anderes Verzeichnis kopieren. Indem man die Datei „Spieler.sln“ öffnet, kann man mit dem Programmieren beginnen.

## Eigene Klasse

Die „Spielwiese“, in der man sich bewegt und programmiert, ist bereits eine eigens von AntMe! entwickelte, das Ameisenvolk repräsentierende, Klasse von C#. Sie erbt von der Klasse Basisameise.

## Ereignis-Programmierung

Die Programmierung von AntMe! basiert auf einer ereignisgesteuerten Programmierung. Das heißt, dass bestimmte Methoden vom Simulationsprogramm aufgerufen werden, wenn ein bestimmtes Ereignis eintritt. Konkret bei AntMe! sieht das zum Beispiel so aus: Wenn die Ameise ein Stück Zucker sieht, dann wird die Methode SiehtZucker aufgerufen. Die Anweisungen, die in dieser Methode stehen, werden dann ausgeführt. Das könnte bewirken, dass die Ameise das Stück Zucker nimmt und zu ihrem Bau trägt.
Die Möglichkeit, eine Klasse so einzurichten, dass ihre Objekte auf Ereignisse reagieren, ist ein Privileg moderner Programmiersprachen wie C#.

## Tutorials

Für AntMe! gibt es verschiedene Tutorials. Auf der offiziellen Website gibt es sowohl geschriebene als auch Video-Tutorials. Auch im Community-Forum finden sich einige hilfreiche Anleitungen.

## Plugins

Seit dem neuen Plug-in-Konzept der Version 1.6 können interessierte Nutzer auch selbst Plugins schreiben und dem Programm hinzufügen. Da der Quellcode von AntMe! öffentlich zugänglich ist, können auch dort eigene Veränderungen getätigt werden.
Für Plugins gibt es die Schnittstellen IPlugin, sowie IConsumerPlugin und IProducerPlugin. Sie finden sich im Namespace AntMe.SharedComponents.Plugin.

## Code-Beispiele

Der AntMe!-Code ist lokalisiert. So gibt es in der deutschsprachigen Variante Methoden wie GeheZuBau oder Nimm(zucker).
Folgende Code-Schnipsel sollen beispielhaft die Programmierung von AntMe! zeigen: