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

111

22.04.2016, 13:24

Danke für den Input Jar. ECS sieht nach tiefgreifenderen Änderungen aus als ich vorhabe. Ich will nur meine Einheiten rekonstruieren, nicht das komplette System.

Meine Klassen sahen so aus:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
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;
}


jetzt stelle ich auf sowas um:

Quellcode

1
2
3
4
5
6
7
8
9
10
function _ClassA_(){
this.data = {};
}
_ClassA_.prototype.funcA = function(){...}

function _ClassB_(){
this.a = new _ClassA_();
this.data = this.a.data;
}
_ClassB_.prototype.funcB = function(){...}


Ich bin nicht stolz darauf :P. Inheritance ist lahm in JS drum dieses neue Krüppelkonstrukt.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »marcgfx« (22.04.2016, 19:12)


112

22.04.2016, 19:49


(Link)

Langsam komme ich wieder auf den alten Stand... stürzt dauernd ab, aber man sieht zumindest wieder was :)

113

23.04.2016, 00:57

Zitat von »marcgfx«

JavaScript ist wohl auch die besch**** Sprache für so ein komplettes Refactoring.

Da könnte sich doch ein Blick auf TypeScript lohnen (falls du das noch nicht getan hast): Klassen, Interfaces, Enums, Zugriffsmodifikatoren, Type Annotations, Module, Namespaces...


Zitat von »marcgfx«

jetzt stelle ich auf sowas um:
...
Ich bin nicht stolz darauf :P. Inheritance ist lahm in JS drum dieses neue Krüppelkonstrukt.

Wie wäre es denn stattdessen hiermit?

Javascript-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
function _ClassA_(){
    this.data = {};
}

_ClassA_.prototype.funcA = function(){...};

function _ClassB_(){
    _ClassA_.call(this);
}

_ClassB_.prototype = Object.create(_ClassA_.prototype);
_ClassB_.prototype.constructor = _ClassB_;
_ClassB_.prototype.funcB = function(){...};

Falls dir der Lookup von Methoden in der Prototypenkette zu langsam ist, könntest du noch zusätzlich die Funktionen von _ClassA_.prototype nach _ClassB_.prototype rüberkopieren. Das bringt zwar auch Nachteile mit sich, aber womöglich fallen die für dich nicht ins Gewicht.

114

23.04.2016, 12:24

Danke für den Vorschlag Endgegner, wusste gar nicht, dass man das so machen kann. Vermutlich macht es Sinn nochmal umzustellen, auch wenn ich gar keine Lust darauf habe :S

TypeScript wurde mir schon von anderer Seite her vorgeschlagen. Ich müsste es mal ausprobieren, aber ich glaube es wäre im Moment eine zu grosse Anpassung. Ich will vor allem die Probleme lösen und das Spiel endlich abschliessen :D.

115

24.04.2016, 17:43

Das Spiel scheint jetzt wieder so zu laufen wie davor. Ich hoffe mit etwas weniger Garbage. Erste Tests scheinen zumindest darauf hinzuweisen, dass es etwas gebracht hat. Wirklich sicher bin ich mir nicht. Nochmals danke @Endgegner, ich habs schlussendlich so gemacht. Ob es jetzt die schnellste Lösung ist, weiss ich nicht, aber ich musste dank deinem Hinweis vieles nicht anpassen (nur Sachen die ich bereits angepasst hatte, rückgängig machen).

Seitdem ich die Texte/Dialoge alle rausgeschmissen habe, fehlt irgendwie was. Wenn jemand eine gute Alternative hat, immer her damit :)

Thandor

Frischling

Beiträge: 84

Wohnort: Berlin

Beruf: Softwareentwickler

  • Private Nachricht senden

116

24.04.2016, 23:40

Hihihihihi...

man kann dem Ufo welches einen abholen soll davonlaufen.

Deine optimierungen scheinen gut gelungen, lädt viel schneller und läuft auch auf Fierefox ganz ordentlich.
Ich mag pewn.de.

117

25.04.2016, 01:30

Danke für's ausprobieren Thandor. Ich möchte das der Spieler immer Kontrolle hat, statische Cut-Scenes will ich vermeiden. Mal sehen ob das klappt... Story bereitet mir dermassen Kopfzerbrechen.

Gut zu hören, dass es auch in Firefox halbwegs läuft :)

118

26.04.2016, 23:56

Mein Kopf dreht sich mal wieder im Kreis. Ich weiss einfach nicht genau was ich mit dem Spiel machen soll. Soll ich es auf Steam releasen? Soll ich es online mit Werbung vollpflastern? Stelle ich 5 Level online, und biete die Vollversion nur auf Steam oder einer anderen Plattform an? Gibt es noch andere Ideen? Was ist es überhaupt Wert? Braucht es eine Story, oder geht es ganz gut ohne?

