[Projekt] Devader

Hier könnt ihr euch selbst, eure Homepage, euren Entwicklerstammtisch, Termine oder eure Projekte vorstellen.
Forumsregeln
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.

Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.

This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: [Projekt] Devader

Beitrag von xq »

Du brauchst bei AtC afaik kein Alpha-Blending enabled. Das wird über das Dithering+Multisampling erledigt
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Devader

Beitrag von marcgfx »

Da stimme ich dir zu, ist aber aktuell nicht mein Problem. Ich sollte irgendwie dynamisch zwischen den zwei Render-Typen umschalten können. Ich will das bisherige Rendern mit Alpha-Blending und Transparenz nicht komplett ablösen, sondern einfach eine weitere Variante testen mit Dithering. Wird schon irgendwie. Das dithering werde ich jetzt noch etwas nebenher versuchen, aktuell mache ich noch am letzten Boss weiter. Dann kann ich demnächst eine neue Testversion hochladen und eine neue Demo wäre gut.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Devader

Beitrag von marcgfx »



Das ist glaube ich die erste Version die auf der GPU sortiert wird, scheint halbwegs zu klappen schaut nur recht fürchterlich aus. Ich denke ich lass es erst mal so, damit ich es auf meinem Laptop testen kann um zu sehen ob es überhaupt was bringt.

Danke für den Beistand @Krishty & @MasterQ32, es hilft mir sehr.
joggel

Re: [Projekt] Devader

Beitrag von joggel »

Ich lese hier ja immer interessiert mit :)
Finde es schon spannend was und wie du es machst.
Aber zu dem neuen Effekt muss ich sagen: Mir gefällt es nicht so sehr. Sieht irgendwie etwas altbacken aus.
Ist aber nur _meine_ Meinung und eindruck... :)
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Devader

Beitrag von marcgfx »

@joggel: gut zu wissen :) . Ich stimme dir voll zu, mir gefällt es selbst nicht. Der einzige Grund für die Geschichte: Ich möchte das es auf meinem MacBook besser läuft, bzw. allgemein auf schwächerer Hardware. Da ich aktuell alles selbst sortiere und viel transparenz/alpha-blending habe ist es soweit ich das verstehe ein Problem.

Da ich nun endlich diese depth-buffering einsetze, konnte ich testen wie mein bisheriger Shader aussehen würde. Verwirrt musste ich feststellen, dass es recht gut ausschaut. Einziges Problem sind die Sachen die ich mit additivem Blending zeichne.... Ich muss gleich noch was ausprobieren. Evtl. war das Dithern für die Katz?
joggel

Re: [Projekt] Devader

Beitrag von joggel »

Ah, also wegen Performance-Gründen. Dann habe ich nichts gesagt^^
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Devader

Beitrag von marcgfx »

Bild
Genug für heute. Vor 2h wollte ich mal was essen. Was sieht man hier? Betrachtet die Umrisse der Hexagone, hier ist ein leichter weisser Umriss zu sehen. Transparenz funktioniert komischerweise, siehe Schatten. Additives Blending -> wird verpixelt, allerdings ohne Dither sondern Randomized. Sieht in diesem Fall einfach besser aus, dazu kommt das ich bereits diesen Random-Wert im Shader berechne.

Der Splatter ist aktuell kaputt. Vermutlich noch einiges andere. Ich musste schon ziemlich viel ändern um den Screen hier so hinzubekommen.

Es sieht so aus als könnte ich eine brauchbare Version mit Depth-Buffer erstellen. Nicht so schön wie die andere Variante, aber hoffentlich performanter. Muss es noch auf dem lahmen Laptop testen, nur nicht heute nacht.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Devader

Beitrag von marcgfx »

Boa was für ein Tag. Gestern gings noch bis 5, weil ich unbedingt noch ein paar Sachen ausprobieren/verbessern wollte mit dem alternativen Graphik-modus. Heute bin ich kaum von der Kiste weggekommen, habe versucht eine neue Version für den Mac zu produzieren und gleichzeitig getestet/verbessert. Seit der letzten Version hat sich einiges getan und somit lief auch vieles nicht mehr. Ziemlich mühsam. Dann kam noch dazu dass ich plötzlich keine Verbindung mit meinem MacBook zum PC herstellen kann (wtf?) und peinlich mit USB rumschieben musste. Die Mac Version lief dann auch nicht sofort wegen den tollen Zertifikaten die inzwischen nötig sind und als es dann doch ging musste ich feststellen, dass ich nicht die aktuellsten JS Dateien erstellt hatte...

