[Projekt] Devader
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.
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.
Re: [Projekt] Cyberlympics
<von der letzten seite>
@tiles : danke! schön zu wissen dass es weitere lurker gibt :D
die entwicklungsschritte: oben links erster test, die geschütze feuern dauernd und richten sich nach links aus... im zweiten bild stimmt die ausrchtung auf einen gegner. danach zwei tests mit unterschiedlichen basiselementen.
leider ist es ein schlag ins wasser. ich habs hinbekommen, dass die geschütze schön um den bot aufgereiht sind. sie suchen sich ein ziel aus und ballern drauf. der ausrichtungswinkel ist jeweils eingeschränkt so dass sie sich nicht gegenseitig beschiessen.
das problem: wenn ich die geschütze fix am bot habe gibts bei den kollisionen probleme. wenn sie nicht ganz fix sind, hecheln sie dem bot immer hinterher was schlecht ausschaut und die kollisionen sind weiterhin müll. was ich mit müll meine: sie können durch andere objekte hindurchfahren.
</ich bin ein doppelposter>
hab mal ne erste version von multi-schuss eingebaut zum testen. sieht eigentlich ganz witzig aus, aber ich seh heute nur probleme :roll:
multischuss -> vervielfachung der angriffskraft durch normales schiessen -> geschütztürme/assistenten/power-schuss/schwert werden alle verhältnismässig schwächer -> der original-schuss müsste stark abgeschwächt werden -> ohne upgrades ist man ziemlich verloren. das war in den alten arcade ballerspielen doch auch so? wenn man einmal drauf ging mit den ultra-geilen upgrades musste man von vorne mit dem aufsammeln beginnen, es wurde also verdammt viel schwieriger wieder ins spiel zu kommen. wenn die upgrades nicht verloren gehen, sind sie vor allem für eines da: zum geil ausschauen, da das balancing vom ganzen spiel auf einen hohen upgrade stand ausgelegt ist.
eine variante wäre beim multischuss, dass man die stärke eines einzelnen schusses durch die anzahl schüsse dividiert. hätte zur folge, dass man weniger schaden anrichtet, dafür mehr gegner treffen kann. das könnte strategisch noch ganz interessant sein. setzt aber voraus, dass der spieler die waffenart auswählen kann.
@tiles : danke! schön zu wissen dass es weitere lurker gibt :D
die entwicklungsschritte: oben links erster test, die geschütze feuern dauernd und richten sich nach links aus... im zweiten bild stimmt die ausrchtung auf einen gegner. danach zwei tests mit unterschiedlichen basiselementen.
leider ist es ein schlag ins wasser. ich habs hinbekommen, dass die geschütze schön um den bot aufgereiht sind. sie suchen sich ein ziel aus und ballern drauf. der ausrichtungswinkel ist jeweils eingeschränkt so dass sie sich nicht gegenseitig beschiessen.
das problem: wenn ich die geschütze fix am bot habe gibts bei den kollisionen probleme. wenn sie nicht ganz fix sind, hecheln sie dem bot immer hinterher was schlecht ausschaut und die kollisionen sind weiterhin müll. was ich mit müll meine: sie können durch andere objekte hindurchfahren.
</ich bin ein doppelposter>
hab mal ne erste version von multi-schuss eingebaut zum testen. sieht eigentlich ganz witzig aus, aber ich seh heute nur probleme :roll:
multischuss -> vervielfachung der angriffskraft durch normales schiessen -> geschütztürme/assistenten/power-schuss/schwert werden alle verhältnismässig schwächer -> der original-schuss müsste stark abgeschwächt werden -> ohne upgrades ist man ziemlich verloren. das war in den alten arcade ballerspielen doch auch so? wenn man einmal drauf ging mit den ultra-geilen upgrades musste man von vorne mit dem aufsammeln beginnen, es wurde also verdammt viel schwieriger wieder ins spiel zu kommen. wenn die upgrades nicht verloren gehen, sind sie vor allem für eines da: zum geil ausschauen, da das balancing vom ganzen spiel auf einen hohen upgrade stand ausgelegt ist.
eine variante wäre beim multischuss, dass man die stärke eines einzelnen schusses durch die anzahl schüsse dividiert. hätte zur folge, dass man weniger schaden anrichtet, dafür mehr gegner treffen kann. das könnte strategisch noch ganz interessant sein. setzt aber voraus, dass der spieler die waffenart auswählen kann.
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] Cyberlympics
trippleposter...
irgendwas läuft einfach schief. der spielspass sinkt gegen ende des spiels immer mehr. irgendwann hat man den dreh raus, bzw. kann so viel einstecken, dass man sich nicht mega sorgen ums überleben macht.
ich muss mich darum kümmern, dass die späteren spinnen von der KI her interessanter werden. denke das könnte verhindern, dass es zu repetitiv wird.
habe bis zum endboss durchgehalten, die schwarzen spinnen sind aber kaum tot zu kriegen. zu viel hp. ein anderes problem ist, dass die geschütze irgenwann zu schwach werden (ich hab voll auf waffen und schilder gesetzt, von daher machts eigentlich sinn)
die assistenten waren auch mehr ein tropfen auf dem heisssen stein, als das sie wirklich nützlich/sinnvoll gewesen wären. eine möglichkeit wäre die waffenupgrades noch einmal abzuschwächen, aber auch die gegner schwächer zu machen (weniger hp).
irgendwas läuft einfach schief. der spielspass sinkt gegen ende des spiels immer mehr. irgendwann hat man den dreh raus, bzw. kann so viel einstecken, dass man sich nicht mega sorgen ums überleben macht.
ich muss mich darum kümmern, dass die späteren spinnen von der KI her interessanter werden. denke das könnte verhindern, dass es zu repetitiv wird.
habe bis zum endboss durchgehalten, die schwarzen spinnen sind aber kaum tot zu kriegen. zu viel hp. ein anderes problem ist, dass die geschütze irgenwann zu schwach werden (ich hab voll auf waffen und schilder gesetzt, von daher machts eigentlich sinn)
die assistenten waren auch mehr ein tropfen auf dem heisssen stein, als das sie wirklich nützlich/sinnvoll gewesen wären. eine möglichkeit wäre die waffenupgrades noch einmal abzuschwächen, aber auch die gegner schwächer zu machen (weniger hp).
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] Cyberlympics
Die neuste Version erlaubt mit einem Score-Malus unbeschränkt weiterzumachen. Irgendwann werde ich dann einen Minimalscore festlegen (vermutlich 100'000) der benötigt wird um weiterzumachen. Für jetzt ist es ganz praktisch, da man das ganze Spiel bis zum Ende spielen kann.
Ich habe die KI für die ersten 6 Spinnen verändert. Eigentlich ist es immer noch fast gleich, der Hauptunterschied ist, dass es jetzt nicht mehr über meine KI-Schnittstelle läuft. Das Problem mit der Schnittstelle: Ich habe sie für die damaligen PvP KI-Schlachten gebaut. Ich musste also auch verhindern, dass die KI auf Daten zugreift, die sie nicht haben darf. Ebenso musste ich absichern, dass nichts verändert wurde, das nicht verändert werden darf. Dies verlangt einige Wrapper-Klassen, die natürlich auch wieder Performance fressen. Im Bild sieht man die Spinnen unterschiedlich eingefärbt, das war für mich eine Hilfe zum debuggen. Die blauen haben Hexas im Visier, die grünen wollen den Spieler vernichten und die schwarzen irren umher.
Ich habe die KI für die ersten 6 Spinnen verändert. Eigentlich ist es immer noch fast gleich, der Hauptunterschied ist, dass es jetzt nicht mehr über meine KI-Schnittstelle läuft. Das Problem mit der Schnittstelle: Ich habe sie für die damaligen PvP KI-Schlachten gebaut. Ich musste also auch verhindern, dass die KI auf Daten zugreift, die sie nicht haben darf. Ebenso musste ich absichern, dass nichts verändert wurde, das nicht verändert werden darf. Dies verlangt einige Wrapper-Klassen, die natürlich auch wieder Performance fressen. Im Bild sieht man die Spinnen unterschiedlich eingefärbt, das war für mich eine Hilfe zum debuggen. Die blauen haben Hexas im Visier, die grünen wollen den Spieler vernichten und die schwarzen irren umher.
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] Cyberlympics
Wolltest du nicht Performance sparen? Du arbeitest doch allein an dem Projekt. Weißt du wie ich es bei mir mache? Ich scheiße einfach auf alles... ich habe mehr globale als lokale Variablen... ich habe soweit ich weiß, keine getter und setter und nicht wirklich viele Klassen, nur da wo es nötig ist. Man muss sich zwar nicht überall das Leben schwer machen, aber wenn du den Code selbst schreibst und der für dich ist, dann lerne auch, damit umzugehen und den zu beherrschen, auch wenn es nicht überall Netz und doppelten Boden gibt! :Dmarcgfx hat geschrieben:Performance fressen.
Naja, nur meine Meinung bzw. mein Tipp. Darum, mach es so, wie es dir Spass macht! :)
Re: [Projekt] Cyberlympics
Jap, genau deswegen werde ich ja die Performancefresser los :). Die Umstellung in der KI erlaubt mir jetzt direkt auf die Daten zuzugreifen, anstatt die Wrapper zu vewenden. Habs auch schon mit 800 Spinnen getestet und es lief passabel. Bei der grossen Anzahl spielt aber der Kollisionscode wieder eine grosse Rolle.
Globale Variablen gibts schon einige, aber grad bei der KI brauche ich da eigentlich nichts.
Globale Variablen gibts schon einige, aber grad bei der KI brauche ich da eigentlich nichts.
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] Cyberlympics
Oh sorry, dann hab ich das nicht richtig mitbekommen :D
Wenn ich mir dein Krabbenbild da anschaue, erinnert mich das übrigens an...
[youtube]QKg7MI_iJN8[/youtube]
Wenn ich mir dein Krabbenbild da anschaue, erinnert mich das übrigens an...
[youtube]QKg7MI_iJN8[/youtube]
Re: [Projekt] Cyberlympics
noch was bezüglich globale variablen. die sind in javascript für die performance schlecht!
mit dem lied kann ich so gar nix anfangen, aber schön dass du dabei an meine spinnen denkst :lol:
mit dem lied kann ich so gar nix anfangen, aber schön dass du dabei an meine spinnen denkst :lol:
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [Projekt] Cyberlympics
Naja, die sind auch in C++ für die Performance schlecht :D
(Adressierung durch eine globale Adresse ist drei Bytes länger als Adressierung relativ zu einem Register; man kann sich dann Ärger mit dem Decoder-Durchsatz oder der L1-Instruction-Bandbreite einfangen.)
Aber in JavaScript ist das wahrscheinlich dein geringstes Problem ;)
(Adressierung durch eine globale Adresse ist drei Bytes länger als Adressierung relativ zu einem Register; man kann sich dann Ärger mit dem Decoder-Durchsatz oder der L1-Instruction-Bandbreite einfangen.)
Aber in JavaScript ist das wahrscheinlich dein geringstes Problem ;)
Re: [Projekt] Cyberlympics
Ich finde, zumindest die "Spinnen" da im Bild sehen eher wie Krabben aus.marcgfx hat geschrieben:mit dem lied kann ich so gar nix anfangen, aber schön dass du dabei an meine spinnen denkst :lol:
DANKE für den Tipp! :DKrishty hat geschrieben:(Adressierung durch eine globale Adresse ist drei Bytes länger als Adressierung relativ zu einem Register; man kann sich dann Ärger mit dem Decoder-Durchsatz oder der L1-Instruction-Bandbreite einfangen.)
Wie ist das mit Globalen Arrays? Und meinst du Lokal, also in einer Klasseninstanz?
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [Projekt] Cyberlympics
Lokal ist alles, was relativ zu einem Register ist. Ich habe keine Ahnung, was für Code dein Delphi da erzeugt, darum kann ich die Frage nicht beantworten. Ich weiß nur, dass mov rax, [0x12345678] quasi doppelt so groß ist wie mov rax, [ebp+123]. Guck halt ins Disassembly, vergleich, und benchmarke.
Re: [Projekt] Cyberlympics
Heute früh habe ich nochmal am Schwert gearbeitet. Als erstes habe ich mich darum gekümmert, dass es nicht einfach durch alles hindurchlappt. Stösst es auf ein Hindernis, wird das Schwer entsprechend gekürzt. Es kann jetzt ausserdem Schüsse zerstören und je schneller man Fuchtelt, desto mehr Schaden macht man...
Auf Spieleprogrammierer kam der Wunsch nach Minimap, habe sie promp wieder eingebaut. Ein paar Sachen mussten noch angepasst werden und mir scheint es ist noch etwas buggy. Im Bild kann man gut erkennen, wie das Tentakelmonster angezeigt wird. Man kann ausserdem erkennen, dass vom Tentakelmonster schwarze Energie auf die Schüsse geht. Ist auch ein kleiner Bug :) Ich habe für das Schwert eine Funktion umgestellt, welche in einem Radius alle Elmente zurückgibt. Zuvor wurden die Schüsse nicht gefunden, jetzt eben schon.
Auf Spieleprogrammierer kam der Wunsch nach Minimap, habe sie promp wieder eingebaut. Ein paar Sachen mussten noch angepasst werden und mir scheint es ist noch etwas buggy. Im Bild kann man gut erkennen, wie das Tentakelmonster angezeigt wird. Man kann ausserdem erkennen, dass vom Tentakelmonster schwarze Energie auf die Schüsse geht. Ist auch ein kleiner Bug :) Ich habe für das Schwert eine Funktion umgestellt, welche in einem Radius alle Elmente zurückgibt. Zuvor wurden die Schüsse nicht gefunden, jetzt eben schon.
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] Cyberlympics
Multi-Shot ist als Power-Up jetzt drin. Meine Überlegungen wieso ich es nicht integrieren wollte waren zwar alle richtig, aber es gibt eine super einfache Lösung dazu: Das Power-Up ist zeitlich begrenzt. Somit hat man den Spass mit dem Multi-Shot und es kann das Balancing nicht zur Sau machen. Es ist jetzt das erste Power-Up das man aufsammeln kann, es macht auch ziemlich Laune :)
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] Cyberlympics
Ich habe jetzt die anderen zwei Schuss-Powerups implementiert: Zielsuchende Schüsse und ein Stärke-Upgrade. Sie sind allerdings bei weitem nicht so befriedigend wie der Multi-Shot. Das schöne an meiner Implementierung: Die Powerups können kumuliert werden. Sammelt man zwei mal den Multi-Shot ein, schiesst man 5 Schüsse pro Waffe. Mit dem Zielsuch und Stärke Upgrade zusammen, wird die Waffe dann immer brutaler. Im Screenshot sieht man das Resultat.
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] Cyberlympics
Anhängsel sind jetzt tatsächlich drin, mit anständigem physikalischem Verhalten. Ich hab mich vor ein paar Posts noch aufgeregt, dass ichs nicht lösen kann. Hat mich nicht in Ruhe gelassen. Jetzt ist es drin, ob sinnvoll oder sinnfrei ist nicht die Frage.
Mehr als 10 Stück gehen wirklich nicht, ich denke im Spiel wird das Limit eher 6 sein.
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] Cyberlympics
Vermutlich nicht die beste Idee die ich jemals hatte: Dieser Spinnentyp vervielfältigt sich selbstständigig. Je länger man wartet, desto mehr werden es... Unbeschränkt geht die Performance verdammt schnell in die Knie. Ich wollte einfach noch einen Spinnentyp haben, bei dem man seine Zerstörungswut richtig ausleben kann :D
Das Wochenend hat sich noch einiges getan bei der Spinnen-KI. Die Verhaltensmuster sind jetzt nicht mehr überall identisch, teilweise sind sie jetzt vielleicht schon zu intelligent.
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] Cyberlympics
Ich glaube ich muss die Bossmonster noch interessanter gestalten... irgendwie sind sie etwas öde. Vielleicht macht es nur auf mich den Eindruck, weil ich sie schon 100 mal gesehen habe??
Ich denke ich muss die Bossmonster mit verschiedenen Aktionen ausstatten. Aktuell haben sie genau ein einziges Muster, dass sie von Anfang bis Ende verfolgen. Cool wäre es schon, wenn man etwas zerstört, dass sich der Boss verändert.
Was ebenfalls noch cool wäre: Wenn jeder Boss durch die neue Mechanik, die im Level zur Verfügung gestellt wird, einfacher zu besiegen wäre.
1. Nuke (gut getimte nuke beim Tentakelmonster)
2. Geschützturm (platzieren und wieder wegnehmen, Orbiter-boss)
3. Power-Schuss (gut gezielter Schuss, evtl. den Boss betäuben und ein Treffer ist dann frei, der Wirkung macht??? )
4. Assistenten (schon schwer genug sie am Leben zu halten, evtl. können für den Bosskampf weitere abgeworfen werden???)
5. Energie-Ball (Hauptproblem ist wenn man den Ball in eine Ecke bugsiert hat und nicht sinnvoll wieder kontrollieren kann...)
6. Schwert (klappt ganz gut mit dem letzten Boss)
Ich denke ich muss die Bossmonster mit verschiedenen Aktionen ausstatten. Aktuell haben sie genau ein einziges Muster, dass sie von Anfang bis Ende verfolgen. Cool wäre es schon, wenn man etwas zerstört, dass sich der Boss verändert.
Was ebenfalls noch cool wäre: Wenn jeder Boss durch die neue Mechanik, die im Level zur Verfügung gestellt wird, einfacher zu besiegen wäre.
1. Nuke (gut getimte nuke beim Tentakelmonster)
2. Geschützturm (platzieren und wieder wegnehmen, Orbiter-boss)
3. Power-Schuss (gut gezielter Schuss, evtl. den Boss betäuben und ein Treffer ist dann frei, der Wirkung macht??? )
4. Assistenten (schon schwer genug sie am Leben zu halten, evtl. können für den Bosskampf weitere abgeworfen werden???)
5. Energie-Ball (Hauptproblem ist wenn man den Ball in eine Ecke bugsiert hat und nicht sinnvoll wieder kontrollieren kann...)
6. Schwert (klappt ganz gut mit dem letzten Boss)
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] Cyberlympics
Die Spinnen halten jetzt von einander etwas Abstand. die zwei Spinnen die am nächsten sind werden jeweils verbunden. Das Netz wird Schaden machen.
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] Cyberlympics
So sieht es inzwischen aus, jetzt muss es nur noch Schaden machen... ob es ein guter Gegner ist, wird sich noch zeigen.
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] Cyberlympics
Vor 4h wollte ich noch kurz was einbauen. Aber... man kennt das ja. Ich wollte unbedingt noch Trommelfells Musik besser einbinden. Der erste Track startet jetzt bereits im Menü und zieht sich durch das Einführungslevel. Wenn man alle Viecher vernichtet hat wird die Musik langsam leiser und das Upgrade-Menü wird angezeigt. Wenn man seine Upgrades ausgewählt hat geht es mit dem nächsten Track los.
Die neue Version ist online und hat neben Musik, endlos Continues, viel zu viele Extras und leicht überarbeitete Bosse (da muss noch viel gemacht werden). Die neuen Spinnen sind natürlich auch dabei.
Ach ja, Bugs gibts garantiert. Bis zum Ende habe ichs eben nicht fertig gespielt... zu müde :P
http://data.cyberlympics.com/html/game. ... ntiMiner_1
edit: jap hat sofort gebuggt... musste noch was fixen. Wieso verhält sich bloss ein Release immer etwas anders :P
Die neue Version ist online und hat neben Musik, endlos Continues, viel zu viele Extras und leicht überarbeitete Bosse (da muss noch viel gemacht werden). Die neuen Spinnen sind natürlich auch dabei.
Ach ja, Bugs gibts garantiert. Bis zum Ende habe ichs eben nicht fertig gespielt... zu müde :P
http://data.cyberlympics.com/html/game. ... ntiMiner_1
edit: jap hat sofort gebuggt... musste noch was fixen. Wieso verhält sich bloss ein Release immer etwas anders :P
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] Cyberlympics
Ich mag meine Screenshots überhaupt nicht, in Bewegung siehts immer viel besser aus. Leider sind die gifs immer sofort riesig :( und die gif Programme die ich benutze sind sowas von mühsam.
Das hier habe ich mit ScreenToGif aufgenommen. Da waren es 6mb, wieso weiss keiner. Ich habs dann mit GIMP geöffnet und nochmal gespeichert, jetzt sind es ~600kb
Ich hatte plötztlich wieder einen NaN fehler (die ich so liebe). Trat irgendwo bei diesem Elektro-Ball auf und führte zu einer Endlos-Schleife. Um es möglichst einfach wiederholen zu können habe ich also verdammt viele von diesen Bällen erzeugt und ein paar Überprüfungen eingebaut. Stellt sich heraus das meine qsin (quick sinus über tabelle) einen Fehler hat... ich verwende die Funktion überall. Ich glaube ich hatte verdammtes Glück, dass der Bug so einfach aufzufinden war :D
Das hier habe ich mit ScreenToGif aufgenommen. Da waren es 6mb, wieso weiss keiner. Ich habs dann mit GIMP geöffnet und nochmal gespeichert, jetzt sind es ~600kb
Ich hatte plötztlich wieder einen NaN fehler (die ich so liebe). Trat irgendwo bei diesem Elektro-Ball auf und führte zu einer Endlos-Schleife. Um es möglichst einfach wiederholen zu können habe ich also verdammt viele von diesen Bällen erzeugt und ein paar Überprüfungen eingebaut. Stellt sich heraus das meine qsin (quick sinus über tabelle) einen Fehler hat... ich verwende die Funktion überall. Ich glaube ich hatte verdammtes Glück, dass der Bug so einfach aufzufinden war :D
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] Cyberlympics
Habe heute viel zu lange gebraucht um die Tausendfüssler zu verbessern. Es ist immer wieder vorgekommen, dass Glieder in die falsche Richtung gelaufen sind und eine kleine Schleife machten. Dies ist immer dann passiert, wenn das hintere Glied das vordere überholt hat. Alle kleinen Fixes haben zu nichts geführt, machten es schlimmer oder erzeugten neue Probleme.
Also musste der Tausendfüssler komplett überarbeitet werden. Bislang war es so, dass die Glieder unter einander Kollidieren konnten. Dies hat zu dem guten Effekt des Tausendfüsslers geführt. Die neue Version erlaubt keine Selbstkollisionen mehr und ist damit viel weniger Fehleranfällig. Bis ich das Zusammenspiel zufriedenstellen hinbekommen habe, sind sicher 6h vergangen. Naja... ich hoffe ich kann es jetzt so belassen.
Gab auch noch ein paar andere Anpassungen, u.a. beim GUI für die Gamepad Steuerung. Ist aber immer noch nicht Fehlerfrei. Immerhin hab ich es auch mit dem Gamepad bis zum Endboss geschafft :)
Also musste der Tausendfüssler komplett überarbeitet werden. Bislang war es so, dass die Glieder unter einander Kollidieren konnten. Dies hat zu dem guten Effekt des Tausendfüsslers geführt. Die neue Version erlaubt keine Selbstkollisionen mehr und ist damit viel weniger Fehleranfällig. Bis ich das Zusammenspiel zufriedenstellen hinbekommen habe, sind sicher 6h vergangen. Naja... ich hoffe ich kann es jetzt so belassen.
Gab auch noch ein paar andere Anpassungen, u.a. beim GUI für die Gamepad Steuerung. Ist aber immer noch nicht Fehlerfrei. Immerhin hab ich es auch mit dem Gamepad bis zum Endboss geschafft :)
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] Cyberlympics
Ich bin dabei den Ladevorgang zu verbessern. Kein besonders witziger Job, aber ich denke es ist wichtig.
Bislang wurde für jede Bildergruppe ein Farbkanal ein Alphakanal und eine Informationsdatei (Position der Einzelbilder im Bild) geladen. Die zwei Bilder werden zu einem RGBA Bild kombiniert. Nachdem alle Bilder geladen und kombiniert sind, wird der Textur-Atlas erstellt. Dafür werden viele Bilddaten rumkopieren und die möglichst optimale Platzierung berechnet.
Das fällt jetzt hoffentlich alles weg. In AntiMiner weiss ich genau welche Bilder gebraucht werden und es gibt kein späteres nachladen von anderen Bildern. Ich lade jetzt den Atlas direkt mit den dazugehörigen Informationen. Noch bin ich nicht fertig, aber ich hab mich so darüber gefreut, dass überhaupt was zu sehen ist, dass ich einen Screenshot machen musste :D
Bislang wurde für jede Bildergruppe ein Farbkanal ein Alphakanal und eine Informationsdatei (Position der Einzelbilder im Bild) geladen. Die zwei Bilder werden zu einem RGBA Bild kombiniert. Nachdem alle Bilder geladen und kombiniert sind, wird der Textur-Atlas erstellt. Dafür werden viele Bilddaten rumkopieren und die möglichst optimale Platzierung berechnet.
Das fällt jetzt hoffentlich alles weg. In AntiMiner weiss ich genau welche Bilder gebraucht werden und es gibt kein späteres nachladen von anderen Bildern. Ich lade jetzt den Atlas direkt mit den dazugehörigen Informationen. Noch bin ich nicht fertig, aber ich hab mich so darüber gefreut, dass überhaupt was zu sehen ist, dass ich einen Screenshot machen musste :D
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] Cyberlympics
Die Ladezeiten sind plötzlich erschreckend schnell, vor allem wenn das 3.6mb Bild mal im Cache ist. Wenn man die Seite öffnet und ins Menü kommt wird das Spiel im Hintergrund sowieso bereits geladen, wenn ich jetzt auf Start drücke gehts gefühlte 0.2 sekunden. Den Ladeschirm bekomme ich gar nicht mehr zu sehen :D
Ich hätte das schon sooo viel früher machen müssen, was ich da an Wartezeit gespart hätte :roll:
Die neue Chrome Version hat mir nicht so viel Freude bereitet. Zumindest glaube ich dass einige Probleme deswegen auftauchen...
Es gibt in Javascript ein "debugger"-statement, dass wie ein break-point funktioniert. Wenn man es einsetzt, dann verhindert es ausserdem die Optimierungen für diese Funktion. Nun ist mir bei einem meiner Scripte ein Problem aufgefallen und ich wollte mit Hilfe des "debugger"-statements dem Problem auf die Spur kommen. Das Problem trat aber nicht mehr auf. Also debugger-statement wieder rausgenommen, da war das Problem wieder da... Meine Vermutung ist nun, dass irgend eine Optimierung zum Problem führt. Wie sich das Problem zeigt: Ich bekomme komische float-Werte, so was wie "-2.6380304608078758e+131". Ich bin nicht mal sicher was das für ein Wert sein soll.
Ausserdem habe ich das Gefühl, dass das Spiel neu immer wieder stockt... :(
Ich werde optional noch eine kleine Anzeige einbauen, die das Zielen mit Gamepad erleichtern soll. Manchmal kann es sein, dass das Zielkreuz ausserhalb des sichtbaren Bereichs ist. Ich muss daran auf alle Fälle noch arbeiten.
Ich hätte das schon sooo viel früher machen müssen, was ich da an Wartezeit gespart hätte :roll:
Die neue Chrome Version hat mir nicht so viel Freude bereitet. Zumindest glaube ich dass einige Probleme deswegen auftauchen...
Es gibt in Javascript ein "debugger"-statement, dass wie ein break-point funktioniert. Wenn man es einsetzt, dann verhindert es ausserdem die Optimierungen für diese Funktion. Nun ist mir bei einem meiner Scripte ein Problem aufgefallen und ich wollte mit Hilfe des "debugger"-statements dem Problem auf die Spur kommen. Das Problem trat aber nicht mehr auf. Also debugger-statement wieder rausgenommen, da war das Problem wieder da... Meine Vermutung ist nun, dass irgend eine Optimierung zum Problem führt. Wie sich das Problem zeigt: Ich bekomme komische float-Werte, so was wie "-2.6380304608078758e+131". Ich bin nicht mal sicher was das für ein Wert sein soll.
Ausserdem habe ich das Gefühl, dass das Spiel neu immer wieder stockt... :(
Ich werde optional noch eine kleine Anzeige einbauen, die das Zielen mit Gamepad erleichtern soll. Manchmal kann es sein, dass das Zielkreuz ausserhalb des sichtbaren Bereichs ist. Ich muss daran auf alle Fälle noch arbeiten.
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] Cyberlympics
Seit der neuesten Chrome Version hab ich ziemliche Performance Probleme. Bis zu 15% der CPU Leistung geht für Garbage Collection drauf. Ich habe den Verdacht, dass es mit meiner Objekt-Struktur zusammenhängt, weiss es aber nicht wirklich. Auf die Struktur bin ich überhaupt nicht stolz, aber ich habe mich bisher nicht mehr getraut an dem Ding was zu ändern. Es hängt alles irgendwie dran... Jetzt habe ich den Schritt gewagt und es wird wohl in nächster Zeit überhaupt nichts laufen. JavaScript ist wohl auch die besch**** Sprache für so ein komplettes Refactoring. Bis ich das Ding starte habe ich keinen Schimmer ob es irgendwo knallen wird. Wenn ich in ein paar Tagen eine Glatze habe, weiss ich genau weswegen. Worst case wäre wenn die Umstellung gar nix bringt...
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] Cyberlympics
Nicht beneidenswert ;)
Auf was baust du um? Aus meiner bescheidenen Erfahrung heraus haben Pools das GC-Problem ganz gut im Griff.
Auf was baust du um? Aus meiner bescheidenen Erfahrung heraus haben Pools das GC-Problem ganz gut im Griff.
Re: [Projekt] Cyberlympics
Auf Pools habe ich schon lange umgestellt, das Problem ist vermutlich was anderes. Ich habe nicht mit prototype gearbeitet, sondern mit closures. Als ich vor 5 Jahren angefangen habe, waren die Ansprüche anders. Es hat bislang auch ganz gut funktioniert...
Meine Klassen sahen so aus:
jetzt stelle ich auf sowas um:
Wie gesagt, ich bin nicht stolz darauf :P. Es kann aber durchaus sein, dass es nicht der Grund für mein neues Performance-Problem ist.
Es gibt inheritance Möglichkeiten in JavaScript, scheinbar sind diese lahm. Darum das neue Krüppelkonstrukt.
Meine Klassen sahen so aus:
Code: Alles auswählen
function _ClassA_(){
var me = {data:{}};
var data = me.data;
me.funcA = function(){...}
return me;
}
function _ClassB_(){
var me = new _ClassA_();
var data = me.data;
me.funcB = function(){...}
return me;
}
Code: Alles auswählen
function _ClassA_(){
this.data = {};
}
_ClassA_.prototype.funcA = function(){...}
function _ClassB_(){
this.a = new _ClassA_();
this.data = this.a.data;
}
_ClassB_.prototype.funcB = function(){...}
Es gibt inheritance Möglichkeiten in JavaScript, scheinbar sind diese lahm. Darum das neue Krüppelkonstrukt.
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
Re: [Projekt] Cyberlympics
Ja, das JS-Klassensystem mit den Prototypes... alles irgendwie sperrig. Schade auch, dass die Sprache nicht typisiert ist.
Ich drück jedenfalls die Daumen, dass du das ohne allzuviel Frust und Rückschläge in den Griff bekommst.
Ich drück jedenfalls die Daumen, dass du das ohne allzuviel Frust und Rückschläge in den Griff bekommst.
- Chromanoid
- Moderator
- Beiträge: 4273
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: [Projekt] Cyberlympics
Schon mal daran gedacht auf TypeScript oder so umzusteigen?
Re: [Projekt] Cyberlympics
Langsam komme ich wieder auf den alten Stand... stürzt dauernd ab, aber man sieht zumindest wieder was :)
@joeydee: Danke! Javascript ist manchmal schon ziemlich hässlich. Ich finde es aber schön dass man nicht kompilieren muss :D
@Chromanoid: Nein, bis jetzt habe ich mir das nie überlegt. Könnte schon sinn machen, evtl. hätte es gar auf die Performance noch positiven Einfluss, da weniger Wildwuchs möglich ist. Ich weiss nur nicht ob ich dass jetzt auch noch angehen möchte :)
Discord: https://discord.gg/AWhsvN3 für Devader: http://devader.space
- Chromanoid
- Moderator
- Beiträge: 4273
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: [Projekt] Cyberlympics
Also wenn Dein Codebase jetzt schon so groß ist, dass Dir Refactoring wirklich in die Quere kommt, könnte das schon Sinn machen. Das hier sieht ganz spannend aus: http://news.turbulenz.com/post/47457658 ... -engine-to (Achtung: das ist 3 Jahre alt, aber trotzdem stößt man in Grenzfällen sicher heute auch noch auf ähnliche Probleme wie die).