Heute war mal wieder ein völlig unlustiger Tag. Hilft auch nicht das im Moment die Hausfassade renoviert wird. Ab 7:00 wird gebohrt und gehämmert...

Als erstes bin ich einem Bug nachgegangen, der sporadisch auftritt. Die Spielfigur hüpft plötzlich von einer Position zur nächsten, teilweise mehrere 100 Pixel. Ich glaube ihn gefunden zu haben, aber wirklich sicher bin ich mir nicht. Um Kollisionen von schnell bewegten Objekten zu berechnen, berechne ich den Abstand von zwei Segmenten bestehend aus aktueller und letzter Position. Wenn eine Segment-Kollision erkannt wird, kommt sie in eine Liste rein. ich habs irgendwie geschafft die Liste bei einer falschen Bedingung zu füllen. Dennoch hats irgendwie geklappt, vermutlich weil die Objekte später doch in die Liste kamen. Allerdings wurde die Kollision erst einige Frames später tatsächlich ausgelöst. Manchmal viel später. Durch die verzögerte Kollison konnte es sein, dass der Spieler auf eine frühere Position zurückgesetzt wurde.

Da ich immer noch Steam im Kopf habe, habe ich mich auch mal wieder um den NW.js Wrapper gekümmert. Hat am Anfang wie zu erwarten überhaupt nichts mehr funktioniert, da ich von v0.12 auf v0.14 hoch bin. Irgendwann hab ichs endlich zum aufstarten gebracht, aber vieles spinnt völlig. Wird auch wieder einiges an Arbeit kosten. Am meisten nervt mich, dass ich das GUI noch einmal überarbeiten muss. Ich habe mir ein System gebaut, das sowohl mit Maus, Keyboard und Gamepad funktioniert. Ich speichere dazu gewisse Informationen in den DOM-Elementen. Bei NW.js geht das aber anscheinend nicht... die Zusatz-Infos sind weg. Ich muss sie also anders abspeichern und momentan gibts nur Bugs.

Die letzten 90% sind echt zum kotzen :)

119

05.05.2016, 01:40

Habe inzwischen von vielen netten Menschen verdammt viel Feedback bekommen, teilweise sehr ernüchternd, aber dennoch sehr wertvoll. Vieles ging um meine Erwartungen und was ich mit dem Spiel erreichen möchte, ich werde das jetzt hier aber nicht noch mal breittreten.

Ein anderer Punkt war, dass sich das Spiel/die Waffen unbefriedigend anfühlen. Ein Punkt der von Schrompf bereits schon vor einiger Zeit gemacht wurde. Nur wusste ich nicht was ich dagegen machen soll. Bei TIGsource habe ich Feedback von einem Tester bekommen, der mir zu 3 Videos geraten hat. Die Videos waren ganz nett, haben aber vieles wiederholt was ich bereits wusste. Aber wissen und umsetzen ist nicht immer das selbe. In einem zweiten Post wurde mir das Spiel "Nuclear Throne" empfohlen. Ich habe mir davon einige let's play reingezogen. Jedenfalls ist mir glaube ich der Knopf etwas aufgegangen.

Ich habe an den Waffen gearbeitet, bislang aber erst an weiteren Upgrades. An der Optik habe ich noch nichts verändert. Es gibt jetzt 'Bounce' (prallt ab von Wänden), 'Homing' (Zielsuchend), 'Power' (fetter, stärker), 'Multi' (+2 Schuss), 'Tree' (Schuss teilt sich nach einer Zeit), 'Exploding' (Beim Einschlag werden weitere Schüsse generiert die zufällig wegfliegen).

Wer mit den Explosionen/Waffen rumspielen möchte:
http://data.cyberlympics.com/html/game.h…am=AntiMinerT_1

Hier sieht man eine Kombination aus Tree/Multi mit mehrfacher Ausbaustufe. Völlig unspielbar, aber so sieht es aus.

(Link)


Ebenso habe ich an den Explosionen gearbeitet, ich denke sie kommen jetzt bombastischer daher :)

(Link)


Beim Beginn einer neuen Angriffswelle gibts nun eine kleine Anzeige

(Link)

120

05.05.2016, 10:57


Wer mit den Explosionen/Waffen rumspielen möchte:
http://data.cyberlympics.com/html/game.h…am=AntiMinerT_1


Habe es gerade ausprobiert.
Wenn ich das richtig in Erinnerung habe sollte man die schwarzen Viecher die sich zur Mitte hin durchfressen aufhalten. Dumm nur das diese unverwundbar erscheinen. Ich schieße drauf und die Projektile verschwinden dort aber die schwarzen Viecher reagieren nicht drauf. Ich vermute das die Projektile trotzdem eine Wirkung hatten denn die die ich beschossen habe haben sich irgendwann später aufgelöst.

Werbeanzeige