# Ein GameMaker-Spiel portieren, ohne Lizenzen pro Exportziel

> Ein GameMaker-Spiel zu portieren heißt, ein Projekt neu aufzubauen, das dir gehört. Aus Rooms werden Szenen, aus Objects werden Nodes, und aus GML-Events werden Skript-Callbacks.

- URL: https://www.summerengine.com/de/port-a-gamemaker-game
- Keyword: gamemaker spiel portieren
- Related: https://www.summerengine.com/de/porting

Ein GameMaker-Spiel zu portieren heißt, ein Projekt, das dir gehört, in einer anderen Engine neu aufzubauen. GML gibt es nur in GameMaker, und für .yyp-Projektdateien, Rooms und Object-Definitionen existiert anderswo kein Importer. Der Neuaufbau ist trotzdem mechanisch, weil sich das GameMaker-Modell sauber auf einen Szenenbaum abbilden lässt.

Dein GML und deine eigene Grafik gehören dir, deshalb kannst du den größten Teil einer GameMaker-Portierung mitnehmen. Prüfe Assets aus dem Marketplace gesondert, denn ihre Lizenzen können die Nutzung auf GameMaker-Projekte beschränken.

Summer Engine liefert das Ziel für den Neuaufbau, mit Szenen und Nodes mit Skripten, 2D-Werkzeugen, die abdecken, was GameMaker kann, und 3D, falls das Spiel wächst. Dir gehört das Projekt, es gibt keine Lizenzgebühren, und der Desktop-Export für Steam und itch.io gehört zur Engine, statt ein eigener Kauf zu sein.

## Rooms, Objects und Events im Szenenbaum

Aus einem Room wird eine Szene. Aus einem Object wird eine Node mit einem Skript, und aus Object-Instanzen werden instanziierte Szenen. Das Create-Event wird zu einem Ready-Callback. Das Step-Event wird zu einem Process-Callback pro Frame. Das Draw-Event wird zu einem Draw-Callback. Aus Alarms werden Timer. Object-Vererbung wird zu Szenen- oder Skriptvererbung. Aus Sprites mit Origin werden Sprite-Nodes mit einem Versatz, und aus GameMaker-Kollisionsmasken werden Kollisionsformen.

## GML-Muster, die neu geschrieben werden müssen

Manche GML-Gewohnheiten lassen sich nicht direkt übertragen. Globale Variablen und das with-Statement fördern eine flache Struktur, die ein Node-Baum anders löst, meist über Node-Referenzen und Signale. Aus ds_map, ds_list und ds_grid werden Dictionaries, Arrays und verschachtelte Arrays mit automatischer Speicherverwaltung, die manuellen destroy-Aufrufe fallen also weg. Aus instance_create und instance_destroy werden Szenen-Instanzierung und das Entfernen von Nodes in der Warteschlange. Room-Persistenz und Instanzreihenfolge brauchen eine explizite Behandlung, statt sich auf Room-Einstellungen zu verlassen.

## Pixel Art, Kameras und Auflösung

2D-Projekte in GameMaker definieren meist eine feste Room-Größe und einen Kamera-Viewport. Bilde das mit einem Viewport in deiner Basisauflösung nach, dazu Integer-Skalierung mit Nearest-Neighbor-Filter für Pixel Art. Die typische Regression ist Subpixel-Bewegung: GameMaker-Projekte runden Positionen oft, damit Pixel ausgerichtet bleiben, und wenn du diesen Schritt beim Neuaufbau auslässt, flimmern Sprites bei Kamerabewegungen. Leg deine Regel fürs Pixel-Snapping gleich am Anfang fest, statt sie später pro Object nachzuziehen.

## Export ohne Lizenz pro Plattform

GameMaker hat Exportziele historisch auf Lizenzstufen und Module verteilt. In Summer Engine ist der Desktop-Export für Windows und macOS Teil der Engine, und dir gehört dein Projekt vollständig, ohne Lizenzgebühren und ohne Umsatzbeteiligung. Ein GDScript-Projekt exportiert außerdem einen Web-Build für Summer Games, und Konsolen brauchen die Freigabe des Plattformbetreibers. Wenn dein GameMaker-Spiel später doch 3D oder aufwendigere Shader-Arbeit will, ist dieser Spielraum im selben Projekt vorhanden, statt ein anderes Werkzeug zu verlangen.

## FAQ

### Lässt sich eine GameMaker-Projektdatei in eine andere Engine importieren?

Nein. Für .yyp-Projekte, Rooms und Object-Definitionen gibt es in anderen Engines keinen Importer, und GML läuft außerhalb von GameMaker nicht. Die Portierung ist ein Neuaufbau, aber ein mechanischer, denn Rooms werden zu Szenen und Objects zu Nodes mit Skripten.

### Wie übertragen sich GameMaker-Events?

Create wird zu einem Ready-Callback, Step zu einem Process-Callback pro Frame, Draw zu einem Draw-Callback, und aus Alarms werden Timer. Object-Vererbung wird zu Szenen- oder Skriptvererbung, und aus Kollisionsmasken werden Kollisionsformen.

### Was ersetzt ds_map, ds_list und ds_grid?

Dictionaries, Arrays und verschachtelte Arrays, alle mit automatischer Speicherverwaltung. Die manuellen destroy-Aufrufe, die GameMaker-Datenstrukturen verlangen, entfallen, und damit verschwindet eine ganze Klasse von Lecks aus dem neu aufgebauten Code.

### Warum flimmert meine Pixel Art nach der Portierung?

Subpixel-Bewegung. GameMaker-Projekte runden Positionen häufig, damit Sprites am Pixelraster ausgerichtet bleiben. Bewegt der Neuaufbau Sprites an Bruchteilpositionen, flimmern sie bei Kamerabewegungen. Leg gleich zu Beginn eine Regel fürs Pixel-Snapping für das ganze Projekt fest.

### Brauche ich für jede Exportplattform eine eigene Lizenz?

Nein. Der Desktop-Export ist Teil der Engine, und dir gehört das Projekt, ohne Lizenzgebühren und ohne Umsatzbeteiligung. Spiele werden in C++ und GDScript geschrieben, und C# steht im Desktop-Editor ebenfalls zur Verfügung.

[GameMaker-Spiel neu aufbauen](https://www.summerengine.com/de/download)

---

## Machine-readable resources

- Site index for agents: https://www.summerengine.com/llms.txt
- Full inlined content: https://www.summerengine.com/llms-full.txt
- Porting catalog: https://www.summerengine.com/llms-porting.txt
- Structured catalog: https://www.summerengine.com/agent-catalog.json
- Sitemap: https://www.summerengine.com/sitemap.xml
- Developer resources: https://www.summerengine.com/docs
- Summer API (assets from any agent or code; public per-call model prices): https://docs.summerengine.com/api