Jedenfalls hab ichs vor ein paar Minuten doch hinbekommen und die neue Version lief gar langsamer als die alte. Ich glaub das heisst ich sollte das mal lieber lassen. Wenn man keine Ahnung hat...

Ach ja eine neue PC Version habe ich auch erstellt, die stürzt auf meinem Mini-PC ab. Lustigerweise auch die älteren Gameversionen, scheint sich was am Graphiktreiber geändert zu haben. Super :)

Manche Tage sind schon für nix... aber immerhin muss ich diesen Tag jetzt nicht noch einmal machen.
scheichs
Establishment
Beiträge: 845
Registriert: 28.07.2010, 20:18

Re: [Projekt] Devader

Beitrag von scheichs »

Jaja, die Multiplatform Geschichte. Kaum muss man sich nicht mehr mit c++ und liblinking rumschlagen, kommen sie dir mim Zertifikatsknüppel.
Ich fühl' mit Dir!
Zu der A2C-Geschichte: Ich finde auch, dass es gar nicht zu Devader passt. Da geht schon einiges an Charme verloren. Wie ist das eigentlich bei mehrfachem Overdraw?
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Devader

Beitrag von marcgfx »

@scheichs: Danke für das Mitfühlen :)

bzgl Overdraw kann ich dir nicht wirklich was sagen. Ich weiss, dass ich bei den Hexas noch was rausholen kann, wenn ich nicht zeichne was verdeckt wird. Es gehört zu jedem Hexa ein Schatten, das sind zwei Quads die teilweise oder gar nicht sichtbar sein könnten. Mir fehlt noch die zündende Idee wie ich das am besten mache.

Minimap frisst ebenfalls Performance, kann sicher verbessert werden. Ich benutze für die Map ein zusätzliches Canvas und zeichne mit den default Zeichenoperationen. Das möchte ich heute noch ändern...
scheichs
Establishment
Beiträge: 845
Registriert: 28.07.2010, 20:18

Re: [Projekt] Devader

Beitrag von scheichs »

Also mit Overdraw war auf A2C und Optik bezogen. Wenn da mehrere Sachen übereinander unterschiedlich flimmern... Sieht bestimmt auch ned soo dolle aus, ist aber nur 'ne Vermutung. Normalerweise nutzt man A2C ja auch eher zusammen mit MSAA und als schönere Variante von AlphaTest? Initial war doch die Sortierung der transparenten Sprites dein Bottleneck?
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Devader

Beitrag von marcgfx »

Meiner Antwort kannst du wohl entnehmen, dass ich einfach keinen Plan habe von a2c & msaa. Ich habe mich zwar ein bisschen eingelesen aber wie ich das bei Devader einsetzen soll ist mir nicht klar. Bzw mein Versuch mit a2c ist misslungen, weil ich auch Additive-Blending brauche neben Alpha-Blending.
https://medium.com/@bgolus/anti-aliased ... 177335ae4f

bzgl. Sortierung:
Ich muss halt alles nach dem z-Wert selber sortieren. Ich verwende dazu einen kleinen Heap-Sort, der besser läuft als der default javascript sort. Gestern habe ich das per Zufall grad überarbeitet, da ich eine doofe Idee hatte. Zumindest erschien sie mir doof, aber dann doch nicht so ganz. Die Idee war die eine grosse Liste in mehrere kleine zu unterteilen. Da ich ja genau weiss wie gross mein Ausschnitt ist und damit auch den ungefähren Range der z-Werte verteile ich die zu zeichnenden Quads in etwas so:

steps = 10;
step = range/steps;
list[~~(z/step)].push(quad)

Somit habe ich 10 kleine Listen die nur Elemente aus einem gewissen Range beinhalten. Jetzt muss ich nur die kleinen Listen sortieren, was schlussendlich schneller ist als eine grosse zu sortieren. Ich finds immer noch komisch, aber es macht ja schon etwas Sinn da ich Vorwissen über die Verteilung nutze. Ich habe auf jsperf einen Test zusammengestellt, weil es mir nicht koscher war und es funktioniert (ich finde ihn nicht, da ich ihn nicht veröffentlicht habe). Bei mir sehe ich im Profiler in etwa 40% weniger Zeit fürs sortieren. Führe ich mich selber an der Nase rum oder macht es für euch auch Sinn?

edit:
https://jsperf.com/sort-long-list-vs-10-shorter-lists/2
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Devader

Beitrag von marcgfx »

Hatte dann doch keinen Bock mehr auf optimieren und habe am letzten Boss weitergearbeitet
Bild
scheichs
Establishment
Beiträge: 845
Registriert: 28.07.2010, 20:18

