Video abspielen!

  • GM 8

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

  • Video abspielen!

    Guten Tag liebe Community,

    ich habe ein kleines Problem ich habe mir extra Game Maker Pro gekauft, damit ich Videos inGame abspielen kann weil ich gelesen habe das dies nur in der Pro geht... Jedoch? Ich finde die Funktion nicht mit derr ich Videos abspielen kann...

    GameMaker 8.1 Pro -> Bei mir steht Game Maker v1.2.1130 Pro

    Ich wäre froh über jegliche hilfe.

    MFG Phil
  • Wenn du dir Studio nur wegen der Videofunktionen gekauft hast muss ich dich enttäuschen ... die sind nämlich gar nicht vorhanden.
    Die Splash-Video Funktionen wurden aus Kompatibilitätsgründen gestrichen. :/
    In der Standard-Version von Gamemaker 8.1 gibt es sie aber. Jedoch ist diese Version schon obsolet,
    Studio bietet jetzt nämlich viel mehr Funktionen und Multiplattformsupport was GM 8.1 nicht hatte.

    Wofür brauchst du die Funktion denn? Wenn es um ein Logointro geht könnte man sich das auch aus einer PNG-Bildsequenz
    zusammenbasteln. Außerdem gibt es ab Version 1.3 dann Vektor-Sprite-Support.
  • GearSoft schrieb:

    Naja ich habe es probiert in dem ich eine GIF reinlade... dann stürzt bei mir das Spiel ab weil zu wenig speicher vorhanden ist.... Steht immer beim Reinladen Out of Memory da... sind bloß 165Frames?!?

    Das Problem ist zum einen, dass der GM GIFs immer in PNGs umwandelt und zum anderen, dass 165 Frames in den meisten Fällen viel zu viele sind.
    Diese Anzahl an Frames würde ich höchstens für Animationen mit geringer Auflösung empfehlen.
    So etwas wie eine eingebaute Videofunktion geht mir selbst auch schon lange ab, aber momentan tut sich da nichts von Seiten der Entwickler ...

    In manchen Fällen kann man Animationen, Intros und dergleichen aber auch in GML hardcoden, mit Draw-Events.
    Ist aber natürlich mit einigem Aufwand verbunden.
  • Gut dann versuche ich dies in 10 FPS statts 30 FPS umzuwandeln und zu hoffen das er dann das Intro nimmt :3

    Danke dir aber trotzdem ;)

    //edit: Habe es jetzt ales GIf gemacht und den Sound extra... mit 10 FPS läuft es Super :D
    THX

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von GearSoft ()

  • Videos ist in jeder Sprache ein Krampf

    Ich hatte zuerst mit Basic-A (GW-Basic) und CAOS BASIC programmiert, das ist noch aus einer Zeit, wo man noch Zeichensätze im Grafikkartenspeicher manipuliert hat, weil es keine Sprites gab, und MP3 eventuell schon auf dem Papier existiert hat, aber es noch keinen Computer gab, der sie hätte schnell genug abspielen können.

    Bin dann zu Turbo Pascal 7 gewechselt, mich sehr lange damit beschäftigt, wie ich mehr als 16 Farben bei einer Auflösung von 640 x 480 hinbekomme, mir dann sogar eine Art kleinen Videocodec geschrieben, der auf RLE Basis arbeitet. (Real Length Encoding), war lustig, aber mit MPEG1 nicht vergleichbar. Vorteil für mich war aber, ich konnte meine eigenen Videos abspielen.

    Problem mit Videos sind immer die Codecs, AVI ist ja nur ein Container, meist RIFF, was noch mit Windows 3.1 eingeführt worden ist. Und quasi ja heute noch unter Windows 8.1 funktioniert. Also ein gut 20 Jahre altes Format. Meist haben Spiele deshalb ihre eigenen Codes und Videoformate gehabt. Bink-Video, SMK (Smack), Flic (FLC, FLI) etc. denn man muss ja beim Spieler auch sicherstellen, dass der den Decoder für das Video hat. Und dafür würden die meisten Codec-Hersteller wohl eine Lizenzgebühr erheben, oder man nimmt einen freien Codec.

    Flash Professional, große Firma Adobe, kann auch erst fremde Formate wie MP4 seit Version CS6 abspielen. Vorher konnte man in Flash nur eigene FLV oder F4V abspielen. Das Erstellen ging eine lange Zeit nur mit Lizenzierter Software. Ist ein proprietärer Sorenson Codec. Genauso war und ist es bei Apple. Videos zu codieren hatte schon immer Geld gekostet und zu dekodieren auch.

    Das ist bei 3D-Formaten und Audio-Codecs ähnlich gewesen. Und wer weiß, bei JPEG streiten sich vermutlich immer noch Firmen.

    Die Frage wäre also, wie müsste das Format, das GameMaker unterstützt aussehen? Würde der Decoder dann auch in jeder "EXE" mit drin sein? Windows 8 (Windows 8 N) gibt es zum Beispiel auch in einer Version, die nativ kein MP4 unterstützt. Oder zu mindest keine große Vielzahl an Videocodecs.

    Wie wurde das früher gelöst? Was würde in dem Video zu sehen sein? Wie würde das Video überhaupt erstellt werden? Auf den Spiele-Konsolen wie SEGA Master System, MegaDrive etc. habe es einfach keinen Speicherplatz und noch nicht die Performance für digitale Videos. Der Megadrive hatte mit der SegaCD glaube ich dann, versucht in die Richtung zu gehen und erst mit der Playstation und dem MPEG Codec ist ja Videos in Spielen erst so richtig möglich gewesen. Wie sieht das bei heutigen Produktionen aus? Meist sind das InGame-CutSzenes. Also von der 3D-Engine in Echtzeit berechnete Bilder.

    Aus verschiedenen Gründen. Der N64 war dafür mehr oder weniger berühmt, weil es bei dem auch nicht anders ging.

    Ich habe das Problem doch auch, bin aber von Flash weg gegangen, weil Flash Professional CS6 nicht in der Lage ist, seine Inhalte und Programmierungen direkt als HTML5 zu erzeugen oder als Windows RT Anwendung. Das kann GameMaker. Habe auch eine OUYA und konnte meine GameMaker-Spiele damit ohne Probleme (ab)spielen.

    Wie lösen wir also das Problem der Videos? Animationen in Spielen, Zeitleisten, bewegte Sprites. Vielleicht kennt einer von euch Spriter. Ist nen Kickstarter-Projekt gewesen, ist in einer guten Version kostenlos, kann JSON und XML erzeugen. GameMaker Early Access 1.3 kann ja auch nativ JSON lesen und verstehen. Macht daraus dann DS_Maps und allerhand Zeug.

    Man müsste also eigentlich nur im Speicher schauen, dass die Sprite-Instanzen zu einer gewissen Zeit sich ihre Position aussuchen und fast wie von allein, dann dort hin hüpfen.


    Ich habe übrigens zwischendurch mit PureBasic gearbeitet, auch eine tolle Sprache, und da habe ich folgenden Trick angewendet, um Videos abzuspielen, ich habe ein Browser-Fenster (ohne Adressleiste etc., nur Inhalt, eingebettet in ein eigenes Fenster, also so, dass man nicht plötzlich nen aufgehenden Browser hat, was manche Spiele neuerdings machen, damit man Facebook oder so nutzen kann) erzeugt und dort drinnen dann eine GIF oder MP4 abgespielt, setzt aber voraus, dass ein Browser mit entsprechenden Fähigkeiten auf dem System installiert ist, wo das abgespielt werden soll.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von xaby ()

  • Ich weiß zwar nicht ganz was du mir mit diesem Langen und klarem Text sagen willst... aber ich glaube du meinst.

    Das es schwierig ist ein Codec auf allen Plattformen zum funktionieren zu bringen...

    Und du möchtest mir Sagen das es zwar Möglich ist... und das sogar bald... aber halt auch nur auf umwegen?

    mit freundlichen grüßen Phil
  • @Phil,

    ich meinte eher, dass YoYo Games hier keine Wunder vollbringen kann, das schaffen andere Entwicklungsumgebungen auch nicht. Und wie genau sich das mit MP4 verhält, ob das bald tatsächlich in jedem Betriebssystem, Browser, Playstation und was es alles gibt, so integriert ist, dass man als Entwickler sich darauf verlassen kann, ist fraglich.

    Es gibt auch keinen OpenSource-Standard, der sich wirklich etabliert hat. JPEG und PNG eben, und bei WAVE ja auch nur die unkomprimierten. Bzw. für Audio eventuell OGG.

    Was ich sagen wollte ist, ist vielleicht nicht ideal, dass man Videos nicht so leicht einbinden kann, aber man hätte immer die Möglichkeit, sich etwas eigenes zu schreiben. Egal, ob das jetzt mehrere Sprites sind, sich bewegende Sprites oder ähnliches. Man könnte ja auch pro Sprite immer nur 30 Frames nehmen und dafür 10 Sprites erstellen oder so. Man kann wohl Daten "Downloaden" mit dem GameMaker Studio mit einer URL, das heißt, es würde wohl auch möglich sein, die PNGs immer wieder nachzuholen, Vorteil wäre auf jeden Fall, dass dein Spiel dann bei den Leuten auch in der Vision an kommt, wie du es dir vorstellst, und nicht hundert Fehlermeldungen kommen. Habe das von alten GameMaker-Spielen nur zu oft erlebt, dass dann immer noch irgendwelche Runtime-Bibliotheken, DLLs oder ähnliches vergessen wurden, mit rein zu packen von den Leuten, die die Spiele ausgeliefert haben. Das ist dann auch ärgerlich.

    Ansonsten ja, vielleicht wollte ich auch einfach sagen, was du vermutet hast :D
  • YOYO GAMES soll ja auch nicht die Windows-Funktionen rausnehmen!
    Es werden Android etc. implementiert, doch von Windows keine Spur. Ich mache ja auch kein Windows-Spiel mit Android-Funktionen. Das ganze stinkt zum Himmel.

    So langsam aber sicher wechsle ich wieder auf GM 8.1. Nur gibt es da keine Updates.... mal schauen.
  • Na sagen wir so, sie versuchen schon echt viele Plattformen zu bedienen, neuerdings ja auch Playstation 3, 4 und Vita.

    Aber wenn du schaust, für Windows XP läuft der Support demnächst aus, diesen oder nächsten Monat von Microsoft-Seite aus. Windows Vista hat kaum jemand. Also bleiben ja nur noch Windows 7 und Windows 8. Für Windows 8 gibt es drei Möglichkeiten, ein GameMaker Spiel zu veröffentlichen. Also Windows Desktop, was ne normale EXE ist, wie auch bei XP und 7. Oder als Windows Store App Nativ oder JS Script. Nativ reicht vermutlich aus, und da gibt es ja auch extra Funktionen, die nur für Windows 8 Store Apps sind, mit denen du dann diese Kacheln mit Bildern befüllen kannst, ein Options-Fenster einblenden kannst etc.

    Ich kann verstehen, dass man das alles nicht für eine Windows Desktop-Anwendung braucht, aber ist nicht so, dass sie eben nichts für Windows machen. Und sie unterstützen ja auch noch MacOS und Linux.
    Da insgesamt einen gemeinsamen Nenner zu finden, ist sicherlich nicht leicht und als Entwickler möchte ich auch nicht bei jedem Befehl lesen, dass der leider für die Plattform nicht verfügbar ist, die ich nutzen möchte oder wenn man dann eine Windows Desktop-Anwendung hat, und nen Kumpel mit Linux kennt oder ähnliches, dann feststellen muss, dass der Aufwand enorm ist, um die Befehle umzuschreiben.

    Schau dir ruhig mal die 1.3 an, die hat einige Befehle mehr, ja, die kann auch kein Video, aber die YoYo-Leute sind echt hinterher, haben auch nen guten Support, wenn man Bugs entdeckt hat.

    Ich hoffe ja auch immer noch, dass bald das neue GUI raus kommt, also die neue Oberfläche für den GameMaker. Dann wäre ich eigentlich wunschlos glücklich :)
  • Naja, die Funktion um Videos abzuspielen ist meiner Meinung nach sinnlos. Ich finde es viel einfacher so etwas zu programmiern. Außerdem hat man viel mehr Kontrolle über das, was man macht.

    Michaelp800 schrieb:

    YOYO GAMES soll ja auch nicht die Windows-Funktionen rausnehmen!
    Es werden Android etc. implementiert, doch von Windows keine Spur. Ich mache ja auch kein Windows-Spiel mit Android-Funktionen. Das ganze stinkt zum Himmel.

    So langsam aber sicher wechsle ich wieder auf GM 8.1. Nur gibt es da keine Updates.... mal schauen.

    Ich finde, dass die Windows Funktionen zurecht in Game Maker nicht mehr vorhanden sind. Es ist immerhin Game Maker. Da macht man Spiele und keine Programme die ihre Fenster verschwinden lassen oder irgendeinen anderen Schwachsinn machen. Wenn du diese Funktionen wirklich wieder haben möchtest, dann schreib einfach eine DLL oder such nach einer. Und nur weil diese Funktionen fehlen musst du nicht gleich wieder auf den alten GM 8.1 wechseln.

    Achja, das könnte euch vielleicht interessieren:
    Game Maker Studio video player / video sprites
  • Da muss ich mich kebaplover anschließen. Die meisten Funktionen die obsolete sind, sind's aus gutem Grund, waren entweder schon immer echt schlecht umgesetzt (gerade beim Abspielen von Videos der Fall gewesen), sind tatsächlich völlig veraltet oder passen wirklich nicht mehr zum Konzept von GM Studio. Und wenn man sie doch braucht findet man garantiert eine Extension, die es wahrscheinlich sowieso noch viel besser macht (wie kebaps Link es wunderbar zeigt). Und man darf davon ausgehen, dass zumindest einige der Funktionen später noch gescheit und kompatibel mit allen vom GM unterstützten Plattformen nachgeliefert werden.
  • Ich wollte mit meiner Frage ganz sicher keinen Asueinandersetzung zwischen den Usern hier veranstalten.

    Ich wollte nur wissen ob es geht und wenn Wie...

    Mein Frage hat sich geklärt... Ich finde es ja schön das ihr hier erläutert Warum nicht und Wie und Was...
    Aber das artet mir nach und nach etwas aus...

    Mit freundlichen grüßen Phil

    //closed
  • GearSoft schrieb:


    Aber das artet mir nach und nach etwas aus...

    Ähm jo, mit "So siehts aus <3 Endlich einer der es versteht..." und dem was YoYo Deiner Meinung nach machen sollte, hast Du selber Öl ins Feuer gegossen. Die Diskussion mag unnötig sein, aber Du hast selber zu verantworten, dass sie zustande gekommen ist.
  • Die Lösung für alle Probleme :-)

    Videos in GameMaker abspielen ...

    sprite_add ( )
    draw_sprite ( )

    Im CreateEvent eines Objektes:

    globalvar sprx;

    sprS[0] = "url deines JPEGs oder PNGs, oder GIFs"
    sprx[0] = sprite_add(sprS[0],1,false,false,0,0)

    dann im DrawEvent eines oder des selben Objektes:

    draw_sprite (sprx[0], ...)

    damit kannst du beliebig viele Bilder nachladen, du könntest sicherlich auch mehrere Bilder in einem JPEG / PNG haben und sie dann aus einem Surface heraus schneiden, oder du würdest dir eben intern einfach entsprechend viele Sprites erstellen, das sollte eigentlich gar nicht so schwer sein, du bräuchtest natürlich ein Videoschnittprogramm oder ähnliches, was dir entsprechend die Frames zu EinzelBildern macht, AVI2BMP oder so etwas und dann könntest immer vielleicht 6 Bilder auf so einen 1024 x 1024 Sprite bringen, oder wie groß auch immer dein Video sein soll. Ich glaube, die Idee mit den JPEGs versuche ich mal, dynamisches Nachladen, könnte man gut Streaming mit machen. Wenn man richtig krass drauf ist, würde man eine Art TileMap haben und nur die Veränderungen nachladen, das würde mit dem Tool ShoeBox gehen. renderhjs.net/shoebox/
  • kebaplover schrieb:

    Das wird nicht funktionieren. Wenn man ein Video hernimmt mit 30 fps, dann kommen ziemlich viele Bilder zusammen. Wenn du alle auf einmal lädst, kann das erstens ein bisschen Dauern und zweitens wird sehr viel Speicher verbraucht.

    Jup, auf alle Fälle.
    Außerdem ist von sprite_add/background_add etc. auch deswegen abzuraten, weil der GM in Sachen Arbeitsspeicherverwaltung nicht gerade effizient ist.
    Wenn man viele Sprites hineinlädt (auch wenn man sie nach Verwendung wieder löscht) dann kommt es unweigerlich irgendwann zu einem Memory-Leak.
    Kann man unter anderem auch hier nachlesen, unter "Adding Assets at Runtime".
    In dem Fall könnte man sich zwar noch mit der cleanmem.dll (Arbeitsspeicherreinigungs-DLL)befassen, aber alles retten kann die auch nicht.

    kebaplover schrieb:

    Achja, das könnte euch vielleicht interessieren:
    Game Maker Studio video player / video sprites

    Der Link zu dem Videoplayer ist offenbar tot, ansonsten wäre das wohl noch die sinnvollste Alternative.
    Wenn du einen Ersatzlink findest, kannst du den Beitrag vielleicht editieren? Würde mich auch interessieren.
  • grr. nachdem meine antwort die ich per handy getippt hab weg ist :-/ schreib ich nochmal :)
    gm8 müsste ja dlls unterstützen, oder? ich hatte mal ne sehr gute dll zum abspielen von videos gefunden. die hatte auch noch recht viele nützliche funktionen wie z.b. videolänge auslesen. falls das eine option für dich wäre, würde ich mal nachschauen ob die dll samt tutorial noch irgendwo auf meinem rechner rumfliegt :)
    Ich hatte die damals in nem gm6 projekt verwendet und was total zufrieden damit :)

    edit: ich seh gerade du nutzt ja gm:s.. naja.. unter windows müssten sie da ja auch noch funktionieren, oder?