2D Licht Engine

    • GM 8

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

    • 2D Licht Engine

      Ich habe mir ein wenig Zeit genommen und habe mir eine Licht Engine gecodet,
      die auch mit mehreren Lichtquellen funktioniert sie ähnelt ein bisschen Minecraft und eignet sich für Top-Down Spiele oder Sidescroller. Ich habe 2 Skripte eingebaut mit denen das erstellen des Lichts kinderleicht ist. Natürlich wurde auch alles sorgfältig kommentiert,
      und mit Version 1.3 habe ich die Performance nochmal verbessert.

      Screenshot: (Version 1.3)



      Download: (Version 1.3)
      Hier ist der direkte Downloadlink.

      Ich hoffe das ihr mir Feedback gebt,
      Mfg Rohkar

      Dieser Beitrag wurde bereits 18 mal editiert, zuletzt von Rohkar ()

    • Echt hübsches Ding, muss ich sagen. Was gut ist, dass der schatten genau auf das Raster passt. Das ist mir nie gelungen.
      Werds gleich mal ausprobieren.
      ////////////////////////////////////////////////////////////////////////////////////////////////
    • echt super ^^ ... aber eins hätte ich noch ...

      mit

      GML-Quellcode

      1. image_alpha = (1 / 100) * distance_to_object(par_light);


      im step event des obj_Fog ist der licht übergang feiner ^^ ...
      alles was licht asustralen soll mus dann halt das par_light als parrent haben ... XD
      ---- wer fehler findet darf sie behalten ---
    • Ich habe es mal geupdatet

      Version 1.0.1
      • Besserer Übergang des Lichts.
      • Einfacheres erstellen von Licht.
      • Die Gmk übersichtlicher gemacht

      Danke für eure Antworten, und danke an Deathshadow für deinen Tipp!
      Der Downloadlink ist wie immer im ersten Post und auch hier .
      Für die nächste Version plane ich:
      • Wände durch die das Licht nicht geht.
      • Skript zum ausführen der Engine.
      • Einfachere Codes.
      • Farbiges Licht.

      Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von Rohkar ()

    • Ich hatte auch mal ne simple Lighting Engine. Einfach ein Surface gamacht, das mit draw_clear(c_black) Schwarz gefärbt und dann mit transparenten Sprites überdrawt. Fertig!
      Deins ist halt ne komplett andere Variante. Sieht echt neti aus.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Rhedox ()

    • Ich habe es mal geupdatet

      Version 1.2
      • Noch einfacheres erstellen von Licht.
      • Die Gmk übersichtlicher gemacht
      • Die Gmk viel besser kommentiert
      • Zwei Skripte eingeführt

      Danke für eure Antworten, eigentlich sollte diese Version die Lichtundrúrchlässige Wände enthalten,
      aber da ich immernoch zu viele Bugs mit ihnen habe werde ich sie erst später einfügen da ich nicht gerne halbe Sachen rausbringe. (Theoretisch habe ich ja eine halbe Sache rausgebracht da die Lichtundrúrchlässige Wände nicht in dieser Version war... egal)
      Der Downloadlink ist wie immer im ersten Post und auch hier .^^
      Mfg Rohkar

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

    • Das tut hier ist echt klasse fange gerade mit Gamemaker an und da kam das gerade recht! :D
      Bei mir hat alles geklappt und die Erklärungen zu den Scripts sind gut zu verstehen so versteht man auch was da steht. :D
      Danke dir!
      Danke für deine Antwort mich freut es immer wieder, wenn ich sehe das es Leuten geholfen hat auch wenn es nur einer Person geholfen hat hat es sich schon für mich gelohnt sie hochzuladen. Bei dieser Engine habe ich mir zum ersten mal gedanken darüber gemacht wie ich eigentlich in einem 2D Topdown oder Sidecroller Licht darstellen soll, und dann kam mir eine Idee und wenn ich eine Idee habe dann setze ich diese auch um. Was passiert wenn ich das nicht hinkrieg will ich hier nicht schreiben... xD
      Mfg Rohkar

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

    • Die Engine frisst ganz viel Speicher, ich wollte es in einen Room von der größe 2024x2024 aktivieren.Dann fing an das Spiel zu laggen;o dabei war das nur ein kleiner Top-Down Shooter mit ein paar Zombies :S

      Bei so einer größe sollte die Licht-Egine schon mehr aushalten. Arbeite auf jeden Fall dran weiter...
      Sonst gefällt sie mir sehr gut und ich hätte das nicht hingekriegt. Würde sie gerne für mein Spiel verwenden wenn ich darf, natürlich kommt dein Name in die Credits rein. Sonst ein Großes Lob ;) :thumbup:
    • Ich möchte euch erstmal danken für die Antworten! Es freu mich immer wieder zu sehen wenn jemand mir Feedback gibt.

      mar92k schrieb:

      Die Engine frisst ganz viel Speicher, ich wollte es in einen Room von der größe 2024x2024 aktivieren.Dann fing an das Spiel zu laggen;o dabei war das nur ein kleiner Top-Down Shooter mit ein paar Zombies :S

      Bei so einer größe sollte die Licht-Egine schon mehr aushalten. Arbeite auf jeden Fall dran weiter...
      Sonst gefällt sie mir sehr gut und ich hätte das nicht hingekriegt. Würde sie gerne für mein Spiel verwenden wenn ich darf, natürlich kommt dein Name in die Credits rein. Sonst ein Großes Lob ;) :thumbup:
      Ja natürlich darfst du die für dein Spiel verwenden, dafür habe ich sie gemacht. Mir ist einfach eine Idee gekommen wie ich Licht umsetzen kann und ich habs in die Tat umgesetzt. ^^

      Tice schrieb:

      Dann deaktiviere halt die objekte die ausserhalb des View's sind.

      GML-Quellcode

      1. instance_deactivate_object(obj_light);
      2. instance_activate_region(view_xview-16,view_yview-16,view_wview+16,view_hview+16,true);


      Müsste funktionieren.
      Hmm... das habe ich ganz vergessen! Stimmt damit sollte alles flüssiger laufen! Danke, Tice!
      Mfg Rohkar
    • @ Rohkar

      Entwickelst du noch weiter an dieser Lichtengine?
      Ich habe die Tage ein paar Engines getestet, die alle völlig überladen oder inperformant waren.

      Auf dem ersten Blick gefällt mir deine Idee und würde mich sehr über eine Weiterentwicklung freuen.
      Notfalls eine Erlaubnis zur Weiterentwicklung durch andere Personen :)

      Keep it up!
    • So hab den Link wieder gefixt. Könnt euch die Engine wieder downloaden!
      Edit: Natürlich könnt ihr auch die Engine nach euren Vorstellungen anpassen, aber ich arbeite in letzter Zeit nicht mehr oft mit dem Game Maker und deshalb bin ich mir nicht sicher ob ich noch Updates bringen kann. Ich war auch eigentlich schon weiter, nur leider musste ich mein System neu aufsetzen und alles wurde gelöscht! :( Wenn wieder mal der Link nicht funktioniert, dann sagts mir einfach! Ich ersetze ihn dann so schnell ich kann.
      Mfg Rohkar

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Rohkar ()

    • >< Wieso benutzt irgendwer dieses Ding?
      Sorry, aber ich finde das ist eine Beleidigung denen gegeüber die eine 100 mal vernünftigere Methode bereitstellen den Efekt sogar noch besser zu erzielen.

      Diese Version benutzt eine riesige Anzahl an Objekten! Was auch der Grund ist wieso dies niemals "ungekachelt" werden kann.
      Allein das Example mit dem kleinen Raum benötigt ganze 1206 Instanzen! Das ist im Game Maker Speicher- und Leistungsverschwendung im Extremmaß.

      Musste leider grad feststellen dass die einzige Alternative hier im Tutorialbereich kein Example zu downloaden bietet: Beleuchtung
      Trotzdem benutzt diese Version Surfaces und benötigt für die gesamte Engine damit nur eine einzige Instanz. Zudem ist sie komplett weich und man kann das System leicht an einen view nageln so dass man sich auch um keine Instanzen zum deaktivieren oder irgendwas kümmern muss...

      Noch ein guter Schritt weiter ist dann wiederum diese Engine in Form einer Extension:
      gmc.yoyogames.com/index.php?showtopic=541702
      Sie ermöglicht sogar richtig gute Schatten und dass bei relativ guter Performance.
      Einziger Nachteil ist wohl dass man ein paar Englisch Kenntnisse braucht um die Hilfe zu verstehen, was man aber für den GM an sich sowieso schon in der Regel braucht.


      Sorry wenn dies beleidigend klingt, ich hab absolut nichts gegen dich, Rohkar. Ich weiss dass du dir Mühe gegeben hast, trotzdem musste ich dass hier anmerken damit die die den Code einafch per copy&paste ohne nachzudenken übernehmen, nicht sehr bald in ihren Projekten (wie mar92k) an die Performance-Grenzen stoßen und sich dann fragen woran das liegt. Bei einem größeren View (z.B. >800*600) hilft bei einem nicht-gamer-PC auch das Deaktivieren der Instanzen außerhalb des views, übrigens nichts sofern das Spiel auch aus was anderem besteht als diesem licht... :/

      Zwei Vorteile hat dein System jedoch. Zum einen mag der Kachelefekt vom einen doer anderen gewollte sein (auch wenn man auch da mit einem anderen - zugegeben, schwierigeren - Ansatz, eine deutlich höhere Performance erreichen kann). Zum Anderen ist deine Engine für die Game Maker Lite tauglich. (im Gegensatz zur Version mit surfaces) Vieleicht solltest du letzteres erwähnen...

      Willst du auf diese Drachen und -eier klicken?
      Sie werden sich freuen ;)