Multiplayer...

Algorithmen, Sprachunabhängige Diskussionen zu Konzepten, Programmiersprachen-Design
Benutzeravatar
Jside
Beiträge: 377
Registriert: Di Nov 11, 2008 12:56 am

Re: Multiplayer...

Beitrag von Jside » Di Mär 24, 2009 2:43 pm

Syntov hat geschrieben:So noch eine kleine Anmerkung zur sicherheit:
Jside hat geschrieben:Benutztername und MD5 Hash des Passwortes zu Server senden (Port 5000)
->Wenn Server return -1 Registermenu/Loginmenu einblenden
Das mit dem MD5 hash senden ist eine schlechte idee.
du denkst wenn jemand mitsnifft kann dieser das PW nicht auslesen. aber er bracuht ja das PW gar nicht. Er muss nur den MD5 hash senden.
Falls jemand durch eine Sicherheitslücke die Membertabelle aus der Datenbank downloaden kann hat er alle MD5 hashes und kann sich als einen beliebigen Member ausgeben.
Lösungsvorschlag:
-Das PW wird eingegeben
-PW wird über eine Verschlüsselte Verbindung übertragen
-PW wird in einen sha256 hash umgewandelt und verglichen.
Upps, das hab ich nicht bedacht, ich hatte erst den Gedanken, jedem Clienten eine Digitale Signatur zu verpassen, aber das wäre wohl schlimmer als DRM... :mrgreen: Da muss halt ne SSL Connection her...

Also Zwischenstatus(ungefähr 5min Arbeit... Texturmanager hab ich rausgeworfen...):
- Grafik: OpenGL Init, SDL Init ...weiter nix...
- Netztwerk: SDL_netINIT ...weiter nix...
- Dateiparser für Scenen: bin ich gerade dran, Übern Header wird die Anzahl der Ressourcen(Musik, Sounds, Modelle etc.) eingelesen, sodass der Parser weiß, wielange die Datenliste der entsprechenden Sektion ist, danach ließt dieser diese ein(Dateilisten(-und danach die Coordinaten etc, das Implentiere ich, sobald der Anfang schonmal funktioniert)), und überprüft, ob die Ressourcen da sind, wenn nicht, werden diese später über den Sever nachgeladen, zudem wird später vom Client eine Checksumme der Szenendateien zum Server gesendet, stimmen diese nicht überein, gab es eine Änderung, und der Client lädt sich die neuen Szenendateien herunter, so hab ich schonmal Ziel 1 Erreicht, ich kann die Szenen vergrößern/verändern, ohne das die Spieler einen Finger rühren müssen, um diese zu Installieren. Die alten Szenen werden trotzdem auf dem Server bleiben, bis sich alle Clients ausgeloggt haben, und sich neu einloggen, wobei obrig genanntes ausgeführt wird. Spielstände bleiben immer Cross-Kompatibel, da es sich nur an bestimmten Stellen abspeichern lässt....

Und nebenbei hab ich hier noch Interessante OpenGL Tutorials gefunden...

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: Multiplayer...

Beitrag von Kerli » Di Mär 24, 2009 4:38 pm

Jside hat geschrieben:Dateiparser für Scenen
Versuch nach Möglichkeit deinen Parser bzw. dein Dateiformat nicht auf einen bestimmten Zweck hin zu schreiben, sondern halte ihn möglichst allgemein. Du wirst immer wieder Sachen einlesen müssen, und dann bist du nur mehr am Schreiben von Parsern.
Du kannst auch ruhig auf bereits vorhandene Formate oder Parser zurückgreifen. Sie sollten nur möglichst menschenlesbar sein, da du so sehr leicht Werte verändern kannst. Ich hab für meine Engine zum Beispiel einen eigenen XML-Parser geschrieben.
Das nur so als ein Tipp am Rande.
Jside hat geschrieben:Und nebenbei hab ich hier noch Interessante OpenGL Tutorials gefunden...
Zufälligerweise im Wiki? :P

Falls nicht, dort sind auch ein paar gute Links...
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Benutzeravatar
Jside
Beiträge: 377
Registriert: Di Nov 11, 2008 12:56 am

Re: Multiplayer...

Beitrag von Jside » Di Mär 24, 2009 10:31 pm

Wohoo! Der Parser funktioniert sogar!! Das was auf anhieb funktioniert ist bei mir reiner Zufall ;) Meistens vertippe ich mich...(dafür Tippe ich aber auch sehr schnell) Besonders, da ich gerade mal 10min dran gearbeitet habe, dafür hab ich jetzt mal ordentlich in sachen Game Engine Development recherschiert..
Gnome Terminal hat geschrieben:jan@linux-yqa4:~/Desktop/Game> cc parser.c
jan@linux-yqa4:~/Desktop/Game> ./a.out
Scene is Ready to Parse...
Scene "Hallo" Loaded.
Author: Jan
Models: 1
Textures: 2
Sounds: 7
Music: 1
Modell[0]: share/model.mdl
jan@linux-yqa4:~/Desktop/Game>
Die Szenendatei braucht für obrige Infos 529 Bytes, es sind zwei (char *)[255] 's drin, die ich aber noch verkleinere, Ich nehme nicht an, das der Szenenname und der Author jeweils 255 Zeichen brauchen, geht auch kleiner....
Kerli hat geschrieben:Versuch nach Möglichkeit deinen Parser bzw. dein Dateiformat nicht auf einen bestimmten Zweck hin zu schreiben, sondern halte ihn möglichst allgemein. Du wirst immer wieder Sachen einlesen müssen, und dann bist du nur mehr am Schreiben von Parsern.
Du kannst auch ruhig auf bereits vorhandene Formate oder Parser zurückgreifen. Sie sollten nur möglichst menschenlesbar sein, da du so sehr leicht Werte verändern kannst. Ich hab für meine Engine zum Beispiel einen eigenen XML-Parser geschrieben.
Das nur so als ein Tipp am Rande.
Ja, nen XML Parser habe ich auch im Hinterkopf, ist viel bequemer, z.b. bei Bones Animationen, ohne das man erst wieder die Szenendatei neu Generieren muss, ich werde in die Engine ein Modelsystem Implentieren, da werde ich dann einen XML Parser(oder sowas ähnliches) als Model einbauen, der Alternativ zum Szenenparser benutzt werden kann...

Dafür, das der Parser erst drei Funktionen hat, ist aber schon ne Menge damit möglich ;)



P.s. *Schleichwerbung* Meine Website ist Komplett geupdatet und hat ein neues Design...

Antworten