Die Engine Alpha ist im Kern eine anfängerorientierte 2D-Spiele-Engine, konzipiert von Michael Andonie. Mit ihr sollen Schüler ohne besondere Vorkenntnisse bereits ansehnliche Ergebnisse erzielen können. Inzwischen ist das Projekt jedoch um mehrere Arbeitsbereiche angewachsen.

Ein einfaches Beispiel

import ea.*;

public class Sample extends Game {
    public static void main(String[] args) {
        new Sample();
    }

    private Rechteck box;

    public Sample() {
        super(400, 400);

        box = new Rechteck(175, 175, 50, 50);
        box.farbeSetzen("rot");

        wurzel.add(box);
    }

    @Override
    public void tasteReagieren(int code) {
        switch(code) {
            case Taste.OBEN:   box.verschieben(+0, -10); break;
            case Taste.RECHTS: box.verschieben(+10, +0); break;
            case Taste.UNTEN:  box.verschieben(+0, +10); break;
            case Taste.LINKS:  box.verschieben(-10, +0); break;
        }
    }
}

Arbeitsbereiche

Derzeit gibt es 4 wesentliche Arbeitsbereiche für das Projekt:

  • Die Game Engine: Das Kernprodukt ist die anfängerorientierte Game Engine, die namensgebend für das Projekt ist. Ihr Code ist auf Github mit offenen Quellen einsehbar und jeder kann kollaborieren.
  • Der Figureneditor: Die schlanke Editorsoftware ermöglicht das Erstellen von Figuren. Auch sie ist auf Github als Open-Source Projekt erreichbar.
  • Das Unterrichtskonzept: Das didaktische Konzept, welches auf der EDU-Version der Engine aufbaut, hat zum Ziel, die Engine Alpha als autodidaktisches Werkzeug und als Mittel im Informatikunterricht zu etablieren.
  • Dokumentation und Support

Kurze Geschichte

Der Anfang

Die Engine Alpha begann im März 2010 als Softwareprojekt von Michael Andonie. Grundlegendes Ziel war es, möglichst viele Funktionalitäten einer professionellen Game Engine in Java umzusetzen und diese über eine möglichst einfache API zugänglich zu machen.

Nach erstem Feedback von Schülern der 10. Klasse, die die Engine Alpha testeten, zeigte sich, dass die Engine auch für Dritte einfach zu bedienen und mit einer gewissen Intuitivität funktionierte. Dies war Anlass dafür, das Projekt weiterzuverfolgen und um wesentliche Funktionen zu erweitern. Im Zuge dessen entstand der Engine Alpha Figureneditor.

Im Februar 2011 wurde das Softwareprojekt bei "Jugend Forscht" mit einem Regionalsieg im Fachbereich Mathematik/Informatik ausgezeichnet. Die Juroren hoben besonders das didaktische Potential der Engine hervor, was Anschub für das Engine Alpha Unterrichtskonzept wurde.

Einführung des Unterrichtskonzepts

Gemeinsam mit Michael Ganshorn entstand so das erste Unterrichtskonzept für die 10. Klasse. Die Grundidee hierbei war, Spieleprogrammierung nicht nur für Schüler mit grundlegenden Kenntnissen bereitzustellen, sondern über dieses Konzept einen alternativen Ansatz zu nehmen: Hiermit sollen Schüler - angeleitet im Unterricht oder autodidaktisch - grundlegende Programmierung durch Spieleprogrammierung erlernen; Grundkenntnisse in Java oder Ähnliches sind nicht nötig.

Michael Ganshorn entwickelte als erstes Konzept einen Lehrgang basierend auf dem Spiel Pong. Das Konzept und die extra für Unterrichtszwecke entwickelte Engine Alpha EDU-Version wurden anderen Lehrern vorgestellt und das Konzept wurde an verschiedenen Schulen mit positivem Feedback implementiert.

Derzeit wird das Konzept auf die Inhalte der 11. und 12. Jahrgangsstufe des Bayerischen Gymnasiums ausgeweitet. Hierzu werden verschiedene neue EDU-Module vorbereitet. Das Konzept soll unter Creative Commons Lizenz kostenfrei für jeden, auch zur Weiterdistribution, verfügbar stehen.

Phase 3.0

Nach den Erfolgen auf didaktischer Ebene soll auch die ursprüngliche Engine weiterwachsen. Neue Funktionen, wie Netzwerk, eine rudimentäre Physik oder komplexere User-Interface-Funktionen wurden bereits umgesetzt und viele weitere sollen folgen. Inzwischen passiert aktive Kollaboration und das Projekt ist auch auf GitHub in seiner aktuellsten Version stets erhältlich. Ebenso wird die Professionalität der Engine verbessert, indem die Engine strukturell und in Hinsicht auf Performance verbessert wird, möglichst ohne die API zu ändern.