Jump to content
Unity Insider Forum

Shalafi

Members
  • Content Count

    30
  • Joined

Community Reputation

0 Neutral

About Shalafi

  • Rank
    Advanced Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hi, ich hab eine eigene Netzwerk-Library gemacht, basierend auf TCP-Client + Listener. Funktioniert auch soweit. Das Ganze ist ein 2D Spiel, ähnlich einem Sidescroller. Der Server muss dann natürlich das Movement überwachen. Ich hab mir das jetzt so gedacht, dass die "Level" in ein Prefab gepackt werden, die bei Client und Server identisch sind und auf Beiden geladen werden. Damit ich nicht für jedes "Level" einen eigenen Server starten muss, wollte ich mehrere Level auf dem Server gleichzeitig laufen lassen, zB mit einem großen Y-Offset (z.B. y += 100000) Ist das erstmal so durchführbar, oder würde ich da auf Probleme stoßen? Gruß
  2. Hi, ok, das klinkt schonmal interessant, Danke. Kann man AssetBundles auch zur Laufzeit erstellen? Dann könnte ich die ja mit einem Server zwischen allen Spielern immer hin und her schicken. Gruß
  3. Hi, danke für die Antwort. Ich hab mich vielleicht falsch ausgedrückt. Ich möchte, dass man als Spieler Änderungen an der Tilemap vornehmen kann, sie Speichern kann und andere Spieler die dann aus einer Datenbank oder so wieder laden können. Die Assets (Sprites, etc.) sind bei allen Spielern gleich, nur die Tilemap muss irgendwie syncronisiert werden. Gruß
  4. Hi, ich möchte eine Tilemap in einer Datenbank bzw. Datei speichern, um sie später wieder laden zu können. Kennt jemand eine gute Seite zu dem Thema oder hat ein paar Stichpunkte, wie ich dabei am Besten vorgehe? Gruß
  5. Shalafi

    BCrypt Login

    Hi, danke für die Antworten. Vielleicht hab ich mich falsch ausgedrückt. Es handelt sich nicht um eine HTTP-Anwendung. Die Kommunikation findet über TcpClient und TcpServer statt. Wie kann ich die Kommunikation am besten schützen, wenn ein Passwort übermittelt wird? Zu meinem BCrypt Problem: Irgendwie lieftert die HashPassword für das gleiche Password immer unterschiedliche Hashes. Deshalb funktioniert der Login nicht. Kann mir jemand sagen was ich falsch mache? Gruß
  6. Shalafi

    BCrypt Login

    Hi, Ich bastle an einem kleinen Login-System auf Basis von TcpClient und TcpServer. Bei der Registrierung wird ein Salt und das mit BCrypt gehashtes Passwort in die Datenbank gespeichert. Meine Encryption-Klasse seiht so aus: public class Encryption { public static string PasswordSalt(int length = 6) { string salt = BCrypt.Net.BCrypt.GenerateSalt(12); salt = salt.Substring(0, length); return salt; } public static string HashPassword(string password, string salt) { try { string hash = BCrypt.Net.BCrypt.HashPassword(password, salt); return hash; } catch (Exception e) { return (string)null; } } public static bool ValidatePassword(string password, string salt, string correcthash) { try { return BCrypt.Net.BCrypt.Verify(password, correcthash); } catch { return false; } } } Das Problem ist, dass die ValidatePassword-Methode immer False zurück gibt. Wenn ich das gleiche Password durch die HashPassword-Methode schickt, kommt immer ein anderer Hash raus. Wo liegt mein Denkfehler? Ist es üblich, dass Passwort erst am Server zu hashen, oder sollte das der Client schon machen? Der kennt ja eigendlich den Salt aus der Datenbank nicht. Kann man die Kommunikation zwischen Client und Server irgendwie per SSL oder so schützen? Brauch ich dafür ein eigenens Zertifikat? Gruß
  7. Hi, ich bastle seit kurzen an einem Multiplayer Spiel (Kein Shooter, eher Aufbau). Die Verbindung und der Datenaustasch zwischen Client und Masterserver funktioniert. Jetzt steh ich vor der Frage, wie ich am Besten die Worldserver entwickle. Muss pro Map-"Instanz" ein eigener Server (in Unity entwickelt) gestartet werden, oder kann ein Server auch mehrere Instanzen einer Map verwalten? Die müssten ja dann alle getrennt von einander behandelt werden. Hat da jemand Tipps für mich? Gruß
  8. Hi, also für die Entwicklung werde ich natürlich erstmal selber nen Server hosten. Ich möchte auch erstmal die Machbarkeit meiner Idee ausprobieren und nen kleinen Prototypen entwickeln. Ich arbeite hauptberuflich auch bei einem großen deutschen ISP, deshalb sollten später auch gemietete Root-Server möglich sein. Aber wie gesagt, erstmal möchte ich ausprobieren, ob das technisch überhaupt machbar ist. Gruß
  9. Hi, also ich gedenke das Serversystem so aufzubauen, dass es einen Masterserver gibt, der die ganzen Login-Prozesse übernimmt und die Spieler auf die gewünschten World-Server weiterleitet. Jeder World-Server (eine Unity-Instanz) ist dann für ein Dorf zuständig. Was genau meinst du mit "mehrere Server in einem Prozess"? Meinst du damit das mehrere Server auf einem Rechner laufen? Oder kann man mit einer Unity-Instanz mehrere Server simulieren? Gruß
  10. Hi, danke für die Antwort. Mir schwebt so eine Art Minecraft vor, wo eine Gruppe von Spielern einen eigenen Bereich hat, auf dem sie bauen können. Dafür wäre dann wohl für jeden Bereich eine Server-Instanz nötig, oder?
  11. Hi, danke für die ausführliche Antwort. Wenn man zB mehrere Dungeons hat, muss man dann für jeden Dungeon einen Server starten, oder kann man auch mehrere Maps mit einem Server arbeiten lassen? Gruß
  12. Hi, ich denke an ein Spiel Richtung Minecraft (Citybuild). Das heißt es gibt verschiedene Zonen, die Spieler bebauen können. Muss ich da für jede Zone eine eigene (World-)Server Instanz starten? Ich überlege noch wie ich die ganze Server-Architektur aufbaue.
  13. Hi, ich möchte ein kleines 3D Multiplayer Spiel erstellen, was mit deinem dedicated Server arbeiten. Ich hab mir einige Guides angesehn, allerdings hab ich eine Sache noch nicht verstanden. Eigendlich habe ich gedacht, dass der Server doch die Daten der Clients immer gegenprüfen muss. Wenn der Client zB eine Positions-Angabe schickt, muss der Server prüfen ob der Spieler da überhaupt sein darf. Sonst konnte doch jemand einfach falsche Positionsangaben verschicken und sich so durch Wände teleportieren oder ähnliches. Dazu muss der Server ja dann auch die Unity-Map kennen. Dazu hab ich bisher noch keine Informationen gefunden. Wie wird sowas in der Praxis umgesetzt? Gruß
  14. Hi, danke für deine Antwort. Da sich die Spitze der Waffe nicht genau in der Bildschirm-Mitte befindet, würde ein Raycast aus der Waffe recht ungenau sein, oder? Dass das Projektil dahin fliegt, wo der Raycast trifft, das hatte ich schon so eingebaut. Das Problem war allerdings, dass das Projektil falsch fliegt, wenn der Raycast nichts trifft. Ich hatte dann die Projektil in Richtung der Kamera-Rotation fliegen lassen. Dann hatte ich allerdings das Problem, dass wenn ich knapp neben ein Objekt schieße, der Raycast also nichts trifft, das Projektil trotzdem das Objekt trifft, da sich die Spitze der Waffe ja nicht in der Mitte der Kamera befindet. Ich suche eine Lösung des Problems. Gruß
  15. Hi, ok danke. Wir geht man dann mit diesem Problem um? Garkein Raycast nutzen und die Bullet-Collision nutzen? Gruß
×
×
  • Create New...