Inventar



  • tomy86 schrieb:

    Ich denke, das liegt daran, das die Daten vom Server kommen und deswegen war eingangs meine Frage, ob man solche Dinge über eine DB laufen lassen sollte?

    Nein, das Spiel läuft auf dem Server. Alles, was bei dir lokal läuft, dient nur der Ein- und Ausgabe. Eine Datenbank würde dir nicht helfen.



  • tomy86 schrieb:

    Ohne gültigen und bezahlten Account läuft da gar nix.

    Weil diese Dinge nicht in dem Programm das auf deinem PC läuft überprüft werden, sondern vom Server.
    Und das Programm das am Server läuft kannst du nicht manipulieren.
    Das ist dann wieder so ein "geschlossenes System".

    tomy86 schrieb:

    Genauso ist es unmöglich, dass man Werte von Waffen usw ändern kann. Da frage ich mich, wie machen die das? Ich denke, das liegt daran, das die Daten vom Server kommen und deswegen war eingangs meine Frage, ob man solche Dinge über eine DB laufen lassen sollte?

    Ich denke dass nicht die Daten über Waffen/etc. "vom Server kommen", sondern dass der Server die Berechnungen selbst macht.
    Ein paar weniger wichtige Dinge werden die Clients selbst berechnen, aber wer jetzt durch einen Angriff wie viel Schaden nimmt, oder wann ein Cooldown abgeschlossen ist...
    Das wird der Server entweder selbst berechnen und dann das fertige Ergebnis an die Clients schicken, oder zumindest die Berechnungen der Clients überprüfen.



  • Wenn du dem allgemeinen Trend folgen willst, sollte deine Frage eigentlich lauten:
    Wie speicher ich Daten, damit man Sie gut ändern (modden) kann?
    Kein schlechter Trend, wie ich finde.



  • Würde sowas dann auch mit C++ auf dem Server gemacht, oder würde da dann PHP einspringen?



  • Jockelx schrieb:

    Wenn du dem allgemeinen Trend folgen willst, sollte deine Frage eigentlich lauten:
    Wie speicher ich Daten, damit man Sie gut ändern (modden) kann?
    Kein schlechter Trend, wie ich finde.

    Nun ja, ich halte nicht wirklich viel von Cheatern. Und somit ist mein größtes bestreben keine Möglichkeit zu bieten um dies zu ermöglichen!



  • Du kannst am Server als Sprache verwenden was du willst.
    Bei einem Spiel wie WoW wird man aber ziemlich sicher nicht PHP verwenden, zumindest nicht für das Spiel selbst. (Bei Accountverwaltung etc. wäre PHP möglich.)
    Und zwar weil PHP dafür einfach zu langsam ist.

    Es gibt aber vermutlich Spiele wo der Serverteil nicht in C++ geschrieben ist, sondern vielleicht in Java oder C#.



  • tomy86 schrieb:

    Nun ja, ich halte nicht wirklich viel von Cheatern. Und somit ist mein größtes bestreben keine Möglichkeit zu bieten um dies zu ermöglichen!

    Multiplayer != Singleplayer.
    Singleplayer soll ein Spieler doch ruhig machen können was er mag.

    Und sogar bei Multiplayer ist doch nur wichtig, dass für alle Teilnehmer die selben Regeln gelten. D.h. wenn jemand irgendwo privat einen gemoddeten XYZ-Server betreiben mag, mit veränderten Regeln (für alle Spieler), dann würde ich das auch nicht cheaten nennen.



  • Wie kann ich den C++ auf einem Server benutzen? Ich habe davon bis jetzt noch nix gehört. XAMPP hat soweit ich weiß kein Modul um C++ einzubinden?
    Würde es dort auf dem Server große Unterschiede geben, was das Kompilieren an geht?
    Genauso Frage ich mich, wie man sowas realisieren könnte? Also nicht im speziellen, sondern eher obs mans Sinnbildlich 2 Programme schriebt und diese dann von einem Übergeordnetem Programm zusammen gesetzt werden oder wie würde der Server mit dem Client arbeiten?



  • Ein "Server" ist nicht zwingend ein Webserver.
    Irgendein Programm, was auf Input von gewissen Ports wartet und dem man so übers Internet Daten schicken kann, ist ein Server.



  • hustbaer schrieb:

    tomy86 schrieb:

    Nun ja, ich halte nicht wirklich viel von Cheatern. Und somit ist mein größtes bestreben keine Möglichkeit zu bieten um dies zu ermöglichen!

    Multiplayer != Singleplayer.
    Singleplayer soll ein Spieler doch ruhig machen können was er mag.

    Und sogar bei Multiplayer ist doch nur wichtig, dass für alle Teilnehmer die selben Regeln gelten. D.h. wenn jemand irgendwo privat einen gemoddeten XYZ-Server betreiben mag, mit veränderten Regeln (für alle Spieler), dann würde ich das auch nicht cheaten nennen.

    Ja das weiß ich. Aber ohne Multi kommt man heute eh zu nix mehr. Und somit ist es unumgänglich sich damit auseinanderzusetzen.



  • Nathan schrieb:

    Ein "Server" ist nicht zwingend ein Webserver.
    Irgendein Programm, was auf Input von gewissen Ports wartet und dem man so übers Internet Daten schicken kann, ist ein Server.

    Ah ok, habe es jetzt als Webserver verstanden, also den Server allgemein. Danke für die Info.
    Gibt5 es da ein zu empfehlendes Programm mit dem man das local Simulieren kann, wie mit XAMPP?



  • tomy86 schrieb:

    Ja das weiß ich. Aber ohne Multi kommt man heute eh zu nix mehr. Und somit ist es unumgänglich sich damit auseinanderzusetzen.

    Doodle Jump hat soweit ich weiss keinen (online) Multiplayer Mode.

    tomy86 schrieb:

    Gibt5 es da ein zu empfehlendes Programm mit dem man das local Simulieren kann, wie mit XAMPP?

    Du brauchst überhaupt nix spezielles.

    Du schreibst ein Programm, das am Server laufen soll.
    Und du schreibst ein Programm das den Client darstellt.

    Und dann lässt du die beiden einfach auf dem selben PC laufen.
    Das einzige was du dazu anpassen musst, ist die IP-Adresse zu der sich der Client verbindet.
    Die kannst du einfach aus einem externen File einlesen, oder auch im Debug-Mode bei Programmstart vom User abfragen.



  • Ich glaube bei Doodle Jump wäre das auch zu viel des guten 😃

    Aso, klar klingt logisch. Hatte jetzt wieder Webserver und PHP im Kopf, was ja nur auf dem Server läuft. Hat sich sehr fest gesetzt bei mir 😕



  • Bei Webservern geht das ebenfalls. Man kann auch Webserver in C++ schreiben. Die müssen einfach nur über Port 80 HTTP Anfragen verstehen und verarbeiten können.
    Ein Server kann jeder Computer sein, auch der, auf den du gerade Forenbeiträge schreibst.



  • @tomy86
    Wieso sollte ein Webserver oder PHP nur auf nem Server laufen?
    Du kannst Apache, IIS oder welchen Webserver du auch immer verwenden willst auch einfach lokal auf deinem PC installieren.
    Sind schliesslich auch ganz normale Programme.

    (OK, IIS ist ne Windowskomponente, und MS hat die IIS Versionen die auf Desktop-Windowsen laufen etwas kastriert - z.B. dass man nur eine einzige Webseite laufen lassen kann. Aber grundsätzlich geht es und reicht es zum Testen.)



  • Aber zusammenfassend kann man sagen, das nur in Verbindung mit einem Server, der alles interne regelt also Besitz, Schadensberechnungen usw und der Client überwiegend Ausgabe Funktion hat die bestmögliche Sicherheit zu gewährleisten ist?
    Also vergleichsweise wie HTML/JavaScript und PHP vom Prinzip her?



  • hustbaer schrieb:

    @tomy86
    Wieso sollte ein Webserver oder PHP nur auf nem Server laufen?
    Du kannst Apache, IIS oder welchen Webserver du auch immer verwenden willst auch einfach lokal auf deinem PC installieren.
    Sind schliesslich auch ganz normale Programme.

    (OK, IIS ist ne Windowskomponente, und MS hat die IIS Versionen die auf Desktop-Windowsen laufen etwas kastriert - z.B. dass man nur eine einzige Webseite laufen lassen kann. Aber grundsätzlich geht es und reicht es zum Testen.)

    Also soweit ich weiß, kann PHP nur auf einem Server laufen? Bzw auf einer Software die ein Server darstellt? Deswegen benötigt man ja für die Programmierung mit PHP XAMPP o.ä.



  • Also...
    * Du brauchst ein geschlossenes System, also eines das du gegen Modifikationen schützen kannst (Konsole, Dongle der signierten & verschlüsselten Code ausführen kann, Server)
    * Die relevanten Berechnungen müssen auf dem geschlossenes System durchgeführt und auch dort abgespeichert bzw. von dort verteilt werden

    Dann kann das ganze sicher sein.

    Das geschlossene System kann dein Server sein.
    Und wenn die dort laufenden Berechnungen im Prinzip die gesamte Spielmachanik darstellen, und die Ergebnisse auch wieder dort gespeichert bzw. von dort an die Mitspieler verteilt werden...
    Dann kann man das ganze als sicher ansehen.

    WENN das geschlossene System wirklich geschlossen ist. Wenn das "geschlossene System" natürlich voll von Sicherheitslöchern ist, dann ist es natürlich nicht wirklich geschlossen, und damit wird das ganze System wieder manipulierbar.



  • hustbaer schrieb:

    WENN das geschlossene System wirklich geschlossen ist. Wenn das "geschlossene System" natürlich voll von Sicherheitslöchern ist, dann ist es natürlich nicht wirklich geschlossen, und damit wird das ganze System wieder manipulierbar.

    Ja das ist klar. Dinge die vom Client an den Server geschickt werden, wie z.B. Spielerposition usw. müssen Serverseitig auf Richtigkeit geprüft usw werden.

    Jo, dann hab ich ja jetzt einiges, wo ich mich reinlesen darf 😃
    Ich danke herzlichst für die hilfreichen Informationen 🙂



  • tomy86 schrieb:

    Also soweit ich weiß, kann PHP nur auf einem Server laufen?

    PHP gibt's als ganz normales Commandline-Programm. Kann man verwenden wie Batchfiles bzw. Shellskripte.

    php.exe MeinSkript.php Argument1 Argument2 Argument3
    

    ,
    und schon läuft das Ding.

    Etwas genauer: PHP ist einfach nur eine Sprache, genau so wie C, C++, C#, Java, Visual Basic etc.
    Damit kann man ganz normale Programme schreiben. Und genau so wie man C# oder Visual Basic .NET z.B. mit ASP .NET verwenden kann um recht einfach dynamische Webseiten zu entwickeln, kann man halt PHP auch mit Apache o.ä. verwenden um dynamische Webseiten zu entwickeln.

    tomy86 schrieb:

    Bzw auf einer Software die ein Server darstellt?

    Damit kommen wir der Sache schon näher, denn...

    tomy86 schrieb:

    Deswegen benötigt man ja für die Programmierung mit PHP XAMPP o.ä.

    ...was du meinst wenn du PHP schreibst ist nicht PHP, sondern PHP welches über CGI oder als Plugin bei Apache (bzw. einem anderen Webserver) eingebunden wird.
    Wenn du das PHP Programm über einen Browser ansprechen willst, dann brauchst du natürlich irgendwo ein HTTP Server Programm.
    (So ein HTTP Server Programm könnte man natürlich auch direkt in PHP schreiben, aber das tut man einfach nicht, man verwendet dafür fertige Server wie eben z.B. Apache.)


Anmelden zum Antworten