Jump to content
Unity Insider Forum

Tiwaz

Members
  • Posts

    950
  • Joined

  • Last visited

  • Days Won

    32

Tiwaz last won the day on January 10 2017

Tiwaz had the most liked content!

About Tiwaz

  • Birthday 07/21/1994

Profile Information

  • Gender
    Male
  • Location
    Bayern
  • Interests
    Programmieren, Klettersport, Gaming

Contact Methods

  • Skype
    Auf Anfrage

Recent Profile Visitors

11,542 profile views

Tiwaz's Achievements

Advanced Member

Advanced Member (3/3)

231

Reputation

  1. Hey, dachte das könnte hier einige Leute interessieren:
    https://www.splashdamage.com/news/the-design-of-dirty-bomb/

    Wer Lust hat kann damit ja auch gern einen Thread starten, ich wollte nur den Link teilen :D

  2. Zockt eigentlich jemand aktiv Rainbow Six Siege auf PC? 

    1. Lars

      Lars

      Ich nicht...

  3. Hat jemand Erfahrungen mit Multicoptern, vorallem mit dem Bau von Quadrocoptern?

  4. Moin, ich bastel zur Zeit an einem First Person Shooter - bzw. an einem Toolkit dafür - und möchte den auch Multiplayerfähig machen, kenn mich allerdings noch nicht wirklich mit Unet oder Networking in Unity allgemein aus. Ich hab mir zwar schon ziemlich viel zu dem Thema durchgelesen und mir diverse Tutorials angeschaut aber es macht irgendwie jeder anders und viele bewegen sich sehr nah am Unity Tutorial, das quasi nur die absoluten Basics abdeckt und man nicht mal transform Movement interpolieren kann. Deswegen mal ein paar Fragen wie man das wohl am besten umsetzen würde was ich vorhabe, mit dem Hintergedanken, dass das Spiel in einem kompetitiven Umfeld genutzt werden können sollte. Sprich: Spielern sollte es so schwer gemacht werden zu cheaten, wie es mit vernünftigem Aufwand nur möglich ist und Delays und Lags sollten ebenfalls mit vernünftigem Aufwand so gering wie möglich gehalten werden. "Der Netcode soll gut werden" wie man heutzutage vielleicht sagen würde ^^ Ich habe oft gesehen, dass auf dem Player die Position und Rotation genommen wird und die wird dem Server dann mitgeteilt, der das Update dann an alle anderen Clients überträgt. Der Ansatz hat natürlich einige Vorteile. Der Code ist total unkompliziert und kurz und funktioniert unabhängig von Input/AI oder dem Controller (Rigidbody, CC, CustomCC, ...) und man kann sehr einfach eine Sendrate einstellen, die eben besagt, dass der Spieler alle x Millisekunden ein Positionsupdate machen soll/darf. Nun hat der Ansatz aber auch zumindest einen sehr offensichtlichen Nachteil: Als ambitionierter Spieler mit schlechten Absichten kann man das System unglaublich einfach ausnutzen, es werden einem keine Steine in den Weg gelegt Teleporthacks oder Speedhacks zu benutzen. Das kann man zwar wohl abschwächen indem man den Server die Updates validieren lässt, allerdings hilft das nur sehr begrenzt. Angenommen ich möchte da Fahrzeuge reinbringen oder eine Teleportation (was ich tatsächlich auch schon drin habe) gibt es zig Spezialfälle und 100%ig korrekt kann ich das nie auswerten. Der andere Ansatz wäre dem Server (fast) komplette Autorität zu gewähren und die User schicken nur ihren Input und der Server berechnet dann alles und schickt die Resultate an alle anderen Spieler. Das ist was ich so gelesen habe und auch wenn man mal logisch überlegt der sinnvollere Ansatz, allerdings auch der deutlich kompliziertere. Wie wird dann zum Beispiel eine Sendrate umgesetzt? Irgendwie müsste der User dann sämtlichen Input sammeln und im nächsten Sendframe an den Server schicken, der den Input dann mit zumindest derselben Reihenfolge abarbeiten sollte oder? Angenommen mein Server läuft aber jetzt mit 60fps und ein Spieler hat jetzt zum Beispiel 28fps während ein anderer 104fps hat. Wie führe ich da das ganze dann zusammen? Ich denke zum Senden selbst wäre FixedUpdate nicht verkehrt oder eine Coroutine, die nach Ablauf von (1 / sendrate) Sekunden den Input losschickt, richtig? Aber welchen Input schicke ich denn dann überhaupt los? Denn der Spieler mit 104fps hat u.U. viiel mehr Input angesammelt als der mit 28fps? Schaue ich dann quasi jeden Frame an und speichere mir alle Aktionen dazu ab und sage "Frame 1 hat 16.32ms gedauert, Frame 2 hat 15.87ms gedauert, Frame 3 hat 17.28ms gedauert" und rechne dann auf dem Server mit den abgespeicherten deltaTimes vom Client? Könnte das nicht ebenfalls potenzielles Cheaten ermöglichen? Wenn der User den Input manipulieren kann und sagt jeder Frame indem Movement getätigt wurde ist jetzt 3x so lange, dann würde der Server den Player auch 3x so weit bewegen als er es eigentlich dürfte. Wobei der Server eigentlich relativ einfach überprüfen könnte, ob die angegebene Gesamt-deltaTime mit der vergangenen Zeit seit dem letzten Tick übereinstimmt. Wenn es länger ist kann das nicht stimmen und den Input verwerfen oder anders behandeln. Und wie werte ich das dann am besten auf dem Server genau aus? Das leichteste wäre wahrscheinlich den Input zu cachen und dann in FixedUpdate (oder einer Coroutine, die auf den Tick eingestellt ist) einfach der Reihe nach im gleichen FixedFrame abzuarbeiten und nach Abarbeiten allen Inputs den Clients ein Update zu schicken. Und als zweites: Wie könnte ich einen Dedizierten Server aufsetzen? Einfach einen Host starten, der selbst keinen Player spawnt oder ist da noch mehr dahinter? Schon mal im Voraus vielen Dank für Antworten, bin um jede Hilfe froh Grüße, Tiwaz
  5. Moin, wie vielleicht der ein oder andere weiß schreibe ich zur Zeit einen CustomCharacterController, da mir der CC von Unity nicht reicht und mir offen gesagt auch manches ein bisschen zu buggy ist. Zum Beispiel das isGrounded funktioniert wahrscheinlich in nur 10% der Zeit korrekt, was u.a. dazu führt, dass man sich extreeeem steile Terrains hochglitchen kann. Naja wie dem auch sei, mein CustomCC ist schon recht fortgeschritten und bereits an manchen Stellen meiner Meinung nach dem Unity CC überlegen. Jetzt würde ich dann aber auch mal anfangen meine eigenen Zusatzwünsche, die ich an den Unity CC hätte, umzusetzen. Allen voran wäre da das ändern der Collider Direction. Der Unity CC ist ja strikt an die Y Achse gebunden und man kann nichts machen, um den Collider bzw. das Controllerobjekt in eine waagrechte zu bringen, was teilweise sehr limitierend sein kann und u.U. den kompletten CC unbrauchbar macht. Würde euch noch etwas einfallen das ihr gerne am CharacterController von Unity ändern würdet wenn ihr könntet? Oder gibt es etwas wo ihr sagt "Also DAS sollte ein CharacterController unbedingt bieten".
  6. Weiß jemand, ob irgendwo der Source Code vom CharacterController online ist? Habe im Forum den vom FirstPersonController gefunden, da dachte ich vielleicht schwirrt auch irgendwo der vom CC rum konnte aber nichts finden.

    1. Show previous comments  7 more
    2. Sascha

      Sascha

      Ich glaub die haben einfach die zehn Zeilen die da relevant sind kopiert - oder re-implementiert. Von einem RB kann da schon gar nicht mehr die Rede sein :)

    3. Zer0Cool

      Zer0Cool

      Ich glaube auch, daß es totaler Spaghetticode ist und wenn sie da die Ausrichtung des Colliders ändern nix mehr funktioniert xD

    4. Tiwaz

      Tiwaz

      Glaube nicht, dass da ein RB drin ist, der CC verhält sich einfach zu unterschiedlich und hat auch noch nichts von Physics gehört. ^^ Denke eher, dass da Sweep Tests etc gemacht werden, damit er die Collisions erkennt und handeln kann. Ich werde es zumindest mal mit Sweep Tests und Overlaps versuchen, funktioniert anscheinend auch relativ gut.
      Hab einen relativ guten CustomCC gefunden aber der ist im Collision Handling echt bescheiden aber da ist primär die Auswertungsreihenfolge und die Logik hinter dem Verhalten Mist, die Idee ist ganz gut.

  7. Moin, hat jemand ne Idee woran es liegen könnte, wenn bei meinem Laptop (Lenovo p170em) nach einem (Neu)Start die Tastatur nicht mehr funktioniert?
    Sprich: Auf Umschalt ist plötzich j, y schreibt auf einmal b, Esc wird zur Feststelltaste, F-Tasten und Zahlenblocktasten sind Buchstaben und andere Zeichen, etc. Also kreuz und quer durcheinander gemapped. Externe Tastaturen funktionieren tadellos.
    Bei einem Neustart funktioniert die Tastatur dann hin und wieder, zu gefühlt 90% aber nicht. Wenn er dann eine längere Zeit aus ist (ab halbe Stunde - über Nacht) funktioniert die Tastatur oft wieder.

    Das Problem hatte ich auch schon mal bei Windows 7, habe vor nem halben Jahr Windows 10 installiert und während das Verhalten zuerst nicht mehr auftragt, ist es seit ein paar Monaten wieder genau so schlimm.

    Das Problem tritt auch auf wenn der PC z.B. fürs Windows Update oder bei einem neuinstallierten Programm neugestartet wird, daher ist das extrem ätzend und ich kann ihn deswegen auch nicht mehr zu Meetings mitbringen.

    Mein Verdacht wäre ein Treiberproblem aber weiß nicht was ich noch machen soll, die Standardprozeduren hab ich glaub ich alle durch.

    Falls jemand ne Idee hat, wäre ich sehr dankbar :D
    Kann auch noch mehr Infos geben.

    Vielen Dank an alle die sich das durchgelesen haben und im Voraus an alle die mir antworten :)

    1. Show previous comments  9 more
    2. Tiwaz

      Tiwaz

      Ich hab mal Wasser drüber gekippt als mir mein Glas umgekippt ist, aber die Tastatur hab ich ausgetauscht.

      Was mich gerade mega verwirrt ist, ich hab gestern das Windows Update machen lassen, dabei hat sich der Laptop neugestartet und hat funktioniert. Weil ich dann eh ins Bett gehen wollte, wollte ich es nochmal ausprobieren und hab noch 2x neugestartet. Die Tastatur hat jedes Mal funktioniert.
      Vorhin als ich ihn wieder hochgefahren hab (nachdem ich ihn gestern dann noch runtergefahren hab) hat die Tastatur nicht funktioniert. Mit der Bildschrimtastatur hab ich mich dann eingelogt, dann kam direkt das obligatorische "Windows Update fehlgeschlagen" Gedöns und ich hab ihn darüber neugestartet. Seitdem funktioniert die Tastatur.

      Und was mir da aufgefallen ist: Jedes Mal wenn ich ihn gestartet habe und Bluetooth an war, lief die Tastatur und jedes Mal wo es nicht an war, liefs nicht. Wenn Bluetooth an ist, funktionieren auch die Hotkeys zum ausschalten nicht. (wenn Bluetooth an war, ging die Tastatur nie, deswegen kA, ob der Hotkey dann prinzipiell gehen würde)

      Das hab ich auch zu Beginn als ich mir Windows 10 installiert hab beobachtet. Der Laptop lief immer super, aber mich hat dann mal gestört, dass ich Bluetooth nicht ausschalten konnte (es ist aus, aber die Kontrollleuchte am Laptop brennt td noch) und dass ich die Tastaturfarben nicht umstellen kann (Der Hotkey geht nämlich auch nicht)
      Daraufhin hab ich mir eben mal den Hotkey-Treiber installiert und ich konnte sowohl BT ausschalten als auch die Tastenfarben umstellen, aber danach trat das Problem wieder regelmäßig auf.

      Oh man..

    3. Zer0Cool

      Zer0Cool

      Ging mir auch schon mal so, man denkt es ist die Software oder Treiber, aber meist ist einfach nur die Hardware defekt. Vielleicht hat es damals nicht nur die Tastatur erwischt, sondern auch noch Hardware die die Tastatur ansteuert...

    4. Life Is Good

      Life Is Good

      Wenn du so viele Probleme hast, installier Windows 10 doch mal sauber neu. Wenn du 'ne SSD drin hast dauert's nicht länger als eine Stunde :)

      Ich hatte letztens erst nen Bug, bei dem der Windows Updater 200GB+ große Log Dateien angelegt hat, da sind die Updates auch immer fehlgeschlagen. Einmal sauber neuinstalliert und dann läuft auch alles wieder.

  8. Bin grad auf ein neues MMO gestoßen, das sieht ziemlich cool aus. Was denkt ihr? Könnte es mal wieder frischen Wind ins MMO Genre bringen oder wird es genau so im Einheitsbrei untergehen wie alle anderen MMOs der letzten Jahre? ^^ https://www.ashesofcreation.com/ref/DoomNexus/

    1. Show previous comments  1 more
    2. Tiwaz

      Tiwaz

      Also ich bin da echt richtig gehyped (Fantasy Mittelalter ist mit unter mein Lieblingssetting), was mich nur stutzig macht ist, dass die Entwickler angeblich erst 14 Monate daran gearbeitet haben. Sind zwar "Veteranen" und haben z.B. auch schon an Everquest gearbeitet aber das muss ja nix heißen. Man sieht auch immer die gleichen Ausschnitte/Welt-Abschnitte, ich befürchte da einfach, dass man nach ner Woche schon alles gesehen hat nachdem es erscheint und sowas geht für ein MMO einfach mal überhaupt nicht, da erwarte ich schon irgendwie, dass ich mir eigentlich immer etwas finden kann worin ich meine Zeit halbwegs sinnvoll investieren kann.

      Ein bisschen Hoffung macht mir dann aber auch das Abo-Modell, allerdings hasse ich Abomodelle, weil ich nicht nach ein paar Monaten Abwesenheit einfach mal wieder für ein paar Stunden reinschauen kann was sich getan hat, ohne erst mal wieder dafür blechen zu müssen. Außerdem muss das auch nix heißen, wie viele Abo-Spiele sind daran fast zerbrochen und haben dann doch auf Free2Play umgeschwenkt oder sind eingestampft worden...

    3. Felix K.

      Felix K.

      Ja, das bleibt alles abzuwarten.
      Ob da Veteranen dran arbeiten oder nicht. Der Spieler entscheidet ob er es spielen will oder nicht.
      Von meiner Seite her will ich ein Spiel spielen und muss keine "Beziehung" zu den Entwicklern haben. Viele Spieler mögen zwar dieses "Der hat schon dort mitgearbeitet, das muss geil werden!", oder der andere Quatsch. Ich hoffe ihr wisst was ich meine.
      Es gibt ja auch aktuelle Beispiele, wo "namenhafte" Entwickler, Designer usw mit daran arbeiten und das ach so tolle Spiel eigentlich schon zum "Scheitern" verurteilt ist. Geld haben die trotzdem in Massen verdient. Aus unternehmerischer Sicht aufs Projekt bezogen: Ziel erreicht.

      Da wollen wir es mal hoffen, dass es gut geht für das Spiel.
      Von meiner Seite her: Ich kaufe nur noch Spiele die den Status "fertig" haben. Klar, wenn da noch Patches und Updates kommen die Fehler beheben, ist das auch kein Problem. Das ist nun mal so.

      Alles andere muss jeder für sich selber entscheiden.

    4. Slayer

      Slayer

      Tatsächlich ein sehr Interresantes MMO, eins das auch mein Interesse wider weckt. AA ist ja leider am absteigenden Ast und da würde das gerade recht kommen.

  9. Also ich finde die Kugel irgendwie ein bisschen zu schnell. Ich meine die sind natürlich ziemlich schnell aber das kommt mir dann doch etwas unrealistisch vor, gerade wenn sie runter "kullert" oder von den Bumpern rumgeschossen wird. Aber ist nur mein Geschmack.
  10. Wieso frisst das denn so viel Performance? Meine Vermutung wäre jetzt mal, dass du auf jedem Baum ein Script hast wo eine Update läuft (würde bei vielen Objekten die Performance zumindest stark beeinträchtigen)? Oder ist es der Polycount? In beiden Fällen könnte man optimieren. Ich finde das Bäume fällen prinzipiell ganz cool in Survival Spielen aber ich finde, dass es eigentlich nirgends "realistisch" umgesetzt wird. Beispiel The Forest: Wenn man einen fetten Baum umschlagen kann (vorausgesetzt man hat eine gute Axt, mit der man das schafft), dann müsste man doch meinen, dass man den dann auch in provisorische Bretter umwandeln kann und benutzt nicht den ganzen Baumstamm für ne Wand von einem kleinen Häuschen ^^ Also generell finde ich die meisten Survival Spiele recht unglaubwürdig und dann ist es für mich kein "Survival" mehr.
  11. Moin moin, viel Spaß und viel Erfolg hier und beim Entwickeln Bin übrigens gebürtiger Regensburger und wohne nach wie vor hier
  12. Du brauchst einen entsprechenden Shader, ich glaube dazu findet man einige im Inet aber Unity hat afaik keinen nativ. https://www.assetstore.unity3d.com/en/#!/content/23087 Hab ich mal auf die schnelle gefunden aber keine Ahnung ob der was taugt. Prinzipiell muss man ja nur das Backface Culling im shader ausstellen. Aber bedenke, dass ohne das Backface Culling/mit Double Sided Polys dein komplettes Mesh 2x gerendert wird (Frontface + Backface). Würde da eher versuchen eine Hand voll Polys zu spendieren um die Lücken zu kaschieren als auf double sided zu stellen, zumal du sagst, dass es ein recht großes Mesh ist (was impliziert, dass es auch viele Polys hat)
  13. Hey, also ich finde das Spiel sieht bis dato ganz gut aus aber ich befürchte typische "Early Access Probleme": Ganz viel Zeug damit es nach viel aussieht aber im Endeffekt ist nichts ausgereift (und wird dann auch in Zukunft nicht mehr gepolished, auch wenn es "damals" mal geplant war). Ich hab's zwar nicht gespielt aber nach dem Dino-Update hab ich mir schon gedacht was Dosenbiiir geschrieben hat. Und das ist imo das mit Abstand wichtigste bei einem Spiel. Es muss sich gut anfühlen.. Auch wenn das Spiel noch nicht besonders viel bietet und man nach 2-3 Stunden prinzipiell alles gesehen hat was die Alpha bietet, möchte man eventuell trotzdem weiter spielen wenn man Spaß daran hat. Wenn man sich aber durch die 2-3 Stunden Content quälen muss und man dem Charakter bei jedem Schritt eine Notschlachtung wünscht, um sein Leiden zu beenden, dann ist das halt nicht das Wahre. Gekoppelt mit einer nicht besonders ausgereiften KI (die einen töten kann) finde ich das immer extrem frustrierend und mindert die Qualität und dann im Endeffekt auch den Spielspaß des Spiels. Planet Explorers beispielsweise bietet wirklich viel Content, wohingegen man in Osiris New Dawn prinzipiell nach 10 Stunden alles gesehen hat. Planet Explorers hab ich nach ner dreiviertel Stunde zurückgegeben, weil es sich spielt wie ein Haufen Sche****, Osiris New Dawn allerdings hab ich jetzt 7 Stunden gespielt und hab so gesehen noch nichts gemacht, weil mir alleine das Erkunden und Sachen abbauen schon so viel Spaß gemacht hat. Was ich damit sagen will: Bevor du Dinos/AI raushaust und immer mehr Features und im Umfang expandierst, würde ich an deiner Stelle nach und nach die bestehenden Kernelemente (Survival und Base Building?) so weit polishen, dass man damit auch schon ausreichend Spaß haben kann um z.B. einen Kaufpreis rechtfertigen zu können. Minecraft zum Beispiels bietet im Creative Modus als quasi einziges Feature "Block abbauen und wo anders aufbauen" und verkauft sich für 23,95€ wie warme Semmeln.
  14. Tiwaz

    Voxel Engine

    Moin moin, es gibt eine Neuigkeit, bei der ich sehr froh bin, dass ich sie verkünden kann Ich habe die letzten Wochen meine Freizeit dazu genutzt meine VoxelEngine in einem C++ Plugin neu zu schreiben und heute gelang es mir die letzten (gravierenden) Bugs raus zu fixen. Bin jetzt annähernd auf dem Stand wie mit meiner Original C# Implementierung, kann aber noch nicht Multithreaden (da muss ich mir noch überlegen wo/wie genau ich da Threads anlege), aber das Generieren und Meshen klappt und sogar LOD funktioniert ohne weiteres zutun (worüber ich mich echt freue, da wäre wieder mega ätzend gewesen wahrscheinlich ^^) Mich hat es ja schon bevor ich richtig damit angefangen hab total interessiert wie sich dann die Performance gegenüber der C# Implementierung verhalten wird. Hab ich natürlich sofort getestet und ich bin eigentlich recht zufrieden Für ein Terrain mit 24 Chunks Sichtweite (also Durchmesser 768m) brauche ich mit dem C# Code etwa 36 Sekunden (ohne LOD und Singlethreaded), das C++ Plugin braucht dafür grade mal 13 Sekunden Als sehr positiven Nebeneffekt spart der C++ Code etwa 35% RAM ein (ich denke das liegt wohl daran, dass ich durch Pointer viel Overhead einsparen kann, aber kA) Die 36 Sekunden kommen übrigens im Build raus, also nicht im Editor sprich ohne Debug Optionen, etc Im Editor dauert es etwa 118 Sekunden aber die kann man nicht gegen eine compiler-optimierte, kompilierte DLL vergleichen ^^ Mir ist auch aufgefallen, dass ich den Density Buffer unnötigerweise im Vorfeld schon initialisiere, das hab ich jetzt weggelassen, wodurch jetzt ein bisschen Komplexität wegfällt und angenehmerweise die Performance ein kleines bisschen steigt. Ich glaub das war's dann aber auch schon wieder, hab leider nicht so viel Zeit wie ich gerne hätte, weil die Uni auch immer präsent ist ^^ Aber ist finde ich trotzdem ganz oke, ich hab das C++ Plugin jetzt eigentlich auf 3 Wochen auf fast den gleichen Stand gebracht wie die "Original-Engine" und das obwohl ich quasi keine Ahnung von C++ hatte Aber soweit ich das beurteilen kann ist die Codequalität trotzdem ganz gut. Zumindest hab ich versucht möglichst "modernes" Standard C++ zu benutzen, also mit smart-pointer, etc Ich hoffe ich kann demnächst mal wieder öfter was vorstellen und hoffentlich auch ein paar Grafiken posten
×
×
  • Create New...