Re: [Projekt] Devader

Beitrag von scheichs »

Das Bild sieht ziemlich cool aus. Die Abwechslung in der Frabgebung ist sehr erfrischend.
Bzgl. Optimierung: Ich weiss nicht ob du mit deiner Art der Aufsplittung viel gewinnst. Prinzipiell könnte ich mir vorstellen eine Liste von Objekte mit "statischem" Z und eine mit dynamischem Z zu haben. Die statische wäre dann "immer" sortiert und Du müsstest nur noch die dynamische sortieren. Vorm Zeichnen dann beide Listen miteinander sortiert mergen mit O(n+m). Aber keine Ahnung ob das in deinem Fall passt.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Devader

Beitrag von marcgfx »

Danke fürs Kompliment scheichs! Die Farbgebung war eigentlich ein Fehler der sich als bessere Wahl herausgestellt hat als was ich beabsichtigt hatte :)

Ein Mergesort wäre interessant. Ich könnte die statischen Hexas vorsortieren und mit dem Rest mergen... Kommt drauf an wie viel ich dafür umbauen muss, ob es sich lohnt... Sortieren ist aktuell gar nicht mehr so ein Problem. Kollisionserkennung ist wieder höher im Kurs :) . Aber wenn ich ohne zu viel Aufwand was rausholen kann ist jede Idee interessant.

Ich könnte gar den Merge-Schritt direkt weglassen, bzw. direkt beim ausgeben in den Buffer den Merge durchführen von dynamischer und statischer Liste. Danke für den Vorschlag!
scheichs
Establishment
Beiträge: 845
Registriert: 28.07.2010, 20:18

Re: [Projekt] Devader

Beitrag von scheichs »

Gerne. Hoffe es bringt was. Kenne ja nicht das Verhältnis zwischen Statischen und Dynamischen. Kurze Frage: Die Schüsse, bzw. der "Bulletstorm". Ändern die ihren Z-Wert? Weil mit "statisch" meinte ich generell Objekte die einen konstanten z-Wert haben aber gerne auch trotzdem xy-dynamisch sind.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Devader

Beitrag von marcgfx »

Es gibt keine statische z-Werte ausser bei statischen Elementen wie den Hexas und ein paar UI-Overlay Elementen. Selbst die Schatten haben wechselnde z-Werte, von daher gibt es nicht so viel rauszuholen.
scheichs
Establishment
Beiträge: 845
Registriert: 28.07.2010, 20:18

Re: [Projekt] Devader

Beitrag von scheichs »

ok, ich will ganz sicher nicht nerven, aber z.B. hier Bild

Die Schüsse (schwarz mit lila/rosa glow) ändern ihren Z-Wert? Kannst Du kurz erklären warum? Hilft mir beim Verständnis wie Du renderst und erspart dir vielleicht zukünftig unnötige Kommentare meinerseits :lol: :D
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Devader

Beitrag von marcgfx »

Die Frage ist berechtigt, ich habe sie mir selbst schon gestellt. Schüsse sind in Devader nicht automatisch im Vordergrund, sondern können hinter anderen Objekten versteckt werden. Das siehst du beim Boss, die Schüsse kommen unter den Beinen durch. Ob das Sinnvoll ist kann durchaus hinterfragt werden, es war eine optische Entscheidung ohne Performance zu berücksichtigen. Ich habe beschlossen, dass die Optik in Devader ebenfalls ein Hinderniss sein darf. Gewisse Laser verdecken ziemlich viel vom Geschehen, ergo macht es Sinn grösseren Abstand zu halten.
scheichs
Establishment
Beiträge: 845
Registriert: 28.07.2010, 20:18

Re: [Projekt] Devader

Beitrag von scheichs »

Ah moment. Ich denke immernoch in Layern... das ist mein Problem. Also durch "geschickte" yz-Kombination können 2 Objekte auf derselben Bildschirmposition abgebildet werden?
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Devader

Beitrag von marcgfx »

Jo, alle Objekte sind eigentlich in 3D Positioniert. Bei den Schüssen muss ich aber schauen, dass sie alle in etwa auf gleicher Höhe sind um den Spieler nicht zu verwirren. Die Gegner fallen vom Himmel, haben dadurch automatisch schon einen z-Wert. Manche Elemente sind höher als andere.

Bei diesem Boss ist es sehr ausgeprägt:
Zuletzt geändert von marcgfx am 20.02.2019, 21:43, insgesamt 1-mal geändert.
scheichs
Establishment
Beiträge: 845
Registriert: 28.07.2010, 20:18

Re: [Projekt] Devader

Beitrag von scheichs »

