Mit ‘Coding’ getaggte Beiträge

Hallo liebe Freunde der Programmierung,

Moontaximöglicherweise erinnert sich der eine oder andere von euch an das kleine Spaß-Projekt das ich vor Jahren mal erstellt habe? Es nennt sich MoonTaxi und ist im Grunde ein Spiel, das die Idee aus Space Taxi (C64) übernommen hat. Ein kleines, schwebendes Taxi (a la fünftes Element), gesteuert vom Spieler, muss in einem mehr oder weniger komplizierten Level verschiedene Taxi-Gäste aufsammeln. Gesteuert wird mit Steuerdüsen und zum Trotz der Gravitation und der Trägheit.

In ein paar ausführlichen Blog-Einträgen hatte ich damals detailiert beschrieben, wie das Spiel funktionert. (Teil 1, Teil 2, Teil 3). Damals noch mit XNA. Letzte Woche hatte ich aber mal spontan Lust das Ganze nochmal schnell mit MonoGame zu reproduzieren und habe dazu eine 6-teilige Video-Reihe gemacht. Wer also lieber Videos schaut anstatt zu lesen, der sei herzlich willkommen.

Viel Spaß damit
Tom

AntMe! 1.7.2 is out

Veröffentlicht: 16 Februar 2015 in AntMe!
Schlagwörter:, ,

Und wieder gibt’s ein kleines Update für unser allseits beliebtes Ameisenspiels. Diesmal gehen die Veränderungen aber eher Richtung Bugfixing und interne Änderungen. Aber das offensichtlichste zuerst: Der neue Dialog für die Konfiguration eines freien Spiels. Er orientiert sich jetzt etwas mehr an gängigen Strategiespielen und bietet die verfügbaren Spielerslots für die KI-Zuweisung an. Damit einher gingen ein paar Änderungen im Ablauf der Spiel-Konfiguration.

freegame

Warum das Ganze? Ganz einfach. Mit der Online Anbindung und weiteren Ideen werden neue Spiel-Modi in Form von neuen Plugins hinzukommen. Dabei teilen sich diese Modi ein paar zentrale Funktionen wie beispielsweise die Auswahl der Spieler KI. Deshalb gibt es jetzt auch eine weitere Assembly „PlayerManagement“ für diverse Auswahl-Dialoge.

Sonstige Veränderungen in der Schnell-Übersicht

  • Plugins werden jetzt nur noch aus dem Programm-Pfad geladen
  • Änderungen bei der Plugin-Selektierung werden sofort gespeichert (dann wichtig, wenn man im Spielmodus das Programm direkt über Visual Studio stoppt)
  • Source oder Quelle heißt jetzt Mode bzw. Modus. Außerdem ist die Auswahl-Combo Box im Hauptfenster durch ein ordentliches Menü ersetzt.
  • XNA Anzeige hat eine Info-Seite zur Steuerung bekommen
  • XNA Lokalisierung funktioniert jetzt richtig
  • Es gibt jetzt einen VB.NET Code Generator für deutsch und englisch
  • Kaputte Kreis-Ameisen entfernt 😉

Für kommende Update stehen noch ein paar wirklich wichtige Dinge auf dem Plan. Lasst mich aber wie immer gerne wissen, was ihr vermisst, dringend braucht, cool fändet,…

  • Fehlerhafte Simulation (Falsche Angaben bei „ZurückgelegteStrecke“, Berechnung von „BrauchtNochTräger“ und maximale Markierungsgröße,…)
  • Zufallsgenerator für die Maps überarbeiten
  • Dokumentation

Also direkt mal downloaden!!!

Ich wünsche wie immer ganz viel mit den Ameisen
Euer Tom

AntMe! Classic Refresh: AntMe! 1.7

Veröffentlicht: 6 Januar 2015 in AntMe!
Schlagwörter:, , ,

