OS-spezifische Aspekte zw. iOS und Android im GM

  • Allgemein

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • OS-spezifische Aspekte zw. iOS und Android im GM

    Hallo,

    ich bin derzeit am überlegen, ob ich mir den GameMaker: Studio kaufen soll. Diesbezüglich habe ich aber noch ein paar Fragen, zu denen ich im Netz nichts finden konnte.
    Ich bin eigentlich ausschließlich nur an der Programmierung für iOS und Android interessiert. Derzeit programmiere ich Apps für Android und hatte mit diesen guten Erfolg. Diesen Erfolg will ich natürlich auch im iOS AppStore fortsetzen, weswegen ich auf den GameMaker mit dessen Exportmöglichkeit kam.
    Nun stellt sich für mich die Frage, wie gut die plattformspezifischen Eigenschaften der beiden OS in GameMaker geregelt sind. Z.B. hat ja Android die s.g. "9-patch-images" zum besseren skallieren der Bilder. Meines Wissens gibt es die 9-patches in dieser Form nicht in iOS. Wie wird das ganze dann im GameMaker geregelt? Muss ich komplett auf 9-patches verzichten? Kann ich für beide Plattformen unterschiedliche Bild-Ressourcen angeben?
    Ein anderes Beispiel: da das iPhone ja einen standarisierten Display hat (auf die Größe bezogen) langt es dort vermute ich mal aus, die ganzen Bilder in nur einer Größe zu hinterlegen. Bei Android sieht das ganze ja anders aus. Dort gibt es viele unterschiedliche Displays und man sollte deshalb seine Bilder in unterschiedlichen Größen hinterlegen, damit bei zu großer Skallierung nichts kaputt geht. Wie wird dieser Askpekt vom GameMaker realisiert? Gibt es auch hier die Möglichkeit verschiedene Größen für die z.B. Hintergrundbilder anzulegen?

    Sicherlich gibt es noch viele weitere kleine Aspekte die man als Beispiel nennen könnte, mir sind diese zwei auf Anhieb eingefallen. Obwohl es nur kleine Aspekte sind machen sie meiner Meinung nach am Schluss sehr viel aus, falls die jeweilige Funktion nicht funktionieren würde.
    Ich wäre also über einen Rat von jemand der schon etwas Erfahrung in diesem Bereich hat sehr dankbar.

    Viele Grüße
  • Hallo Pauli85,

    Ich empfehle dir den GameMaker iOS Export aufjedenfall. Es lohnt sich immer mit GameMaker zu arbeiten, weil man auch verdammt viele Möglichkeiten hat. Auch Netzwerk-Multiplayer spiele sind mit iOS sowohl auch mit Android möglich. Der GameMaker Studio (YoYoGames.team) werden immer größer im Entwicklung. Was dem kaufen angeht, ersteinmal würde ich dir den Master empfehlen (-499,$). Dort sind alle Exporten (iOS, Android, Mac, Windows, HTML5) drine und werden alles freigeschaltet. Aber wenn du nur das iOS Export möchtest kannst du auch (Profesionel-version) kaufen und dann das iOS noch zulegen. So kostet das weniger und ist auch für dich besser wenn du nur die iOS version möchtest. Du kannst iOS Export nicht einzelnd kaufen, davor musst du dir den Profesionel kaufen!

    Vielleicht weißt du darüber bescheit, GameMaker ist keine Programmiersprache, sondern eine eingebaute Skriptsprache (-GML / GameMaker Language). Die müsste man normalerweiße beherrschen wenn man mit dem GameMaker Studio arbeiten will. Aber auch Drag&Drop könnte daneben ein wenig dabei helfen.


    Gibt es auch hier die Möglichkeit verschiedene Größen für die z.B. Hintergrundbilder anzulegen?
    Die Möglichkeit der größen von Hintergrundbilder ist in GameMaker Studio möglich.


    Nun stellt sich für mich die Frage, wie gut die plattformspezifischen Eigenschaften der beiden OS in GameMaker ist
    Du kannst ja mal GameMaker spiele sehen die auf dem iOS Exportieren geworden sind. Dann kannst du schon selber diese frage entscheiden. Dafür gebe ich dir unten einen link..


    Welchen Programm hast du für deine Android-apps herstellung benutzt? Würde mich Interessieren für den Vergleich.



    Alle Informationen und spiele die mit der GameMaker erstellt worden sind für Android, iOS.. Siehe hier:

    :)
  • Hallo,

    danke erst einmal für deine ausführliche Antwort.

    So kostet das weniger und ist auch für dich besser wenn du nur die iOS version möchtest.
    Da habe ich mich vielleicht etwas missverständlich ausgedrückt oder du hast mich falsch verstanden. Ich möchte das GMS dann sowohl für iOS als auch Android benutzen. Deswegen auch meine ganzen Fragen, da ich dann ja quasi eine Version auf zwei verschiedene Betriebssysteme deployen will.
    Vielleicht weißt du darüber bescheit, GameMaker ist keine Programmiersprache, sondern eine eingebaute Skriptsprache
    Ja, das ist mir bekannt. Ich habe mir auch schon ein paar Beispiele/Code-Schnippsel dazu im Netz angeschaut. Sah zwar nicht soo schwer aus, aber muss man sich halt auch angewöhnen. Aber ich denke das kommt mit der Zeit automatisch.
    Welchen Programm hast du für deine Android-apps herstellung benutzt?
    Bisher habe ich die Apps lediglich (sehr primitiv ;) ) via Eclipse erstellt und den Code "von Hand" geschrieben.
    Habe mir schon die Lite Version des GMS zum Testen runtergeladen und muss sagen, dass mir das Konzept der Events in Verbindung mit den Actions sehr gut gefällt.


    Wie sieht es eigentlich am Schluss mit dem Quellcode der Android/iOS App aus. Wird der mir vom GMS auch angezeigt oder werde ich dann nur die APK/IPA Datein bekommen? Und falls nicht, gibt es trotzdem eine Möglichkeit an den Quellcode zu kommen?

    Viele Grüße
  • Pauli85 schrieb:

    Wie sieht es eigentlich am Schluss mit dem Quellcode der Android/iOS App aus. Wird der mir vom GMS auch angezeigt oder werde ich dann nur die APK/IPA Datein bekommen? Und falls nicht, gibt es trotzdem eine Möglichkeit an den Quellcode zu kommen?


    Der GMS übersetzt NICHT sein GML in "normalen" Quellcode (ich kenn mich mit Android nicht aus, aber bei iOS wäre das normaler Objective-C Code). Stattdessen funktioniert der GM ein wenig wie Java oder Python: Es gibt einen lauffähigen Runner für iOS / Android, der dann den Quellcode interpretiert.

    Du erhälst beim deployen also kein Objective-C, Java oder sonst was, sonst nur deine APK / IPA.
  • MeRobin schrieb:

    Du erhälst beim deployen also kein Objective-C, Java oder sonst was, sonst nur deine APK / IPA.
    Aber in der IPA Datei muss doch Object-C drin stehen bzw in der ADK Datei Java, oder etwa nicht? Ich meine, das iOS kann ja nichts mit GML anfangen und kennt den Runner wahrscheinlich auch nicht, selbiges mit Android. Von daher denke ich schon, dass GMS bzw. der Runner in Object-C/Java übersetzt. Oder irre ich mich da und es steckt ein komplett anderes System dahinter?

    Grüße
  • Programmiersprachen werden normalerweiße direkt Compiliert (C, C++ z.B.), Just-in-Time (JavaScript (je nach Browser/JS-Engine), GML in älteren Versionen), oder Just-in-Time mit ByteCode (C#, Java) oder interpretiert.

    Beim Game Maker gibt es zwei Möglichkeiten:

    1. es wird eine Datei mit Runner + GMK erzeugt, typisch in Windows Versionen, einfachste Version
    2. es wird der Code in eine andere Programmiersprache übersetzt (GameMaker4HTML5) (Runner + GML Code in JavaScript + GMK Daten in Array)

    Und wenn der Game Maker in die Anwendungen den Quellcode reinpackt, wird der gleich danach compiliert (Java mit javac), dann ist es nurnoch Bytecode und kein eigentlicher Quellcode, oder hat iOS/Android einen eingebauten Compiler, ich würde sagen das die sowas nicht haben.
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • Ich habe noch eine Frage nach dem ich die ersten paar Tutorials durchgegangen bin.
    Ich habe gesehen, dass das meiste über die Pixelgröße definiert wird. Z.B. die Geschwindigkeit eines Balls oder aber auch die Größe der Sprites/Backgrounds. Wie läuft das Ganze dann auf Geräten mit sehr unterschiedlichen Bildschrimauflösungen? Z.B. eine Auflösung von 240x320px im Vergleich zu einer Auflösung von 800x1280px. Verhält sich da die Geschwindigkeit eines Balles nicht sehr unterschiedlich? Oder habe ich da gerade einen Denkfehler?

    VIele Grüße
  • Entweder erhöt sich das Sichtfeld durch die höhere Auflösung oder du musst größere Grafiken und entsprechend höhere Geschwindigkeiten verwenden, damits gleich schnell erscheint.
    Heißt statt mit konstanten Werten musst du überall mit relativen werten abhängig von der Auflösung arbeiten.
  • TrunX schrieb:

    Heißt statt mit konstanten Werten musst du überall mit relativen werten abhängig von der Auflösung arbeiten.
    Genau das wollte ich eigentlich wissen. Für Android verwendet man ja statt der Einheit Pixel die relative Einheit dip (Density-independent Pixels). Gibt es im GMS auch eine Möglichkeit diese relativen Werte bzgl. der Bildschrimauflösung zu verwenden? Ich habe bisher nämlich nur die Einheit Pixel gefunden.
    Okay, nach deiner Antwort wird es diese Möglichkeit sicherlich geben. Kannst du mir auch noch kurz die vorgehensweise erläutern?

    Grüße
  • Du kannst dir die Pixeldichte mit display_get_dpi_x() und display_get_dpi_y() ausgeben lassen.
    Wenn du das in deine Größen und Abstände mit einrechnest, bekommst du sozusagen pixelunabhängige Grafiken die theoretisch auf allen Geräten gleich groß erscheinen sollten.
    Ein Button würde auf einem kleinen Smartphone einen viel größeren Bereich des Bildschirms einnehmen als auf einem großen Tablet, die Größe für den Finger wäre aber gleich.
    Einige meiner Spiele:
  • Das hört sich doch gut an, danke!
    Und noch eine Frage :D
    Wie sieht es dort mit Zusatz-Libraries aus? Wenn ich z.B. neber AdMob den Dienst von Madvertise nutzen möchte (was ich momentan auch mache) müsste ich ja das Lib von Madvertise in mein Projekt importieren um es dort zu verwenden. Ist das im GMS möglich?

    Grüße