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
Zitat
- Wie und wo speichere ich das Monster-Objekt, gegen das der Charakter gerade kämpft? (Session fällt weg, Client fällt weg, in der Datenbank liegen Daten und keine Objekte ... ich stehe auf dem Schlauch ) ... beim Schreiben kommt mir gerade die Idee, dass das Objekt einfach in dem Loop
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 |
var http = require('http'); var test = 1; http.createServer(function(req, res) { res.writeHead(200); res.end(test.toString()); }).listen(3000); setInterval(function() {test++;}, 1000); |
Das klingt schon mal gut, dann bin ich immerhin nicht total auf dem Holzweg, wie's aussieht!Zitat
Ich kenne sails.js jetzt nicht so gut aber grundlegend ist Node genau die richtige Loesung fuer was du machen moechtest.
Zitat
Davon abgesehen: Was benutzt du denn als DB? Wenn du einfach MongoDB nutzt dann speicherst du das "einfach" als Objekt (JSON, was in JS ja nen objekt ist).
Quellcode |
|
1 2 3 4 |
var wolf = new Monster(); wolf.getCurrentHealth(); //100 hero.attack(wolf); wolf.getCurrentHealth(); //90 |
Zitat
Nun zu deiner loop: Hast du immer, automatisch. Quasi.
...
Ja - "Backendseitig" arbeite ich vor allem mit PHP, im speziellen mit Zend. Da aber alle großen Unternehmen gerade so auf cq5 abgehen bleibt Java, .jsf/.jsp und so weiter auch nicht aus.Zitat
Wie auch immer, was machst du als Web-Entwickler? Wenn du von php kommst und jetzt zum ersten mal mit Node arbeitest wirst du feststellen das es da einige krasse unterschiede gibt. So vom Konzept her.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Mangokid« (24.11.2014, 20:08)
Bei einem Projekt von mir habe ich eine ähnliche Situation. Ich habe es getrennt in einen Dienst, der in Echtzeit Daten sammelt/generiert und einen Webserver der diese anzeigt. Dazwischen läuft Redis. Das ganze läuft praktisch so wie hier (ganz unten) beschrieben.
Wenn ein Benutzer sich einloggt, trägt der Webserver die ID bei Redis in eine Queue ein. Der Dienst holt sich die ID und emitted dann die Echtzeitdaten. Diese gehen automatisch über Redis und dem Webserver an den Benutzer.
Erst mal überhaupt nicht! Ich will erst mal einen funktionierenden Prototypen haben. Wenn mein Server dann bei 3 Nutzern in die Knie geht mach ich mir dazu konkret Gedanken!Wenn Du wirklich auf Skalierbarkeit aus bist, versuch den Spielzustand lieber möglichst "lazy" zu evaluieren, d.h. alles wird erst dann berechnet wenn jemand oder etwas nachschaut. Das bedeutet allerdings auch, dass Dein System sich merken muss, wann es ein bestimmtes Objekt spätestens wieder anschauen muss. Im Grunde läuft das auf Complex Event Processing (CEP) und viel Vorausberechnung hinaus, ist also nicht unbedingt trivial zu implementieren. Je simpler Deine Spielsysteme desto besser.
Find ich superErst mal überhaupt nicht! Ich will erst mal einen funktionierenden Prototypen haben.
Also ich will auf jeden Fall, dass der User seinem Charakter "live" beim kämpfen zuschauen kann. Also ich denke einen "Live"-Kampf-Loop muss ich schon basteln.Zitat
Weiterhin ist der Vorteil dass du die eigentlichen Aktion wie einen einzelnen Kampf gar nicht implementieren musst sondern nur eine Funktion die abhängig vom aktuellen Zustand vom Spieler seinen neuen Zustand bestimmt.
Werbeanzeige