Pseudo 3D Blocks -Engine v1.5 [Update!]

    • Skript

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

    • Pseudo 3D Blocks -Engine v1.5 [Update!]

      Guten Tag Community,

      hiermit stelle ich eine kleine Engine vor an der ich in den letzten Tagen gearbeitet habe. Es ist eine Art 2D zu 3D converter für Blöcke.
      Das Ergebnis sieht bisher in etwa so aus:



      Es ist kein echtes 3D denn dafür müsste man das Bild nach hinten hin verzerren, etc. Das ist auf diese Weise nicht möglich. Trotzdem finde ich den Effekt ganz interessant.
      Das Ergebnis ist auch nicht perfekt. Es hat noch leider ein paar Grafikfehler.

      Enthalten ist auch eine solide und kompakte Jump'n-Run Engine (kompakt da nur step und create event nötig)

      Nicht sicher ob es jemandem nützt aber würde gerne eure Meinungen hören :) Eventuell könnte man daraus durchaus ein kleines retro-game basteln.

      Steuerung: WSD für 2D Bewegung. Q und E für verschieben in der Tiefe.
      Maus drücken um den 3D Fokus zur Maus zu verschieben (sonst ist er über den player)


      UPDATE!

      Das System wurde erheblich verbessert!
      - Etwa 3fache performance dank viel besseren System zur bestimmung Zeichen-Reihenfolge sowie dem auslassen sowieso nicht sichtbarer Teile
      - Ein Teil der Grafikfehler wurde beseitigt... leider imemrnoch nicht zu 100% >__<
      - Der Hintergrund bewegt sich jetzt mit!
      - Räume können nun unendlich groß werden und Blöcke auch im negativen Bereich platziert werden

      Bitte ladet euch die neue Variante herunter (diesmal einfach als gm6 die jeder öffnen bzw. importieren können sollte) :)
      Dateien

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

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

    • An sich ganz gut!
      Sowas hab ich auch mal gemacht.
      Ich würde nur sagen,

      1. mach unbedingt den Hintergrund weg, wenn er sich nicht anpasst.
      2. die "Perspektive" muss sich an den View anpassen, und nicht an den Spieler! Sonst sieht das echt etwas verkehrt aus ^^

      Ich würde dann noch etwas Parallaxing einbauen, und du musst noch beachten, dass Objekte von den Blöcken verdeckt werden können müssen, und dann sollte das schon richtig gut aussehen. Ich hab den Code nicht angeschaut, aber falls du es noch nicht tust, solltest du unbedingt Blöcke mit Nachbarn anpassen, dass Seiten, die eh immer verdeckt sind, nicht gezeichnet werden, um etwas Performance einzusparen.

      Ein Update würde ich gerne sehen ;)

      [Edit:] Ich hab noch bemerkt, hält man die Maustaste gedrückt, passt das mit dem an-den-View-anpassen, wenn man die Maus in der Mitte lässt ^^ Hatte die Option übersehen.

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

    • Danke TPFunGame :)

      @BadToxic
      1: Siehts denn nicht ohne Hintergrund noch doofer aus?
      Er zerstört die Ilusion natürlich ein wenig.

      2: Den Fokuspunkt (und damit sozusagen den viewport) kann man manuell setzen. Ansonsten ist das ganze schon von der Größe des Views abhängig usw. Man kann auch über einen Faktor bei der init-Funktion einstellen wie sehr sich das Bild sozusagen bäugt.
      Den Punkt über dem Spieler zu setzen hatte ich aus irgend nem alten game. View macht natürlich mehr sinn.

      Richtiges parallaxing ist mir dann doch zu hoch und geht eher richtung echter 3D engine. Das ist aber doch irgendwie überflüssig (schließlich gibt es ja die directx Funktionen) und wäre im GM sowieso nur sehr unperformant umzusetzen...
      Allein den Efekt dass sich z.B. die hintere Kante der Blöck verkleinert habe ich versucht umzusetzen. Allerdings ohne wirklichen Erfolg. Ein einziger Block bzw. Turm sieht dann zwar gut aus und realistsicher. Sind aber zwei Blöcke im Vordergrund nebeneinander, dann müssten sich ja ihre Kanten am imaginären Boden trotzdem berühren. Wenn man sie aber nur verkleinert, dann gehen sie plötzlich auseinander... Da wusste ich nicht mehr weiter und habe auch keine wirkliche Geduld dafür im Moment.
      Wie immer habe ich ohne jegliche Recherche geabreitet :D

      Willst du auf diese Drachen und -eier klicken?
      Sie werden sich freuen ;)
    • Also ich hab den Hintergrund mal raus gemacht und fand dass es so viel besser aussah.

      Parallaxing ist die einfachste und primitivste Art um 3D vorzutäuschen die es gibt und geht nicht in Richtung echtes 3D.
      Vergleiche z.B. Super Mario Spiele auf dem SNES. Ein Beispiel: Du bewegst deinen View um vier Pixel nach rechts, dann verschiebst du einen mittelweit entfernten Hintergrund zwei Pixel nach rechts, oder einen weit entfernten Hintergrund einen Pixel nach rechts.
      -> Random Beispiel mit Mario
    • Achsoo... richtig, das ist Paralaxing.. hatte nur die gif animation da angeschaut und an was anderes gedacht.
      Aber wie sollte ich das aber dann in diese Engine einbauen? Paralaxing ist ja ein komplett anderer Ansatz. Vorallem wirkt er sich auf der gesamten Fläche gleich aus. In meinem Beispiel wird ja ein Block links vom Fokuspunkt anders dargestelt als einer rechts von ihm z.B.

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

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

    • Ja, hat jetzt nix mit deinen Blöcken zu tun, aber der Feste Hintergrund hatte es einfach verwirrend wirken lassen, war nur ein Vorschlag um den Eindruck zu verbessern ^^
      Denn ein Hintergrund, der weiter in der Ferne liegt, darf auch flacher aussehen und muss sich nicht so stark an die Perspektive anpassen.
    • Also es scheint ab und zu zu Glitchen (Schwarze striche tauchen auf).
      Du solltest einen MAX Winkel definieren das wirkt manchmal sehr eigenartig.^^

      Aber im ganzen ist das eine sehr interessante Idee.
      Wollte auch mal sowas machen halt ohne gezwungener maßen den 3D modus zu aktivieren ^^.
      Wäre jedenfalls sehr sexy wenn es einwandfrei funktionieren würde (3D mit dem Luxus von 2d f.t.w.) :thumbup:
    • Maximaler Winkel ist nicht direkt angebaut aber es ist sehr wohl eine grenze eingebaut die von der breite des Views abhängt.
      Was die glitches angeht weiss ich das x-x Und ledier finde ich nicht raus worans liegt.. ><

      Willst du auf diese Drachen und -eier klicken?
      Sie werden sich freuen ;)
    • Sieht gut aus !
      Es gibt aber leider kleinere Bugs !
      - Die Blockenden bewegen sich und nicht die Anfänge...( ich hoffe du verstehst, was ich meine )
      - Überbländungsfehler: wand Über Gras und andersrum

      Edit:
      Juhu ! 500 Beiträge ! Party !
      Kopiere dies in deine Signatur, um es in deiner Signatur zu haben.
      Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
      Nach langer zeit wieder im Forum aktiv :D
    • Larsi schrieb:

      Sieht gut aus !
      Es gibt aber leider kleinere Bugs !
      - Die Blockenden bewegen sich und nicht die Anfänge...( ich hoffe du verstehst, was ich meine )
      - Überbländungsfehler: wand Über Gras und andersrum

      Edit:
      Juhu ! 500 Beiträge ! Party !

      ------------------
      Glückwunsch, Larsi :)

      Deinen ersten Punkt habe ich evrsucht oben zu erwähnen. Das kann schlichtweg nicht funktionieren denn wenn ich "Anfänge" realistisch verschiebe, geschieht das ja nicht gleich stark auf dem gesamten Bildschirm. Weiter entfernte Blöcke müssten stärker verschoeben werden als näher dran liegende. Wenn ich aber das mache, dann erscheinen Blöcke die eigentlich nebeneinander sind plötzlich getrennt.
      In echtem 3D gibt es ja den Efekt dass alles was in der Ferne ist, kleiner wird. Damit werden auch die Abstände zwischen Blöcke kleiner und das ganze hebt sich auf. Da ich aber nur sehr, sehr schwer das ganze Bild richtig verzerren könnte (falls der GM das überhaupt performance technisch erlaubt), ist leider dieser Efekt hier das Bestmögliche (zumindest mit meinem eher einegschrenkten Wissen über die Hintergründe von 3D).
      Hoffe du verstehst was ich meine...

      Zum zweiten Punkt: Ja, diesen fehler kenne ich, und ist Teil des Problems an dem ich Stunden lang erfolglos gesessen habe... >< Kann gut sein dass mein ganzer Ansatz (die Reihenfolge des Zeichnens wird vier Sektoren um den Fokus-Punkt gespaltet und in unterscheidlicher Reihenfolge ausgeführt) der falsche ist.

      Willst du auf diese Drachen und -eier klicken?
      Sie werden sich freuen ;)
    • Sorry wegen Doppelpost... Eine Fortsetzung dieses Systems das auch Dreiecke (bzw. Polygone) sowie einige Fehlerkorekturen beinhaltet, lässt sich hier finden:
      Man in White [Open Source Jump'n'Run + pseudo 3D engine)

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