ok, klar. danke! Ich glaube wir hatten das schonmal geklärt eigentlich in anderem Zusammenhang.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Devader

Beitrag von marcgfx »

Kann sein, aber ich finde es gut immer wieder zu hinterfragen wieso etwas gemacht wird. Teilweise weiss ich es selbst nicht mehr. Mein erster Gedanke war bei deiner Beobachtung, dass du Recht hast und ich was optimieren könnte. Könnte ich vielleicht auch, aber nicht in jedem Fall. Sobald es nicht allgemein nützt, lohnt es sich vermutlich nicht für mich.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Devader

Beitrag von marcgfx »


Aus Spass an der Freude enstand dieses Vieh. bzw. Ich bin auf der Suche nach guten neuen Levels für den Waffenpfad und ich habe einfach ein bisschen rumprobiert.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Devader

Beitrag von marcgfx »




Die Viecher hab ich letzthin gemacht. Ich will noch mehr Abwechslung in die verschiedenen Schwierigkeitsstufen bringen.

Aktuell bin ich an der Highscoreliste dran, was nicht so spannend zum zeigen ist.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Devader

Beitrag von marcgfx »

Bild
Eben mal wieder abgeschmiert. Habe letzte Woche die Health-Power-Ups "vereinfacht". Jetzt soll jede grössere Einheit des Spielers diese einsammeln können und wird dadurch komplett geheilt. Bei der Fabrik ist das Spiel nun abgeschmiert als ein anderes Power-Up aufgenommen wurde, da ich dies nicht bedacht habe.

Es gab immer wieder Reklamationen, dass die Gegner zu klein sind. Also wurde vor langem eine Option eingebaut um die Gegner grösser aber weniger zahlreich zu machen. Das hat auch Performance Vorteile. Hier spiele ich gerade bei maximaler Gegnergrösse.

Der Screen ist bei minimalen Qualitätseinstellung aufgenommen worden. Das Resultat ist aber recht hübsch. Ich habe hier nur eine Background-Ebene und es wird der Splatter lediglich draufgezeichnet. Bei der max Einstellung wird Splatter mit der Zeit verblassen und es gibt leichte Sand-Bewegungen. Hier ist alles statisch.
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4254
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] Devader

Beitrag von Chromanoid »

Cool! Wie machst Du das mit der Gegnergröße und der Highscore? Also gibt's da irgendwas, das durch so eine Einstellung beeinflusst wird? Sind dann Spielrunden überhaupt vergleichbar?
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Devader

Beitrag von marcgfx »

Bild

@Chromanoid: Das Problem bin ich kürzlich angegangen, bzw. ich bin noch dran. Da der Score abhängig von vielen Faktoren ist, wird es unweigerlich zu anderen Resultaten kommen. Weniger Gegner, heisst ziemlich sicher weniger Punkte. Da diese schwerer zu vernichten sind, wird es mehr Munition brauchen die neuerding ebenfalls von Score abgezogen wird.
Die Highscores wird man Filtern können nach Einstellungen. Am Ende eines durchgangs sollten die Highscores angezeigt werden, die mit den gleichen Einstellungen erzielt wurden. Schwierigkeitsgrad, Gegnergrösse und erreichtes Ende werden die Kriterien sein. Heisst auch das es sehr viele leere Listen geben könnte. Wer weiss, evtl. motiviert es diese zu füllen.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Devader

Beitrag von marcgfx »

Bild
Ich beschäftige mich grad mit dem Upgrade Screen und hadere mit gewissen Designentscheidungen. Der Spieler kann 2 Upgrade-Punkte vergeben. Jedes Upgrade kann nur ein Mal ausgewählt werden. Manche Upgrades verändern eine Spielmechanik und brauchen 1-2 Upgrade Punkte (cyan, grün). Gestern habe ich eine Anpassung gemacht um das besser zu visualisieren. Kreis -> normales Upgrade, Hexa -> spezial Upgrade 1 Punkt, DoppelHexa -> spezial Upgrade 2 Punkte. Sieht man das überhaupt?

Select 2 Upgrades -> Distribute 2 Upgrade Points, wäre wohl besser?
Symbolvorschläge?

Ich habe den Screen schon zu oft angeschaut.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Devader

Beitrag von marcgfx »

Bild
Habe an der Highscore-Seite gearbeitet, jetzt ist es viel zugänglicher und ich finde auch übersichtlicher? Funktionieren tut es bis auf die "Freunde" anzeigen auch schon. Die Freunde muss ich noch irgendwie aus Steam dann rauspuhlen... oder ich lass es weg.
Antworten