Jump to content
Unity Insider Forum

MaZy

Members
  • Content count

    504
  • Joined

  • Last visited

  • Days Won

    13

MaZy last won the day on September 18

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

7,525 profile views
  1. Meshs haben Faces die nur in eine Richtung gucken. Das heißt, wenn es eine "Platte" ist (in Unity mein ich Plate), dann hat man nur in eine Richtung ein Face. Wenn man gegenübersteht, dann sieht man auch diesen Mesh. In mehrere Richtung guckt z.b. die Box in Unity3D. Hat ja alle Seiten ein Face. Bei dem Haus oder was das sein soll sieht zu mindest im Video, dass es "innen" nicht gibt. Musst mal schauen, ob du in Unity ohne in playmode zu sein, ob man innen Räume sehen kann.
  2. MaZy

    Unreachable code detected

    Compiler führt es immer perfekt aus nur wie wir vorgehen kann falsch sein // Ein Beispiel was ähnlich ist, aber wo compiler nicht meckert. // Beispiel: OnHit(40); // Problem Beispiel: void OnHit(float damage) { if(damage <= 50) { ReportLowDamageHit(); return; } // Wird bis hier niemals ausführen, obwohl die die Funktion "perfekt" ist und tut was es tun soll. // denn damage wenn es unter 50 ist.. wird oben immer abgebrochen. Naja aber ReportNoDamageHit() wird aber nie ausgeführt. // Obwohl damage 70 sein könnte.. dennoch ist es hier unten unbrauchbar.. wird nie reingehen. // Compiler wird aber nicht meckern, da ja denkt.. mit über 50 wirst du dahinten ankommen. Nur nie in den If rein. if(damage <= 0) { ReportNoDamageHit(); return; } } //Lösung Beispiel 1 void OnHit(float damage) { // Wird nicht ausgeführt, da damage = 40 is aber wäre es 0 würde es funktionieren. if(damage <= 0) { ReportNoDamageHit(); return; } if(damage < 50) { ReportLowDamage(); return; } } Beispiel 2 void OnHit(float damage) { // Sieht wie das Problem Beispiel an.. nur dass wir hier sagen, dass es zwischen 0 und 50 (1 bis 49) gecheckt werden soll. if(damage > 0 && damage < 50) { ReportLowDamageHit(); return; } if(damage <= 0) { ReportNoDamageHit(); return; } }
  3. Gute Frage nächste Frage . Wie es aussieht findet der Editor die Komponenten dazu nicht Hast du zufällig auch mit Unity Hub ausprobiert? Würde ich sogar empfehlen es zu benutzen. Ansonsten in Unity Ordner mal überprüfen ob Linux Ordner existiert: UNITY_ORDNER\Editor\Data\PlaybackEngines\ -> LinuxStandaloneSupport EDIT: Da drinne sind nochmal ordner z.b. für headless version usw. EDIT2. Übrigens überprüfen, ob du auch im richtigen Editor drinne bist (Versioncheck).
  4. MaZy

    Unity und Steamworks (steam_api.dll)

    Aso hab es überlesen ^^
  5. MaZy

    Unity und Steamworks (steam_api.dll)

    Es gibt auch ein von Garry Newman welches er für das Spiel Rust benutzt. https://github.com/Facepunch/Facepunch.Steamworks EDIT: Allerdings seit knapp ein Jahr keinen neuen Release außer Github updates, welches 2 Monate alt ist. Muss zugeben, dass ich nicht alles getestet habe (auch mit Spacewar), aber manche Dinge fand ich bei Facepunch besser.
  6. MaZy

    Mehrere Game-Rooms

    Das hört sich nach einen Masterserver an. Wenn du Headless Server meinst ja. Tatsächlich ist es wirklich so, dass man jedes mal einen neuen Prozess also einen neuen Server mit anderen Port startet. Anders weiß ich auch nicht. Zu mindest tut Valve so bei Dota 2. Allerdings geht es bei größeren Spielen nicht ohne mehrere und leistungsvollen Server. Bei Performance kann man auch Amazon Server benutzen Die sind sehr dynamisch und dort werden ja die Ressourcen je nach Bedarf erhöht. Natürlich auch die Kosten. Mehrere Unity Prozesse pro Instanz (Amazon Server).
  7. MaZy

    Verbindung Server zum Handy

    Wenn es tatsächlich um Client-Server Modell geht, dann geht das mit den Nummern nicht. Geht es aber darum, dass man das Spiel startet (in Sinne von App öffnen) und man lädt Daten aus dem Datenbank runter (also keine Sockets (realtime Datenaustausch) werden aufgebaut), dann müsse das gehen (Man braucht natürlich immer noch einen Server ^^) Ja genau. Die Apps fragen ständig (vielleicht alle paar Sekunden) den Server nach dem Status (Gibt es eine neue Nachricht etc.). Deswegen ist es auch zwingend notwendig dass man Apps im Hintergrund weiter laufen lässt und so machen es die Apps ja auch auf Android und iOS Das ist ne gute Theorie, aber so weit ich weiß läuft das nicht so. So wie ich das damals entnommen habe läuft das bei Android Systemen zu mindest anders. Die Apps müssen auch NICHT im Hintergrund laufen. Ich beziehe mich hier auf Android Apps die mit GCM (Google Cloud Message - z.B. für Push Notification) funktionieren. Im Hintergrund läuft ein Prozess ich glaube sogar von Google Play der immer auf eine Verbindung wartet bis Google Server sagen "wir verbinden uns jetzt mit dir". Das heißt du verbindest dich nicht (sendest aber einmalig, dass du online gegangen bist). Kannst quasi wie ein Server auf dein Handy sehen. Jedes mal also, wenn die Verbindung bricht, versuchen Google Server, wenn sie es benötigen, eine Verbindung mit dir aufzubauen. So. Sobald einer eine Push Nachricht sendet geht es erst zu Google Servern und von dort aus wird an dich weiter geleitet (und ggf. Verbindung aufgebaut). Jetzt sucht dein Handy nach bestimmten Subscription sowas wie com.whatsapp.event.messagenotifcation oder sowas. Hat man das.. wird die Push-Nachricht angezeigt. Allerdings weiß ich nicht, ob google erst mal sagt "hey, hab ne push nachricht an dich für event com.whatsapp.event.messagenotifcation" und du sagst "hey hab das sogar als event bei einer app subscriped" und kriegst dann erst nachträglich die Nachricht geschickt oder dass du sofort die Nachricht bekommst und dein handy halt guckt, ob du überhaupt anzeigen kannst. Kann auch sein, dass google irgendwie auch intern registriert, dass du es empfangen darfst. Ich hab nen Iphone5 (naja mittlerweile seit paar Wochen meine Mutter hat das jetzt) und Samsung Edge S6. Beide hatten die gleichen Apps und account. Als ich Iphone 5 nach vieeeelen Monaten gestartet habe.. habe ich all die Push Notifications nachträglich bekommen, die ich bereits schon mit mit meine Samsung bekommen habe. Ich glaube daher, dass man eher auf den google servern sich "registriert", dass man etwas empfangen möchte. Hey aber nicht verwechseln mit den LOKALEN Notifcations. Das gibt es ja auch. Da braucht man kein Google Cloud Server. Man kann daher eigentlich sowas selbst basteln, aber da müsste die App tatsächlich im Hintegrund laufen. Allerdings weiß ich zu mindest bei Unity, dass die Verbindung irgendwann abbricht, wenn es im Hintergrund ist. Vllt ist das mittlerweile anders.
  8. MaZy

    Gegenstände aufheben

    An einem GameObject binden hört sich jetzt so an, als meintest du einfach das Gegenstand den Parent setzen. gegenstand.transform.parent = GameObject. Sonst weiß ich jetzt nicht genau was du meinst.
  9. Bei sowas sollte man sich fragen, wie ich das als Mensch erst mal verhindern würde. Genau wir betrachten das erste Objekt und dann das zweite Objekt und sehen ist gleiche Höhe. Also dazu etwas addieren. Programmiertechnisch wäre das einfach die Y vom letzten merken und schauen, ob das neue den gleichen Wert hat. Wenn ja kannst du addieren oder wieder randomen wie auch immer.
  10. Warum werden rechts unten nicht mehr die neusten Blogeinträge angezeigt? ich fand das schon manchmal interessant hier das zu lesen, wenn jemand ein Blogeintrag gemacht hat.

    1. Show previous comments  3 more
    2. Sascha

      Sascha

      @MaZy Tatsächlich... Wonach zum Geier sortiert das Ding...?

    3. MaZy

      MaZy

      @Sascha Sorry bin kein Admin. Da müsste ich @Sascha fragen.

    4. Sascha

      Sascha

      Hi, ich hab mir das mal für euch beide angesehen und mein Ergebnis ist "Die Software ist komisch".

  11. Ist bissel her, aber... Der Masterclient könnte die Zahl merken. Einmal hat er sowas wie networkCountdown und einmal masterClientCountdown. Er denkt über den logischen Teil und updatet masterClientCountdown (also irgendein Client muss das eh machen), und macht dann irgendwas wie RPC("UpdateTimer", RPCTarget.AllViaServer, masterClientCountdown), damit alle gleichzeitig (je nach Ping ) bekommen. ja und nun muss jeder inklusiv Masterclient networkCountdown aktualisieren. Du meinst Custom Properties. Kann man auch. Das ist sogar interessanter, wenn jemand nachträglich joined, dass es gesynced wird. Da arbeitest du mit hashtable von Photon selbst. Dann einfach die Werte packen und aktualisieren. https://doc.photonengine.com/en-us/pun/current/gameplay/synchronization-and-state
  12. MaZy

    Server Fragen

    Es gibt mittlerweile sehr viele Photon Produkte und daher reagiere ich allergisch, wenn man allgemein Photon sagt ^^. Photon Pun (wo alles über Cloud läuft), Photon Bolt ganz anderes Paket, aber bieten auch mittlerweile Photon Cloud (Relay Service, Matchmaker) wie bei Unity , man konnte eigenen Relay hosten, den download haben die rausgenommen. Wollen ja nur Geld ^^. Photon Chat, Photon Voice, Photon Quantum.. soll für schnelle spiele wie FPS und ja Racegames sein Photon On-Premises, wo man eigentlich sehr weit unten anfängt mit halt ihrer SDK. Alles basiert auf selben System. CCU. Ich frag mich wie Pubg überlebt hätte, wenn sie irgendwas mit Photon gemacht hätten, da ja sie täglich 200.000 - 600.000 gleichzeitige Spieler haben. Müsste ja CCU sein oder nicht? Back to Topic Ich hatte hier jetzt sehr viel Text. Hab aber gemerkt, dass ich zu sehr meine Meinung geäußert habe, was mich bei manchen Produkten so nervt (Preisgestaltung usw). Es gibt folgende Dinge, die ich kenne. Photon PUN, Brauchst keinen VServer, da Cloud Server, fast kein autoritativer Server/Room möglich 20 CCU kostenlos Photon Bolt Geht Dedicated / headless server, Funktioniert mit allen Platformen, Relay ist nun Photon Cloud. Sprich, kannst keinen eigenen mehr hosten (haben den Zeus download rausgenommen. Nur gut, dass ich das noch hab ^^). gleiche Preisstrategie wie bei Photon PUN, wenn man nur Photon Cloud benutzten möchte. Ansonsten ist es kostenlos (also wie bei Unity quasi). Außer du machst Geld mehr als $100.000. Dann sagen sie immer jedesmal dass gleiche "Wir müssen reden". Also wollen dann nochmal extra Geld. UNet Dedicated / headless möglich Funktioniert zu mindest bei mir nicht immer mit Websockets, bzw Browser.. 20 CCU kostenlos und je nach Unity version erhöht sich das HLAPI und LLAPI möglich HLAPI: Du hast vieles vorbereitet, NetworkIdentity, NetworkManager, Commands, RPCs, Messages usw. LLAPI: Da hast du fast gar nichts. Also fängst du weit unten an. Oder kannst aber dir sagen, ok ich nehme das hier (NetworkServer, NetworkClient).. und schreibe meinen eigenen NetworkManager. Ist dann irgendwie dazwischen, aber immer noch HLAPI Sachen dabei (wenn ich mich nicht irre). DarkRift 2 Wenn du weiter unten anfangen willst, also nix mit componenten, sondern meist per Code, dann ist das tolles Ding. Hab etwas damit rum getestet ist super. Konsoleserver, dedicated / headless Kostenlos Traumhaft In Entwicklung, aber reif für ein Multiplayer. Lidgren Im Prinzip wie DarkRift 2 nur nicht für Unity gemacht, sondern Allgemein für NetworkCoding ,mit C# Meine Projekte waren Voicechat, Chat, Integration to Unity. Sogar Android-Chat-App hab ich gemacht. Wirklich sehr geiles Ding. Wird immer noch aktiv verbessert. Konsoleserver, dedicated / headless Forge Networking Auch alles. Glaube Konsolenversion gibt es auch. Masterserver, Relayserver(glaub ich zu mindest) verfügbar. Kostenlos Persönlich hatte nur Probleme damit. Konnte nicht richtig testen. Stufen wir nochmal alles als Erfahrung ein, aber kann auch Geschmacksache sein. Wie viel Erfahrung in der Programmierung und logisches Denken sollte man bei den Systemen haben BEZÜGLICH Racing Game. Wobei hier mittelmäßig heißt, dass du unerfahren etwas programmieren könntest, in dem du die Doku ließt und sonst keine Hilfe brauchst. Photon PUN Wenig Photon Bolt Mittelmäßig - bis etwas mehr als mittelmäßig UNet Wenig - mittelmäßig solange man NetworkManager benutzen tut. DarkRift 2 mehr als mittelmäßig man sollte etwas Erfahrung in der Sache haben. Ist nicht vergleichbar mit Photon, UNet, Forge. Lidgren Mehr als bei DarkRift 2 - sprich ist schwieriger. Da es ja nicht auf Unity gerichtet ist, muss man da bissel mehr machen. Allerdings haben die da bissel für Unity Sachen vorbereitet. Kannst eigene Types senden. Muss man nur coden können ^^. Weiß net, ob es bei DarkRift 2 auch geht. Forge Networking Konnte nicht wirklich testen, aber sah nicht schwer aus. Daher mittelmäßig. Alles kann man natürlich lernen und musst mal anschauen was du willst. Ligdren vorteil ist natürlich, dass es für alles geht und es gibt schon einige (Indie) Spiele die das verwenden. Die Frage was muss man "nur" machen Einfach ist natürlich IMMER, wenn man nur position und rotation synchronisiert. Blöd wirds nur, wenn einer laggt, einer zu weit weg wohnt usw. Da merkt man, dass es nicht so einfach ist. Als nächstes, was ist mit Sound, Geschwindigkeit, Punkte, Räder, die sich drehen (zu mindest die Lenkräder)?
  13. Also ich habe ja Ingame Editor im Titel stehen. Daher Build-Variante. Bei der jetzigen Version geht es einfach per Paint und Bilder oder so und die Bilder werden einfach geladen. Ich hab jetzt keine Schwierigkeiten mit Editor selbst. Also wie ich was platziere und dazu die Menüs usw. Eher gehts mir um Speichern und Laden. Manche Items haben halt sag ich mal "Properties" beispiel HP. Dann ob es Json sein sollte oder andere Library usw.
  14. Hallo, habt ihr eine Idee wie man so etwas wie im Titel beschrieben realisieren kann. Also bei meinem Spiel sollen die User eigene Maps machen können, wobei die Map aus Pixel besteht und 2D Blöcke. Bis jetzt geht das durch Bilder erstellen die pixelartig gemalt sind und es wird im Spiel geladen gelesen. Allerdings wollte ich mehr machen und auch mehr Funktionen einbauen. Beispiel HP, Booleans, Rotation usw. denn sollen auch sowas wie 4x5 Blöcke geben usw.
  15. Ich erstelle während ich Map vorlade die Klasse "PixelInformation". Ist es nicht möglich, dass man. wenn man per "new" eine neue macht, dass man das abgleicht, ob es etwas identisches in einer Liste ist? Leichter erklärt: Man nehme new Vector2(0,0) und packt sie in die List und erstellt nochmal new Vector2(0,0) und guckt checkt nun mit list.contains() ob überhaupt sie identisch sind. Sowas mein ich. Bei mir enthält PixelInformation auch Vector2 allerdings können da sehr viele sein also z.b. bis zu 3 millionen und ich will nicht immer durch loopen, ob jetzt diese Koordinaten bereits "vergeben" sind. Falls nicht möglich ist habe ich dann wohl keine andere Wahl EDIT: hab erst mal so gelöst
×