Wer das Projekt schon eine Weile verfolgt, der weiß, dass die Entwicklung an Version 2.0 in vollem Gange sind. Leider geht es aber dann doch nicht so schnell, wie ich es mir gewünscht hätte. Durch die gescheiterte Crowdfunding Kampagne beschränkt sich die Arbeit am Projekt wieder einmal auf die verfügbare Zeit fernab anderer Projekte, mit denen ich die Finanzierung sichern muss. Keine Sorge: Es bleibt dennoch genügend Zeit um kontinuierlich weiter zu arbeiten.

Ich will euch aber meine Fortschritte in einzelnen Bereichen nicht vorenthalten, weshalb ich einige der Features Stück für Stück parallel auch in die „alte“ Version integrieren möchte. Die ist schließlich auch schon etwas in die Jahre gekommen und hat mal ein Update verdient.

Natürlich lassen sich die Verbesserungen an der Ameisen-API nur schwer auf die alte Version anwenden, aber so gibt es auch Dinge, die sich schlichtweg aufdrängen. Einige der Sachen sind bereits in der angehängten Version integriert, andere werden in weiteren Updates folgen.

Aber was meine ich damit?

AntMe! auf Framework 4.0

Die vermutlich wichtigste Änderung mit 1.7 ist die Verwendung eines etwas moderneren .NET Frameworks. Wo die bisherige Version auf Version 2.0 aufgebaut hat, können nun alle Sprach- und Framework Features der 4.0 verwendet werden. Warum nur 4.0 und nicht 4.5 oder gar 4.5.1? Mir persönlich wären neuere Versionen auch lieber, aber mit 4.0 kann AntMe! weiterhin die Kompatibilität mit Windows XP garantieren, was für viele Bildungseinrichtungen leider immer noch ein wichtiges Thema ist. Aber immerhin. LINQ und Co sind dabei!

3D Darstellung auf XNA

xna previewIch sehe einige von euch beim Lesen mit Fragezeichen über dem Kopf 😉 Der eine oder andere wird sich fragen, warum ich mich dafür entschieden habe. Die Antwort ist einfach: Die bisherige Darstellung wurde mit den Managed DirectX Libraries realisiert, die mit dem neuen Framework leider nicht mehr kompatibel sind. In Anbetracht der vorhandenen Assets und des Codes lag eine DirectX-basierte Library naheliegend. XNA kann ich schon, es existiert eine funktionierende Content Pipeline und es gibt ordentliche Integrationen für den msi-Installer. Im Vergleich zum Ärger, den unsere Spieler mit der Abhängigkeit zu MDX hatten, ist XNA dennoch eine klare Verbesserung. (Stichwort LoaderLock Exception).

Leider ist der Umstieg auf XNA auch einer der größten Problemkinder des Updates. Leider ist der Code nicht 100% kompatibel und die Assets machen unter XNA auch andere Sachen als erwartet. Aus diesem Grund stellt die aktuelle Version beispielsweise noch keine Markierungen und Labels dar. Bin dran…

Ein richtiges Setup mit installierten Binaries

SetupWorauf ich besonders stolz bin, ist die radikale Verbesserung der „Installations Experience“, wenn man das bei der alten Version überhaupt so nennen kann. Version 1.7 kommt als Installer-File und installiert die fertig kompilierten Libs ordnungsgemäß in das Programme-Verzeichnis. AntMe! lässt sich jetzt also ordentlich installieren und anschließend auch wieder deinstallieren. Das fixt ein paar kleinere Probleme. Das Prominenteste: Das CHM-File, in dem die Tutorials sind, musste bei der alten Version noch manuell vom Spieler als „sicherer Inhalt“ markiert werden. Mit der Installation erübrigt sich dieses Problem. Was mich zum nächsten Spielzeug führt:

Der Ameisen Projekt Generator

AmeisengeneratorNachdem das Programm ja nun richtig installiert wird, fehlt das Standard Ameisen-Template aus dem bisherigen Download Paket. Das wird aber durch ein weiteres tolles Feature ersetzt: Den Template Generator. Damit kann man für jede neue Ameise auch gleich ein komplett neues Set an Solution-, Project- und Class-File erzeugen. Der Generator sorgt auch automatisch dafür, dass die Namespaces und Klassennamen dank der vorherigen Namenseingabe etwas mehr Variation kriegen und nicht alle Spieler mit dem selben Projekt arbeiten.

