Mit scratch ein anspruchsvolles Spiel programmieren?

4 Antworten

Deine Beschreibung deutet eher auf ein strukturelles Problem im Projektaufbau hin.

Aus diesem Grund macht es Sinn, Software vorzuplanen. Das heißt, du überlegst dir erst, welche Anforderungen die Anwendung erfüllen soll. Danach stellst du die Ressourcen und Abläufe zusammen, die du brauchst sowie ihre Beziehungen zueinander. Diese Voranalyse bietet dir einen Überblick, bei dem potenzielle Probleme (Sonderfälle, Redundanzen, u.ä.) eher auffallen.

Nach abgeschlossener Planung kann die konkrete Implementation in der Programmiersprache beginnen.

Bezüglich der Möglichkeit, anspruchsvolle Spiele zu entwickeln, ist zunächst einmal strittig, was als anspruchsvoll definiert werden soll.

Sicherlich kann eine Auswahl besonders guter Spiele sowie eine Liste über die verfügbaren, besonderen Features eine erste ungefähre Vorstellung davon liefern, was mit Scratch so möglich ist.

Doch generell eignen sich visuelle Programmiersprachen nicht für komplexe Anwendungen am Stück. Sie sind eher dazu gedacht, einzelne Abläufe (z.B. das Verhalten eines Spielobjekts; also eine für sich abgekapselte Aktion, so wie man es auch von Struktogrammen kennt) zu beschreiben, die im besten Fall wenig Programmverzweigungen beinhalten. Aufgrund der grafischen Darstellung (seien es Blöcke wie in Scratch oder Node-Graphen wie in Blueprints, Bolt und Flow Graph) verliert man schnell die Übersicht, wenn die Struktur komplexer wird.

Ein einziger Ansatzpunkt bei Scratch, um mehr Flexibilität einzubauen, wäre das Formulieren von möglichst abstrakten Funktionen und der behelfsmäßige Einsatz von Listen als Objekte (lies dazu hier).

Man kann den Umstand, das Scratch nur für kleine Anwendungen konzipiert wurde, allerdings auf technischer Ebene noch weiter fortführen, denn in den Ressourcen (Datenspeicher, Belastbarkeit des Servers / Backendkonfiguration, Grafikrendering, u.ä.) bist du stark limitiert.

Inwiefern es sich bei grundlegenden funktionalen Erweiterungen wiederum verhält, müsste man einmal ausprobieren. Ich weiß zwar, dass man Scratch mit JavaScript erweitern kann (s. Scratch Extensions), doch nicht, wie weit das geht.

Wenn du höher hinaus willst, würde ich dir empfehlen, deine Toolpalette aufzufrischen. Zum einen gibt es Game Engines, die an Scratch angelehnte Systeme integriert haben (Bsp.: Stencyl), zum anderen ständen dir vor allem mit textuellen Programmiersprachen (z.B. C#, C++, Lua) mehr Möglichkeiten frei.

Beim Programmieren kann man immer Fehler machen. Noch besser ist es, wenn man sie entdeckt. Die beste Möglichkeit wäre einfach alles auszubessern.

PS: Ist mir auch schon oft passiert, aber wenn man nichts ändert, wird es immer so bleiben. Also nie Funktionieren und die ganze Mühe war umsonst.

Woher ich das weiß:eigene Erfahrung

Mit Scratch kannst du sehr komplexe Spiele erstellen. Fast alles Client side ist moeglich. Du kannst dir etwas aehnliches wie Funktionen erstellen und mit Variablen arbeiten. Du kannst kleine Datensaetze in der Srcatch Cloud speichern. Einzige ist die Performance und die Limitierung, dass du highlevel am Borwser bist, so du kannst keine Sachen mit der Hardware machen wie mit einer Programmiersprache wie zum Beispiel Java. Wenn es bei dir solch grosze Probleme mit deinem Code gibt, wirst vermutlich du ihn nicht gut geschrieben haben.

Woher ich das weiß:Hobby

Kommt auf deine Definition eines ,,anspruchsvollen Spiels,, an, ist meiner Meinung nach nicht möglich aber natürlich kann man mit Scratch das ein oder andere machen.