Benutzer-Werkzeuge

Webseiten-Werkzeuge


knowledge:programming

Programmierung

Wer ein handfestes Computerspiel entwickeln will, muss früher oder später in irgendeiner Form programmieren. Zwar gibt es Baukastensysteme, in denen man einfache Spiele auch ohne Programmierkenntnisse zusammenklicken kann. Spätestens sobald man aber eigene Gameplay-Features einbauen will, muss man sich mit Skript- und Programmiersprachen und den zugrundeliegenden Entwicklungsparadigmen auseinandersetzen.

Programmierparadigmen

Prozedurale Programmierung

Funktionale Programmierung

Objektorientierte Programmierung

Ein Großteil der aktuellen Programmiersprachen wie Java, C#, C++, Ruby, u. a. basiert auf dem objektorientierten Programmierparadigma, das heißt der Code eines Programms wird nicht einfach in einem großen Block hintereinander weg geschrieben oder auf einzelne Funktionen verteilt, sondern die Programmlogik entsteht durch die Interaktion von Objekten, die über Eigenschaften und Methoden verfügen. Dadurch wird es einfacher, realweltliche Zusammenhänge zu abstrahieren und in Code zu fassen. Ein einfaches Beispiel für ein Objekt: Ein Hund hat einen Namen und eine Fellfarbe (Eigenschaften), er kann rennen, bellen, fressen und das Bein heben (Methoden).

In den meisten objektorientierten Sprachen programmiert man sogenannte Klassen, die Objekte eines bestimmen Typs beschreiben. Konkrete Objekte werden als Instanzen einer Klasse erzeugt. Eine Klasse ist dabei sowas wie ein Rezept für einen Schokokuchen, die Instanzen sind die fertigen Schokokuchen, die nach dem Rezept gebacken wurden. Weil sie alle nach dem gleichen Rezept gebacken wurden, haben sie, nachdem sie aus dem Ofen kommen, alle den gleichen Inhalt, den gleichen Geschmack, die gleiche Form und haben gleich viele Stücke. Wenn sie dann aber zur Laufzeit der Party auf dem Tisch stehen, können Instanzen der Mensch-Klasse individuell auf jedes Kuchenobjekt individuell zugreifen und sich mal hier, mal da ein Stück holen. Bei jedem Zugriff ändert sich der innere Zustand des jeweiligen Kuchenobjekts; danach hat er ein Stück weniger. Nach einiger Zeit sehen die Kuchen also ziemlich unterschiedlich aus. Wenn man aber den Gastgeber fragt, von welchem Typ eines der Kuchenobjekte ist, wird der trotzdem jedes Mal sagen: „Schokokuchen“.

Ein Codebeispiel

Angenommen wir wollen ein Spiel schreiben, in dem Kinder virtuelle Haustiere aufziehen können. Der Computer weiß grundsätzlich erstmal nicht, was ein Tier, geschweige denn z. B. ein Hund ist. Damit er welche simulieren kann, müssen wir es ihm sagen, d. h. wir müssen eine Hund-Klasse programmieren. Dazu müssen wir uns erstmal überlegen, was einen Hund ausmacht. Praktischerweise haben wir das schon im ersten Absatz gemacht und dabei auch gleich die Eigenschaften von den Methoden unterschieden. Eine Hundeklasse könnte in Java z. B. so aussehen:

public class Hund {
 
  private String name;
  private java.awt.Color fellfarbe;
 
  public void bellen() {
    System.out.println(this.name + " sagt \"Wuff!\"");
  };
 
  public void rennen() {
    System.out.println(this.name + " wetzt los.");
  };
 
  public void fressen() {
    System.out.println(this.name + " sagt \"OMNOMNOMNOMNOM!\"");
  };
 
  public void beinHeben() {
    System.out.println(this.name + " strullt in die Ecke.");
  }
 
}

Programmiersprachen

Die Programmiersprachen, die am häufigsten bei der Spieleprogrammierung zum Einsatz kommen, sind C, C++, C#, Java und Ruby. Bei den Skriptsprachen sind es Python, Lua, JavaScript und ActionScript. Für die Entwicklung von Browsergames kommt insbesondere JavaScript für das clientseitige Frontend zum Einsatz, für das serverseitige Backend vor allem PHP, JavaEE, C# oder Ruby.

knowledge/programming.txt · Zuletzt geändert: 2015/11/03 21:57 (Externe Bearbeitung)