Vulkan-Framework-Demoprogramm 12 (zelluläre Automaten und Wegfindung)

Im Rahmen des heutigen Programmbeispiels möchte ich Ihnen unter anderem demonstrieren, wie sich Tile-basierte Spielewelten mit Hilfe von zellulären Automaten prozedural generieren lassen. Vereinfacht ausgedrückt stellt ein zellulärer Automat das mathematische Pendant zu einem Einzeller dar.
Mit Hilfe einer sogenannten Geburtsregel legt man fest, unter welchen Bedingungen ein neuer Einzeller geboren wird. Beispiel: Wenn sich in der Nachbarschaft genügend andere Einzeller befinden, ist die Wahrscheinlichkeit sehr hoch (bis zu 100%), dass im Zuge des nächsten Simulationsschritts ein neuer Einzeller geboren wird.
Mit Hilfe einer Überlebensregel legt man hingegen fest, unter welchen Bedingungen ein Einzeller am Leben bleibt. Beispiel: Nur wenn sich in der Nachbarschaft eines Einzellers genügend andere Einzeller befinden, ist das Risiko gering (nahezu 0%), dass der betreffende Einzeller nicht als Beute eines anderen Lebewesens endet.
Mit Hilfe einer Sterberegel legt man darüber hinaus fest, unter welchen Bedingungen ein Einzeller sterben wird. Beispiel: Wenn sich in der Nachbarschaft eines Einzellers zu viele andere Einzeller befinden, wird der betreffende Einzeller im Zuge des nächsten Simulationsschritts an Unterernährung zugrunde gehen.

Ausleihbares E-Book: C++ Programmierung – Die ersten Schritte auf einem langen Weg

An dieser Stelle finden sich sämtliche Programmbeispiele aus unserem neuesten E-Book, mit dessen Hilfe ich Ihnen die Grundlagen der C++ Programmierung näher bringen möchte.

Über den nachfolgenden Amazon-Partnerlink gelangen Sie zur Detailseite des besagten E-Books:

C++ Programmierung – Die ersten Schritte auf einem langen Weg  (kostenlos ausleihbar)

Auch wenn Sie nicht an diesem E-Book interessiert sind und sich lediglich mit den Grundlagen der C++-Programmierung vertraut machen wollen, können Sie den nachfolgenden Download-Link verwenden, um sich eine Vielzahl von einfach nachvollziehbaren Programmbeispielen herunterzuladen. Doch erwarten Sie bitte nicht allzu viel, C++ ist eine so mächtige Programmiersprache, dass die besagten Programmbeispiele allenfalls ein wenig an der Oberfläche der einzelnen Themengebiete (Variablen, Funktionen, Kontrollstrukturen, Klassen- und Strukturobjekte, Templates, Vererbung, Multithreading, usw.) kratzen können. Und wer sich beispielsweise für die vielfältigen Einsatzmöglichkeiten der STL (Standard Template Library) interessiert, der wird an dieser Stelle lediglich in begrenztem Maße fündig werden.
Die meisten Programmieranfänger werden sich meiner Meinung nach sowieso erst einmal für ganz andere Dinge interessieren. Genau genommen ist es bereits eine nicht zu verachtende Leistung, wenn man beispielsweise einen Text auf dem Bildschirm ausgeben kann oder wenn man weiß, wie sich Zahlenwerte addieren, multiplizieren, subtrahieren oder dividieren lassen.

Download Link: Learning_Cpp.zip 

Vulkan-Framework-Demoprogramm 11 (Brettspiele)

Am Beispiel meiner neuesten Demoanwendung möchte ich Sie mit den Grundzügen der Brettspiel-Entwicklung vertraut machen. In diesem Zusammenhang richten wir unser Augenmerk auf die Programmierung zweier einfacher Strategie- bzw. Logikspiele. Bei der Darstellung der Spielsteine und des Spielfeldes greifen wir wiederum auf die C2DTileSurface-Klasse unseres Vulkan-Frameworks zurück, deren Verwendung ich Ihnen bereits anhand des letzten Programmbeispiels demonstriert habe.




Ist man an der Entwicklung eines rundenbasierten (Strategie-)Spiels interessiert, so muss man sich wohl oder übel mit den fortgeschrittenen Themen der KI-Programmierung (KI: künstliche Intelligenz) auseinandersetzen. Aus diesem Grund werde ich Ihnen im Rahmen des heutigen Programmbeispiels daher nicht nur die Funktionsweise einer regelbasierten künstlichen Intelligenz demonstrieren, sondern Ihnen auch zeigen, wie sich der unter anderem aus Schach-Programmen bekannte Minimax-Algorithmus implementieren lässt.