Multi Language

Was mich dazu führt zu erwähnen, dass der Generator auch Code für unterschiedliche Muttersprachen erzeugt. AntMe! konnte zwar schon seit Version 1.6 mehrere Sprachen (genaugenommen deutsch und englisch), aber das Template war bisher nur in deutscher Sprache. Wer also englisch coden wollte, musste sich das Template selbst basteln. Da lohnt es sich ja fast nicht zu erwähnen, dass die UI inzwischen auch übersetzt ist.

Online Anbindung

Aus Entwicklungssicht ist aber die Anbindung an das Online System das vermutlich wichtigste Feature. Man kann sich nun mit Hilfe seiner Zugangsdaten der Website am Client anmelden. Das ist die Grundlage für jegliches Online Feature (Multiplayer, Achievements, Nachrichtensystem,…) das in Zukunft von allen Plugins angesprochen werden kann. Da lohnt es sich ja schon garnicht mehr zu sagen, dass das Spiel inzwischen auch selbst rausfinden kann, ob es online eine neue Version gibt – ihr werdet also automatisch über eine Version 1.7.1 informiert.

Neue Spiel-Settings

Game SettingsZuletzt dann noch ein fast schon unscheinbares Feature, das ich einfach mal mit aufgenommen habe, weil die Sachen eh schon fertig waren. Ich hatte mal vor Jahren ein paar alternative Game Settings für einen Wettbewerb gemacht. Diese Settings fanden aber nie den Weg in die Release und wurden auch sonst nirgends verwendet. Eine Verschwendung. Neben dem Default-Setting gibt es nun auch einen Spielmodus namens „Capture the Apple“ 😉

So! Das soll‘s erstmal gewesen sein. Bitte lasst mich wissen, wie euch dieses Update gefällt, ob es für euch Sinn macht, was noch fehlt. Ich würde diesen Entwicklungs-Pfad auch nutzen, um in der alten Version noch den einen oder anderen Bug zu entfernen. Da stehen noch einige Sachen auf meiner Todo.

Zum Download

Doch jetzt endlich der lang ersehnte Download-Link:
https://service.antme.net/Download

Seit 7 Tagen wage ich ein kleines Experiment: Ich entwickle in einer Serie aus täglichen Videos ein Spiel – gemeinsam mit euch. Das Ganze ist weder gut vorbereitet, noch gibt es einen festen Plan, wo es hinführen soll. Das Spiel entwickelt sich im Laufe der Zeit auf Basis von Kommentaren und Hinweisen, die sich zu den Videos ansammeln.

OctoAwesomeDas Konzept unterscheidet sich maßgeblich von typischen Tutorials, da der Inhalt weder speziell aufbereitet, noch passend strukturiert ist. Ganz nach dem beliebten Konzept der Lets Plays von Computerspielen, geht’s eher um das unterhaltsame Beobachten eines typischen Entwicklers.

Die Vorgehensweise orientiert sich da am täglichen Arbeitsablauf eines Programmierers. Wir fangen auf der grünen Wiese an und erweitern das Projekt Stück für Stück. Zu beobachten ist also kein Sprecher, der seinen Vortrag auf die Minute genau geplant hat, sondern Tom, der ein neues Features implementieren will, dabei auf Probleme stößt, nach Lösungen suchen muss und hin und wieder Fehler implementiert. Zusätzliche Experten kommen hinzu, um gezielt bei bestimmten Technologien unterstützen.

Inzwischen sind wir in der siebten Folge und haben einen Spiel-Client geschaffen, bei dem ein animiertes 2D-Männchen über eine Wiese gesteuert werden kann. Aktuell hat das Projekt einen Kurs Richtung RPG im 2D-Stil. Bisher. Sei also dabei und gestalte das Spiel mit!

 

Dies ist nicht das erste Lets Code, das ich mache. Es läuft bereits ein ähnliches Format – spezialisiert auf AntMe! – bei dem es einerseits um die Spezialisierung von Ameisen, aber auch um die Entwicklung weiterer Plugins fürs Spiel geht.