Dogflight! - Webspiel inspiriert von Ataris Combat

Es gibt 60 Antworten in diesem Thema, welches 7.661 mal aufgerufen wurde. Der letzte Beitrag (22. August 2015 um 15:07) ist von maik.

  • So, mal ein Update:

    Ich habe einen Sound-Synthesizer in JavaScript geschrieben. Dieser orientiert sich ein bisschen daran, was der SID so macht:

    [*] Oszillatoren für Sinus, Sägezahn, Dreieck, Rechteck, Rauschen und Stille
    [*] Envelopes nach dem ADSR-Prinzip (Attack, Decay, Sustain, Release). Ein Envelope kann sich automatisch beliebig häufig wiederholen, es geht also nicht nur "Platsch", sondern auch "PlatschPlatschPlatschPlatsch...".
    [*] Beliebig viele Stimmen mit je einem Oszillator und einem Envelope-Generator. Ich nutze derzeit drei.

    Wäre ich da jetzt talentiert, so könnte ich also vermutlich auch einen echten "chiptunigen" Soundtrack mit realisieren. Bisher gibt es aber nur mäßig gelungene Sounds für Feuern und Treffen.

    Weiterhin neu: Es wird immer dafür gesorgt, dass drei Spieler im Spiel sind, d.h., wenn nicht genügend menschliche Spieler drin sind, dann wird mit Bots aufgefüllt. Die sind aber derzeit (und vorerst) nur dumme Zielscheiben - aber trotzdem geeignet, um ein bisschen zu üben, bis echte Spieler auftauchen (dann werden die Bots auch wieder rausgeworfen).

  • Es wird schon echt sehr gut! Hab grad eine Runde gezockt mit Arbeitskollegen!

    Wem ein leeres EPROM fehlt, braucht ein EPROM-Lösch-Gerät

    Mein GitHub: Bitte melde dich an, um diesen Link zu sehen.
    EasyFlash3 DIY: Bitte melde dich an, um diesen Link zu sehen.

    Mein Discogs: Bitte melde dich an, um diesen Link zu sehen.

  • Also das Spiel macht ja schon Laune ist aber bei mir eine böse Ruckelorgie

    Ja, da gibt es im Wesentlichen zwei Möglichkeiten, wie das zustande kommen kann:

    1. Der Browser ist schlicht nicht schnell genug, die ~25 Bilder die Sekunde zu zeichnen und den Sound zu synthetisieren. Damit das Rendern schnell genug klappt, wird Hardwarebeschleunigung benötigt, da das sonst voll auf die CPU schlägt. Ich habe hier ein Notebook unter Linux, wo der Firefox übel ruckelt (da klemmt was im Grafikstack) - der Chrome zeichnet das aber schnell genug weg. Power genug hat die Kiste prinzipiell - selbst auf einem Android-Tablet läuft die Grafik weich. Auch ein ~8 Jahre alter PC (mit Athlon 64 X2) mit Linux und Firefox kommt nicht ins Schwitzen.

    2. Netzwerkhänger: Auf einer Kiste scheinen die Datenpakete einfach mal mittendrin stecken zu bleiben, währenddessen gibt es keine Bildschirmupdates. Könnte was mit der WLAN-Netzwerkkarte zu tun haben - anderer Rechner im gleichen WLAN hat keine Probleme. Natürlich ergibt sich ein ähnliches Bild, wenn die Route von meinem Server zu deinem Rechner irgendwie verstopft ist.

    Tja, an cutting-edge Webzeugs kann man sich halt schonmal schneiden. Der Softwarestack ist ja kilometerhoch ;)

  • könnte man nicht einfach ein sample für schuss und abschuss nehmen, oder verschiedene mit leichten variationen die rnd mässig ausgewählt werden, evtl auch die scanline "emulation" weg um das ganze weniger ruckelig zu haben? auch bei mir ruckelts unter firefox auf einem lenovo t530.

  • maik: Kleiner Tipp/Wunsch. Wäre es möglich, den Link in Deiner Profil Fusszeile zu platzieren? Da müsste ich nicht immer suchen, weil der Browser immer zum letzten, von mir gelesenen Posting springt. Spart ein paar Klicks...
    Ja, 1st World Problems. :bgdev

    ___________________________________________________________
    Meine Kreationen: Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.
    | Bitte melde dich an, um diesen Link zu sehen.
    Avatar: Copyright 2017 by Saiki

  • könnte man nicht einfach ein sample für schuss und abschuss nehmen, oder verschiedene mit leichten variationen die rnd mässig ausgewählt werden, evtl auch die scanline "emulation" weg um das ganze weniger ruckelig zu haben? auch bei mir ruckelts unter firefox auf einem lenovo t530.

    Hmmm... das mit den Samples hatte ich vorher (genauer: ein Sample). Das war einfach ein <audio>-Element mit einer komprimierten Audio-Datei, welches ich per Skript einfach angeschubst habe. Das hatte aber Problemchen z.B. wenn schnell Sounds aufeinander folgen sollten und nach einiger Zeit hat es wohl auch mal aufgehört zu funktionieren. Wenn es aber tatsächlich zu Ruckelorgien kommt, nur weil ich den Sound in Echtzeit erzeuge, dann sollte ich vielleicht da wieder zurück. Aber vielleicht kriege ich auch den Synthesizer irgendwie schneller...

    Die scanline-Streifen gibt es "gratis": Wenn ich den Renderer initialisiere, dann rendert er einmal den Vorder- und Hintergrund fertig. Pro Frame zeichne ich also den fertigen Hintergrund auf den Canvas, dann kommt der ganze dynamische Kram und zum Schluss pappe ich den Vordergrund drauf (und dieser enthält die Wolken und auch die Streifen). Wenn die Hardwarebeschleunigung aktiv ist, dann kostet das "nichts", ansonsten ist aus meiner Sicht eh was kaputt ;)

  • man könnte ja die sounds durch kurze (schuss) und lange (getroffen) white noise bursts erzeugen, dann kann man auch mit der samplerate runtergehen und schont die engine eventuell falls das das problem ist. durch die niedriegere samplerate wirds halt weniger hifi dafür mehr retro. musik wär natürlich cool, aber würde dann auch nerven mit der zeit.

  • So, nun spawnt so alle ein bis zwei Minuten für kurze Zeit ein Item für Extrapunkte, um mal die Aufmerksamkeit auf etwas Anderes zu lenken und allen Spielern ein gemeinsames Ziel zu geben ;)

    Leute, die es in Schwarz/Weiß übersichtlicher finden, können das nun auch anwählen.

  • Hey,das macht ja spass :thumbsup:
    Schon sehr gut gelungen 8o

    "Eines Tages wird man offiziell zugeben müssen, daß das, was wir Wirklichkeit getauft haben,
    eine noch größere Illusion ist als die Welt des Traumes."
    Salvador Dali (1904-1989)
    Avatar: Copyright 2015 by Saiki

    Bitte melde dich an, um dieses Bild zu sehen.Bitte melde dich an, um dieses Bild zu sehen.Bitte melde dich an, um dieses Bild zu sehen.Bitte melde dich an, um dieses Bild zu sehen.Bitte melde dich an, um dieses Bild zu sehen.Bitte melde dich an, um dieses Bild zu sehen.Bitte melde dich an, um dieses Bild zu sehen.Bitte melde dich an, um dieses Bild zu sehen.Bitte melde dich an, um dieses Bild zu sehen.Bitte melde dich an, um dieses Bild zu sehen.

  • So, die Bots sind nun keine puren Zielscheiben mehr, sondern sind auch effektiv darin, mal was zu treffen. :)

  • das mit dem rahmen um den spieler ist sehr nützlich, aber dann taktisch doch ungut wenn man hinter der wolke verschwindet (gerade das ist ein wichtiger teil imho). man kann ja mit bremsen+lenken unendlich lange hinter der wolke versteckt bleiben.

    habs jetzt am macbook probiert, da ruckelt mal garnix. wäre es nicht noch cool wenn die wolken in der mitte von links nach rechts scrollen würden? ;)


    edit: pebkac... :D

  • Weg mit dem Rahmen, das verwirrt total!

    Wem ein leeres EPROM fehlt, braucht ein EPROM-Lösch-Gerät

    Mein GitHub: Bitte melde dich an, um diesen Link zu sehen.
    EasyFlash3 DIY: Bitte melde dich an, um diesen Link zu sehen.

    Mein Discogs: Bitte melde dich an, um diesen Link zu sehen.

  • Hmmm... der Rahmen ist natürlich nur für den eigenen Flieger da, die Gegner können sich wie gewohnt verstecken.

    Natürlich kann man nun schlechter vergessen, in welcher Wolke man gerade steckt - sich zu verstecken ist also nun minimal attraktiver geworden. Glaube bisher nicht, dass das ein großer Gamechanger ist - weil man weiterhin keine Idee hat, in welche Richtung man zielt.

    Viel wichtiger ist der Effekt, dass ich nun nicht mehr versuche, den falschen Flieger zu steuern ;) Zumindest mir hilft das enorm, fokussiert zu bleiben und nicht immer das Wimmelbild nach meinem Flieger zu durchsuchen (zumal ich häufig gelb und grün verwechselt habe).

  • Grad mal ausprobiert, ein lustiger Zeitvertreib :thumbup:

    Edit: was vielleicht noch ganz lustig sein könnte wär n Deathmatchmodus, jeder startet mit n Leben und verliert pro Treffer eins. Wer keins mehr übrig hat scheidet aus, wer zuletzt übrig bleibt gewinnt. Das Einsammeldings könnte dann als Extraleben dienen. Setzt natürlich voraus, das alle Teilnehmer zur gleichen Zeit starten, sonst wirds wohl etwas unfair...

  • Na, das ist ja nichts, was ich nicht prinzipiell zur Option machen kann...

    ... und genau das ist nun drin. Auch die Scanlines sind nun abschaltbar.

    Das Bonus-Pickup gibt jetzt nicht einfach nur Gratis-Punkte. Stattdessen bekommt man ein zufälliges Waffenpowerup, mit dem man sich die Punkte verdienen kann.

  • Port 3000 nix gut im Büro.... :baby: ;( X(

    ___________________________________________________________
    Meine Kreationen: Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.
    | Bitte melde dich an, um diesen Link zu sehen.
    Avatar: Copyright 2017 by Saiki