Jump to content
Unity Insider Forum

MaZy

Members
  • Content count

    521
  • Joined

  • Last visited

  • Days Won

    13

MaZy last won the day on September 18 2018

MaZy had the most liked content!

Community Reputation

153 Excellent

About MaZy

  • Rank
    Advanced Member
  • Birthday 02/20/1988

Profile Information

  • Gender
    Male
  • Location
    Hannover

Recent Profile Visitors

9,304 profile views
  1. Profiler anschmeißen und anschauen warum dein FPS runter geht.
  2. MaZy

    Dedicated Server - Unity

    So kann man das machen Ich meinte damit beides. Ein Prozess ist ein Programm z.B. Unity und da drinne halt mehrere Server starten. Ob es mit UNet HLAPI geht weiß ich gerade nicht, da der NetworkManager singleton hat. Mit Server die nur minimal aufgebaut sind z.B. nur Konsoleserver oder so, da geht das auf jeden Fall. Wie willst du das mit Dorf machen? Startest du selber den Server?
  3. MaZy

    Dedicated Server - Unity

    Wenn man die Bereiche als Instanzen macht dann ja. Zur Klarstellung: Eine Instanz im Spiel bedeutet, dass es ein unabhängiger Bereich für die Spieler sind und sind abgekoppelt mit der anderen Welt. Sie bekommen also nichts mit und anders herum auch nicht. Serverinstanzen können auch einfach nur mehrere Server in einem Prozess bedeuten. Also man kann das schnell verwechseln (zu mindest ich).
  4. MaZy

    Dedicated Server - Unity

    Da musst du leider ausführlicher sein. Sagen wir mal in der Scene die normale Map ist 10x10 km groß und ein Dungeon 2x2 km. Dann kann man diesen Dungeon ganz wo anders packen z.B. ganz weit links. Die Spieler betreten dann einfach da rein. Mit UNet NetworkProximityChecker geht das auch gut. Den Dungeon kann man ja als Prefab machen und jedes mal neu Laden oder einen Reset programmieren (also die Sachen spawnen einfach erneut). Soll aber der gleichen Dungeon mehrmals betretbar sein und eigene Instanzen haben, dann kann man mit mehreren Server arbeiten. Da gibt es halt viele Möglichkeiten. Das lässt sich nicht so einfach beantworten.
  5. MaZy

    Schöner oder kurzer Code?

    Folgendes geht aber: if (X == Y) { print("wahr") print("wirklich wahr") } else print("falsch") Zum Thread: Wenn es tatsächlich nur im print geht, dann würde ich Saschas Methode benutzen. Allerdings beim Debuggen erweitert man sein Code und daher ist die erste Methode mit den geschweiften Klammern am Besten dafür geeignet (sonst muss ich immer umschreiben, daher mache ich eigentlich gleich mit geschweiften Klammern).
  6. MaZy

    Dedicated Server - Unity

    Hallo, es ist normal, dass man eine Idee im Kopf hat und dies auch umsetzen möchte, aber gleich etwas kompliziertes zu machen würde ich nicht empfehlen bzw. lieber einen Profi da ranlassen. Nicht umsonst brauchen Spiele wie GTA 5 z.B. 5 Jahre (und dort ist ja so mit Instanzen) und dort ist ein großes Team beteiligt. Zu der ersten Post: Es gibt verschieden Varianten, wie man einen Server und Client logisch aufbauen kann. Du muss erst mal die Frage beantworten, wie du es gern hättest. Z.B. Gegen Cheater vorgehen Minimale Breitband (also ohne Network Lags)? Will man mehr Spieler haben dafür aber komplexere System (wie das mit Instanzen) Oder weniger Spieler ohne Performance Probleme. usw. Je nachdem kann man vieles Serverseitig programmieren oder clientseitig. Minecraft hatte auch vieles früher Clientseitig. Z.B. Inventar. Doch schnell merkte man, dass es echt nervig ist, denn viele duplizierten seine Items. GTA 5 ist z.B. Clientseitig, deswegen gibt es leider auch viele Cheater, dafür aber merkt man, dass es lagfrei läuft, außer der Spieler laggt.. dann bewegt sich das Auto wirklich komisch. Wenn du jetzt vom Server aus validieren willst, dann siehst das so aus. Client sendet an Server "Hey ich drücke jetzt W um vorwärts zu bewegen", der Server antwortet "Hey ok du bewegst dich nach vorn und ich sende an alle weiter, dass du das tust". Hier kann man nun überlegen, ob man erst auf Server Antwort wartet oder bereits schon nach vorn bewegt. Ich hab beide varianten mal ausprobiert und habe aber eigene Logik aufgebaut und nicht, die im Internet vorgeschlagen sind (welches aber eig besser ist), aber lief ganz ok. Bei sehr hohen Ping aber war es echt nicht mehr schön. Nun kommt der Teil mit allgemein Sachen validieren. Spieler möchte eine Tür auf machen - Server: Du darfst es nicht. Kein Erlaubnis. Das ist wie die Vorwärtsbewegungssache nur, dass hier der Server überprüft, ob der Spieler das überhaupt darf. Das durch Wände teleportieren z.B. das geht alles in World of Warcraft. Ich meine in Minecraft auch. Kann mich erinnern, dass manche Fly-Hacks hatten oder sowas. Aber alles andere was Inventar oder so angeht, geht nicht vom Client aus. Ja Unity muss dazu die Map kennen. Was man machen kann ist, dass man Unity Server wie ein Spiel startet und dann als Server startet (Fast so als würde man selbst ein Spiel hosten). Das kann man als Dedicated Server benutzen. Ich glaube mit UNet kann man keine Zonen erstellen, aber ich meine, wenn man den Network ProximityChecker umschreibt, kann man sowas in der art programmieren: https://docs.unity3d.com/Manual/class-NetworkProximityChecker.html Das ist nämlich dafür da, wer wo wen sehen kann und Informationen bekommen usw. Ansonsten muss man mit low level api anfangen.
  7. MaZy

    Problem mit C#/PHP File Upload

    Warum verwendest du diese Funktion, obwohl du gleich WaitForSeconds schreiben kannst? Also statt yield return StartCoroutine(Wait(6.0f)); // Außerdem sollte nicht einfach eine Wait(6.0f) klappen? so yield return new WaitForSeconds(6.0f); Zweitens benutzt du eine veraltete Version der WWW / WWWPost (je nach unity version unterschiedlich). Schaue mal hier Drittens (nur so am Rande), laut PHP Code ist deine PHP Version veraltet (oder man verwendet falsche Funktion). sowas wie mysql_query ist sehr alt und wird eigentlich gar nicht mehr verwendet, aber das sollte mit der eigentlichen Fehler nichts zu tun haben. und nun Header. 429 Too Many Requests sagt, dass du zu viele Dinge hintereinander Requesten tust. Das muss jetzt nicht unbedingt an dir liegen, sondern kann an dem Server liegen. Vllt mag es nicht in 10 Minuten mehrere Requests bekommen. Darum gehen auch deine Files nur ab und zu durch. Der Server kann dich daher erst mal geblockt haben und dann geht das erst mal nicht für eine gewisse Zeit. Da muss man nach den Servereinstellungen (wahrscheinlich PHP Einstellungen) anschauen. Versuchst du 55 Dateien auf einmal hochzuladen oder nacheinander?
  8. MaZy

    C# und PHP Upload

    Weil es mich selbst interessiert hab ich mir das mal angeguckt. WWWPost ist veraltet. Man soll UnityWebRequest benutzen. So sieht mein code aus: void Start() { StartCoroutine(Upload()); } IEnumerator Upload() { var url = @"URL_TO_UPLOAD"; var fileName = "myfile.txt"; var fileContent = System.IO.File.ReadAllBytes(@"assets\myfile.txt"); var fieldName = "userfile"; WWWForm form = new WWWForm(); form.AddBinaryData(fieldName, fileContent, fileName); UnityWebRequest www = UnityWebRequest.Post(url, form); yield return www.SendWebRequest(); if(www.isNetworkError || www.isHttpError) { Debug.Log(www.error); } else { Debug.Log("Form upload complete!"); Debug.Log(www.downloadHandler.text); } } Etwas den code anpassen und den fieldName zu deinem ändern dann sollte es funktionieren.
  9. MaZy

    C# und PHP Upload

    Also ich hab mit PHP (nichts mit unity) sowas gemacht und da hab ich das hier stehen(gekürzt): <form enctype="multipart/form-data" method="post"> hast ja application/octet-stream ja stehen. Weiß nicht ob da unterschied macht. 2. Du solltest mit isset usw die Variable erst mal checken. Ein Beispiel von mir: <?php if (isset($_FILES) and isset($_FILES['userfile']) ) { if(UploadIsOk($_FILES['userfile']['error'])) { $filename = pathinfo($_FILES['userfile']['name'], PATHINFO_FILENAME); $extension = pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION); move_uploaded_file(.... usw. Ansonsten var_dump ist wirklich wichtig und eine gute Idee das anzuwenden.
  10. MaZy

    Spieleranzahl auf Server

    Weil Network.Connections nicht zu Unet gehört. Man kriegt das mit NetworkServer.connections raus. Wenn du NetworkManager benutzen tust und wissen willst wie viele Spieler(objekte) gespawnt sind, dann: NetworkManager.numPlayers Welche Unity version benutzt du? Weil UNet ist ab 2018.3 veraltet.
  11. Würde mal zu Mirror wechseln, was ja in Discord auch genannt wurde, da UNet bald veraltet ist und nicht weiter entwickelt wird: https://forum.unity.com/threads/mirror-networking-for-unity-unet-replacement.425437/ Zu logs.. such einfach mal Console script oder so für Unity. Da gibt es so fertig dinger wo man die console anzeigen lassen kann im Spiel und dann siehst du was passiert ist. Ansonsten adb.exe funktionen googlen und damit vom handy die outputs zu applications sehen kannst. Man kann da unity rausfiltern, damit man es angenehmer hat. Große Spiele wie World of Warcraft sollen angeblich TCP benutzen. Auch angeblich Minecraft soll TCP benutzen. UDP hat ja mit heuten Technologie die Vorteile wie bei TCP eigentlich, weil ja sowas wie reliable gibt, dennoch wird TCP immer noch ab und zu gerne benutzt.
  12. MaZy

    Controller einrichten?

    Also wie Sascha das schon sagte, sieht es so aus, ob im Code Input.GetAxis("horizontal") verwendet wird. Kannst ja mal alles durchgehen bzw. nochmal im Code gucken, ob man versehentlich selbst was rein geschrieben hat.
  13. MaZy

    Editor

    Wenn ich richtig verstanden habe, dass mehrere Scripte gleichzeitig minimapTypeChoice und gleichen Wert haben sollen, dann kannst du static variable benutzen. Weil du sagtest ja, dass es vergessen wird. Bei static sollte das nicht passieren
  14. MaZy

    Von A - Z zum eigenen Spiel

    Ja, wenn du nicht vorhast Geld zu verdienen. Damit meine ich nicht mit Gedanken so denken, aber trotzdem Werbung einblenden. Sobald die Absichten mit Geld verdienen offensichtlich sind (damit mein ich Werbung einblenden und trotzdem den Gedanken haben "wird eh nix"), musst du Gewerbe anmelden. Du kannst dir bei Finanzamt so ein Heftchen geben lassen, wo einige Seiten sind. Da wird dir bereits vieles erklärt. Man braucht keine Angst zu haben vor einer Gewerbeanmeldung. Als Kleinunternehmer musst du fast nicht mal Buchführen (zu mir meinten die, dass ich damals aber T-Bilanz aufstellen musste - einfach nur Ausgaben - Einnahmen = Gewinn. Das wars. Damals hab ich so Handel über Ebay betrieben ). Impressum muss da angegeben werden, wo etwas Angeboten wird. In dem Fall, wenn es um eine Downloadseite geht wie Play Store, dann wird auf deiner Seite Impressum angegeben. Google haftet dafür nicht nebenbei, sondern du. In der App, ob da muss, weiß ich nicht. Kann das da nicht so rauslesen. Das Problem ist, dass z.B. meine Apps auch auf einigen anderen Seiten verfügbar gemacht wird, ohne dass ich das eigentlich beauftragt habe. Heißt Drittanbieter-App-Stores haben vllt. meine App, aber eventuell ohne mein Impressum. Wenn du nichts speicherst nein. Kannst aber trotzdem machen und zumindest erwähnen, dass du nichts speicherst. Bedenke: Unity Analytics, Ads usw. benutzen die Nutzenuserdaten und speichern sie. Dann musst du auf jeden Fall zu mindest deren Datenschutzerklärung als Verweis in deinen vermerken. Zum Beispiel Google Ads, Unity Ads, Unity Analytics. Mittlerweile wird auch standardmäßig Datenschutzerklärung in Apps mit eingebaut als Link zur einer Seite, dass man es akzeptieren soll, wenn man weiter machen möchte. Allerdings einmalig und bei Veränderungen als Hinweis nochmal. (Wobei bei dir nochmal 3 steht) Der Unterschied wäre nur Gewerbe, dass man es nicht braucht, wenn man keine Einnahmen erzielt. Alles andere muss beachtet werden. Sowas packt man in seine AGB rein und lässt Leute akzeptieren, dass DU keine Haftung übernimmst. Das ist sehr wichtig. Denn man könnte einfach das Spiel oder das Programm modifizieren und behaupten, dass es so war. Ist sehr schwer nachvollziehbar (aber logisch. Wenn er nur selbst hat und sonst niemand, dann ist klar, dass es nicht an den Entwickler liegt). Erinnere dich an die Katze in der Mikrowelle. Die Kläger haben gegen die Mikrowellen-Hersteller gewonnen, weil sie nicht angegeben haben "Keine Katze in der Mikrowelle". Mittlerweile tun sie das. Aber grob genannt Keine lebendigen Tiere in die Mikrowelle. 🤣
  15. MaZy

    Datenbankabfrage mit Php

    PDO ist gewöhnungsbedürftig, aber übelst gut. Kannst aber auch mysqli benutzen: http://php.net/manual/de/mysqli.quickstart.connections.php
×