Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

@zimmer

Alter Hase

Beiträge: 1 135

Wohnort: NRW Germany

  • Private Nachricht senden

71

29.03.2016, 12:38

Ich hatte Freude daran das Ding zu untersuchen, aber ich hätte nicht gedacht, dass es nur 4 Bilder sind. Zuerst sind mir die Punktförmigen Schatten aufgefallen und dann die Beweglichen Schwänze/ Schweife am Ende und dachte es wären viele kleine Teile. Wobei auch noch die Krebsartigen Beinchen auch noch animiert sind... Aber bei mir läuft das Spiel sehr langsam und es ist egal welches Monster es ist.
Falls es Dich interessiert, hier das Ergebnis meiner 3dMark Analyse.

(Link)

72

29.03.2016, 20:40

laut analyse ist dein pc wohl nicht der schnellste :) ? auf meinem macbook pro läufts relativ gut und der hat auch mit civ5 fast angefangen zu rauchen. der browser hat dann auch noch ein wörtchen mitzureden, bei mir ist chrome am schnellsten. dies ist halt der fluch meiner gewählten technologie, so schnell wie c++ wird javascript vermutlich nicht.

zu den 4 bildern: ich meinte nur den "kürbis". musste jetzt aber eben feststellen, dass das gar nicht stimmt. es waren 5 (eines war zu viel) und es gibt noch schatten...

(Link)

(Link)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »marcgfx« (30.03.2016, 00:10)


@zimmer

Alter Hase

Beiträge: 1 135

Wohnort: NRW Germany

  • Private Nachricht senden

73

29.03.2016, 22:32

bei mir sind es gefühlte 13 fps. aber die sind stabil, auch wenn viele Objekte auftauchen, ruckelt es nicht mehr als vorher.
Mein Browser ist auch Chrome und Windows 8.1 Pro als OS.
Zur Technologie:
Mir war nicht bewusst, dass Du mit Java Script Programmierst, was genau braucht man dafür?
...Ich finde es toll, dass Deine Spiele (Ich kenne nur dieses und die paralympics renn Simulator Updates) immer funktionieren und sogar ohne "Downloads" oder Installation. Und dass, Du sogar einen Multiplayer Modus hin bekommst.
Ich merke an der Frame rate und der Langen Lade Zeit, dass das Spiel bis zum Limit vollgetopft ist.

Mich würden aber ein Paar Details interessieren. Insbesondere, wie viele Objekte geladen und gezeigt werden Dürfen und wie viel Video Speicher In form von jpg s man pro Screen verbrauchen darf. Wäre schon interessant, zu überlegen wie aufwendig man die Level gestalten darf und wie groß.
Edit: Jetzt habe ich fast vergessen zu melden, dass die 2 Bilder wahrscheinlich in einem Passwortgeschütztem Verzeichnis liegen und ich die nicht sehen kann.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »@zimmer« (29.03.2016, 22:56)


74

30.03.2016, 00:41

Danke für den Hinweis zu den Bildern, hatte auf eine lokale URL verlinkt (http://data.cyber.local)

Um mit Javascript zu programmieren brauchst du einen Text-Editor :) testen/debuggen geht im Browser.
Notepad++ reicht also vollkommen aus, ich benutze aktuell aber Webstorm.

Das Spiel hat schon relativ viele Objekte, alle mit Kollisionserkennung. Als Grundlage dient eine eigene Physikengine + WebGl-Engine. Irgendwo könnte ich bestimmt noch einiges an Performance rausholen, aber ich habe bereits schon verdammt viel gemacht. Das Problem: sobald die Engine schneller/besser werde, stopf ich noch mehr rein. Irgendwo werde ich mich mal zurückhalten müssen. Das Tausendfüssler-Vieh besteht aus ~800 Objekten (die untereinander keine Kollisionen haben, überprüft wird es dennoch). Dann kommen noch ein paar 100 Kürbisse dazu, Explosionen, Schüsse, die statischen Hexas... ein wirklich oberes Limit gibt es nicht, irgendwann stürzt wohl der Browser ab ;)

Multiplayer ist im Browser nicht schwieriger als mit anderen Technologien. Multiplayer übers Netz ist aber lustigerweise schlechter unterstützt.

Die Lange Ladezeit ist auch etwas das mich nervt. Hängt damit zusammen das verdammt viele einzelne Ressourcen geladen werden. Die zwei Bilder aus dem letzten Post werden z.B. nicht wirklich so geladen. Sondern so:

(Link)

(Link)

(Link)

(Link)


Alpha-Kanal und Farbkanal, für Objekt und für den Schatten. Beim Schatten ist es absolut für die Katz, da das zweite Bild eh schwarz ist. Könnte ich optimieren. Ich muss also zuerst die Bilder kombinieren, bevor ich sie benutzen kann. Obs was bringt? Kürbis normal als PNG ~14kb, aufgesplittet in die zwei Bilder sinds noch 8kb. Das habe ich schon vor einigen Jahren entwickelt als Bandbreite noch knapper war.

Nach dem laden aller Bilder muss ich sie dann in einen Textur-Atlas kombinieren. Aktuell ist der Atlas eine Textur mit 2032x2048 Pixel. Heute musste ich was dran optimieren, weil die Textur sonst grösser wird als 2048x2048 (was ich versuche zu vermeiden, Begründung: Halbwissen). Hier könnte ich ebenfalls optimieren, indem ich den Textur-Atlas selbst speichere und nur diesen lade. Heist ich müsste den Bilder-Ladevorgang stark überarbeiten.

Level ist ne andere Geschichte. Es gibt aktuell nur immer eine grosse Arena, ich kann keine zusätzlichen Gebiete nachladen. Beschränkt habe ich die grösse nicht, aber je grösser desto schlechter die Performance.

P.S. nicht Paralympics sondern Cyberlympics :P ... allerdings gibt es dort inzwischen das Problem, dass es ein cyberlympics.org gibt. Die Domain haben sie zwar nach mir registriert, aber ... grrr.

@zimmer

Alter Hase

Beiträge: 1 135

Wohnort: NRW Germany

  • Private Nachricht senden

75

30.03.2016, 01:20

Wow Cyberlympics :search: Die Seite braucht aber auch lange zum Laden :D

WebGL Engine, gibt es die auch für 2D, oder hast Du doch 3d benutzt? :thinking:

Die Plätze für den Alphakanal könnte man sich vielleicht sparen.

Edit: einige Engines können den absoluten Schwarzwert als Transparenz markieren, dann wäre der Kontrast aber um 1/256stel. schwächer.
Hab einwenig mit gimp rumprobiert und versucht Deinen Kürbissen eine Farbe zu entziehen um sie dann wieder als zweiten Layer draufzumachen.
Man müsste alle Bilder etwas anpassen und es würde wieder ein neuer Style entstehen 8o
»@zimmer« hat folgendes Bild angehängt:
  • sppro.jpg

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »@zimmer« (30.03.2016, 02:45)


@zimmer

Alter Hase

Beiträge: 1 135

Wohnort: NRW Germany

  • Private Nachricht senden

76

30.03.2016, 03:08

Habe den Rand Schwarz gelassen, damit man den als alpha Maske nehmen kann und die Schwarze Farbe im Kürbis, durch Transparenz ersetzt, ich nehme an, wenn man unter den Kürbis Die Fläche schwarz anmalt, wird man nicht viel fps verlieren und hat Ein Bild gespart ohne Kontrast zu verlieren, natürlich geht dieser Trick nicht bei Halb transparenten Explosionen
»@zimmer« hat folgendes Bild angehängt:
  • sppro.png

77

30.03.2016, 03:38

WebGL kann durch transformationen genausogut 2D wie 3D darstellen. Mein Spiel ist aber komplett in 2D.

zu deinen Experimenten: Das schwarz als Transparenz könnte ich im Shader machen. Verstehe nicht ganz wozu, bzw. was du hier ausprobiert hast :) sieht auf alle Fälle interessant aus.
Im original habe ich immer ein png RGBA Bild. Dieses Bild spalte ich in RGB (indexiertes png 8bit) und Alpha (indexiertes png 5bit) auf. Die indexierten Bilder brauchen deutlich weniger Speicher, was für den Download von Vorteil ist. Deshalb habe ich das überhaupt gemacht. Nach dem Download kombiniere ich diese zwei und erhalte wieder ein RGBA bild. Mein Textur-Atlas verwendet dann dieses RGBA Bild.

Ich habe kleine Assistenten erstellt. Sie verfolgen den Spieler, wenn er nahe genug kommt und bleiben in nem sicheren Abstand. Sie ballern eigenständig auf die Gegner. Leider klumpen mehrere Assistenten nach einer Zeit immer zusammen. ich muss wohl sowas wie Boids auch noch implementieren :P, oder Ihnen um den Spieler rum unterschiedliche Zielpunkte geben. Mal sehen, finde sie jedenfalls ganz witzig.

(Link)

@zimmer

Alter Hase

Beiträge: 1 135

Wohnort: NRW Germany

  • Private Nachricht senden

78

30.03.2016, 12:16

Habe ich das richtig verstanden? Bei den Kürbissen, hasst Du kein extra Bild für den Alpha- Kanal? Das Bild ac.png aus Beitrag 74 ist in Wirklichkeit im Atlas im Kürbis Bild durchsichtig dargestellt?
Ich habe angenommen, dass für jedes Objekt ein Bild wie ca.png im Atlas nochmal vorkommt und man die Hälfte des Atlas sparen könnte, wenn man den Alpha Kanal ins Farbbild integrieren könnte.

Zu den kleinen neuen "Terroristen": finde ich cool, vielleicht könnte man machen, dass die auch die Kristalle abbauen um sich eigenständig zu reparieren und ab und zu, selbstständig einen Unbarmherzigen Air-Strike rufen können, der die Gegner wie auch einige Kristalle zerstören kann. :)

79

30.03.2016, 14:13

ja korrekt verstanden. im atlas ist das zusatzbild nicht, das wird nur für die übertragung im netz benutzt.

die terroristen sollen ja helfen, wenn sie jetzt kristalle abbauen würden, wäre das eher kontraproduktiv :)
die idee dass sich etwas an den kristallen auflädt finde ich super! das würde den spieler nochmal mehr dazu zwingen sich um gewisse gegner primär zu kümmern. z.B ein vieh das immer grösser wird, je mehr es sich auflädt -> immer schwerer zu zerstören. super einfall :D

inzwischen verteilen sich die assistenten um den spieler, so viele wie hier wirds aber nicht geben :)
evtl. könnte ich sequenzen machen wo man viele assistenten hat... sowas wie ruhe vor dem sturm. dann kommt der boss und macht alles platt...

(Link)


assistenten ausprobieren:
http://data.cyberlympics.com/html/game.h…view=1&shader=3

@zimmer

Alter Hase

Beiträge: 1 135

Wohnort: NRW Germany

  • Private Nachricht senden

80

30.03.2016, 16:24

was ist mit jpg2000? vielleicht kannst Du damit noch was rausholen?

Die vielen Roboter finde ich toll, offline erlaubt das Spiel bestimmt fantastische Möglichkeiten 8)

Werbeanzeige