Jump to content
Unity Insider Forum

Tiwaz

Members
  • Gesamte Inhalte

    950
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    32

Alle erstellten Inhalte von Tiwaz

  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. Vorherige Kommentare anzeigen  %s mehr
    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. Vorherige Kommentare anzeigen  %s mehr
    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. Vorherige Kommentare anzeigen  %s mehr
    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
  15. Wie können sie denn bewegt werden? Per code oder weil sie jemand anrempelt oder wie? Wenn du sie per Code drehst/bewegst könntest du doch bei entsprechenden Methodenaufrufen das Flag setzen. Und wenn sie jemand anrempelt bzw. sie durch das Physiksystem bewegt werden, kannst du in der OnCollisionEnter Methode das Flag setzen. Oder gibt's noch andere Wege Objekte zu bewegen? ^^ Bei beiden Möglichkeiten hast du zusätzlich Zugriff auf das bewegte/gedrehte Objekt, falls das wichtig ist.
  16. Hach ja ich finds immer wieder schade Schade wenn Unity immer mehr in Verruf gerät, nur weil damit schlechte Spiele gemacht werden.. bzw weil ein paar Entwickler ihre Probleme nicht lösen können und dann Unity die Schuld geben..

    1. Vorherige Kommentare anzeigen  %s mehr
    2. Helishcoffe

      Helishcoffe

      Jap ich kann das nur bestätigen. Viele meiner Freunde fangen schon an zu schmunzeln, wenn vor dem Starten eines Spiels das typische "Made with Unity" Logo bei der Personal eingeblendet wird. Ich kanns nicht verstehen.

    3. Tiwaz

      Tiwaz

      ja bei Trailern oder im Playstore lese ich auch immer öfter Kommentare nach dem Motto "Closed video/deinstalled after "made with unity logo" 1*" oder so ne Kacke.. Ich hab ehrlich gesagt noch keine richtige Crapware von Unity gespielt. Könnte daran liegen, dass ich nur extreeem sparsam Spiele kaufe aber hm..

    4. Helishcoffe

      Helishcoffe

      Ja das Problem ist einfach das Unity "zu" einsteigerfreundlich und Preisgünstig ist. Somit fangen viele Anfänger eben mit Unity an. Eigentlich schade dass immer wieder vergessen wird was für Anspruchsvolle Spiele mit Unity geschaffen wurden.

  17. Tiwaz

    UNITY doesnt start!

    Stimmt, der Buttontext ist "Continue" nicht "Import".. Aber eigentlich müsste dann ein Import-Ladefenster kommen.. Dein Problem wird dann wohl sein, dass Unity es nicht schafft alles zu importieren (was eigentlich nicht so schlimm wäre, weil Unity das dann skipt) und Unity dann irgendwie abgeschossen wird.. Hast du irgendwelche Editorskripte drin oder welche, die mit [ExecuteInEditMode] getagt sind? Wenn ja nimm die mal raus und importier dann neu.. Du könntest auch probieren mal den kompletten Library Ordner zu löschen, das hat bei mir jetzt schon öfter funktioniert wenn Unity beim Start Up crasht. Der wird beim Projektstart einfach neu angelegt und gefüllt. Vor solchen Aktionen ist es aber immer ratsam eine Sicherheitskopie anzulegen, falls dann doch irgendwas beschädigt wurde, das kann ich nämlich nicht garantieren, aber bei mir hatte ich noch nie Seiteneffekte beim Löschen der Library ^^
  18. Tiwaz

    UNITY doesnt start!

    joa ist ganz normal wenn du Unity aktualisiert hast. Das Problem ist auch nicht Unity, also nützen dir Neuinstallationen nichts. Wenn du auf Import klickst werden die ganzen Dateien im Ordner für die neue Unity Version "vorbereitet" oder jedenfalls überprüft, ob noch alles kompatibel ist, was da genau passiert weiß ich grade selber nicht ^^ Also wenn du das neu Importierst (bei der Meldung auf "Import" klicken), dann sollte es wieder funktionieren.
  19. Tiwaz

    Voxel Engine

    Kleines Update: Ich hab dummerweise durch einen kleinen Denkfehler eine Methode "korrigiert", wodurch das ganze deutlich langsamer gelaufen ist. Vor allem ohne LOD ging alles extrem langsam. Habe den mal korrigiert und brauche jetzt nur noch 2.25ms pro Chunk bei den gleichen Settings. Das mag nicht nach wirklich viel ausschauen aber es sind immerhin 25% ^^ Ohne LOD übrigens bis zu 64%. Btw lasse ich übrigens immer alles im Editor laufen, also alle Werte die ich so erreiche sind auf den Editor-Betrieb bezogen. Im Build ist das eine ganze Ecke schneller (Single-Threaded versteht sich): Wie man sieht werden mehr Chunks generiert, das liegt daran, dass ich den Seed der vorherigen Welt nicht mehr weiß, aber Zeit technisch nehmen sich die Welten alle nicht so viel. Gestern und heute hab ich ein bisschen mit Compute Shadern experimentiert. Hab es schon mal geschafft einen CS anzusprechen und Daten in und aus dem Buffer rein bzw. heraus zu kriegen. Sehr interessant auf jeden Fall, da werd ich wohl noch ein bisschen weiter rumtüffteln, aber weniger im Rahmen der Engine. Da will ich tatsächlich ganz gerne ohne die GPU auskommen, da ComputeShader ja DX11-only sind und ich die Engine nicht so stark einschränken will ^^ Muss ja auch ohne sie gehen.. wie man an manchen Beispielen sieht @edit: Oh man ich Pfosten hab die Buffer Time nie zur Total Time gerechnet, wodurch auch die Per Chunk Time nicht korrekt war.. Da die Buffer Time nie wirklich zu Buche geschlagen hat, hab ich das einfach nicht bemerkt, aber hab jetzt mal ein riiesen Terrain generieren lassen und da war des dann doch ein Unterschied.. Es sind also tatsächlich nicht 2.25ms pro Chunk sondern 3.25ms.. Naja, wie gewonnen so zerronnen ^^
  20. Tiwaz

    Voxel Engine

    16³ aber falls ich die Densityberechnung und Octreegenerierung auf die GPU auslagere werd ich auch mal 32³ probieren. Was ich auch noch möglichst zeitnah versuchen möchte umzusetzen sind "GeoMips" (kA ob es den Term in dem Bereich gibt, der Begriff ist aus dem Transvoxel-Skript entnommen). Also, dass mehrere Chunks in einen größeren Octree zusammengefasst werden, sodass ein Chunk immer 16³ Voxel hat. Ist die Voxelgröße höher (weil höheres LOD) dann wird eben auch der Chunk größer. Die meiste "Runtime-Performance" geht bei mir nämlich durch die Vielzahl der Chunks drauf, die dauernd updaten und die Distance checken etc. Da könnte ich vllt auch generell noch eine schönere Methode finden. Finde das hier so krass: https://procworld.bl...is-destiny.html Das würde ich auch gerne mal schaffen ^^ Generell ein sehr cooler Blog finde ich. Momentan brauche ich für ein Terrain mit 2km Sichtweite 21 Sekunden :/ (falls das in dem Artikel gemeint ist? 2km² sind denke ich nicht gemeint.. ^^) @edit: Die Zeit pro Chunk ist beim LOD aber auch nur eine Hausnummer.. Je mehr niedrig aufgelöste Chunks da sind, desto stärker wird die Per-Chunk Zeit runtergezogen, weil's nur eine Durchschnittsrechnung ist. Zumal ich noch keine QEF hab, es wird ja noch nicht texturiert, etc. Da werd ich wohl früher oder später noch einiges an Performance einbüßen erst mal. Und eventuell auch generell noch mehr berechnen muss um die LOD Stufen auch beim rumlatschen anständig blenden zu können ^^ Weiß noch nicht wie sich das noch entwickeln wird.
  21. Tiwaz

    Voxel Engine

    Moin Leute, nachdem ich jetzt hoffentlich endlich meinen Durchbruch beim LOD hatte, möchte ich euch gerne meine Voxel Engine vorstellen - das war so mein eigenes kleines Ziel das ich erfüllen wollte bevor ich es vorstelle Das Projekt gibt es übrigens mittlerweile schon seit über 1 Jahr (die 1. Version ist vom 28. Juli 2015 ), damals habe ich mich erst mal in Boxel (Minecraft-Style) eingearbeitet, um überhaupt in das Thema zu finden und mich dann über Marching Cubes zum Dual Contouring gehangelt. Zwischenzeitig habe ich auch noch die Datenstruktur der Chunks von 3D-Arrays auf Octrees umgestellt - was Anfangs auch erst mal gedauert hat die zum Laufen zu bringen - und mich generell vorwiegend belesen, altes verworfen, neues hinzugefügt, etc. Im November letzten Jahres dann (wow.. das ist jetzt auch schon wieder knapp 11 Monate her) musste ich das Projekt wegen allgemeinem Uni-Stress pausieren und das bis vor kurzem, denn bis auf ein paar wenige und sehr kurze Phasen in denen ich Zeit hatte - wobei der Großteil davon erst mal drauf gegangen ist mich wieder in das Thema einzuarbeiten - hab ich nicht viel daran schreiben können. Jedenfalls freut es mich jetzt natürlich umso mehr euch jetzt ein paar Bilder davon präsentieren zu können ^^ Das ganze befindet sich nach wie vor in einer sehr frühen Version, bis dato ist tatsächlich nur das Generieren des Terrains möglich und die Meshes sind auch noch untexturiert etc. Dafür klappt es 2D und 3D Meshes zu generieren und die Generierung des Octrees und Meshes sind Multithreading-fähig, wobei ich noch am überlegen bin, ob und wie ich die Octreegenerierung (samt Densityberechnung) auf die GPU auslagere. Das ganze läuft übrigens mit diesen Stats: Insgesamt werden übrigens ~44k Triangles generiert und das Terrain bietet eine Sichtweite von 256m. Ist zwar nicht wirklich viel aber es ist ja auch nur bedingt optimiert und Singlethreaded (obwohl es multithreadingfähig wäre, dann geht das in einem Bruchteil der Zeit ^^) @edit: Achja, kurze Erklärung: Die Generation Time ist wie lange es dauert die Octrees zu generieren, die Update Time ist das Meshing (sollte ich vllt mal umbenennen) und die Buffer Time ist das Befüllen des Density Buffers ^^ Mein Laptop hat übrigens einen 2.4GHz Quad-Core Prozessor, 16GB DDR4 RAM und eine Nvidia GeForce GTX 675MX mit 4GB GDDR5 Grafikspeicher, falls es jemanden interessiert bzw. um die Zeiten/Rechenaufwand einschätzen zu können.. ^^ Bin auch sehr froh darüber, dass der Algorithmus nicht auf restricted Octrees beschränkt ist, d.h. es ist vollkommen egal, um wie viele Auflösungsstufen sich die benachbarten Chunks unterscheiden, es klappt Hier mal noch ein kleines Bild mit 3D Terrain (kein besonders tolles): Ich weiß ehrlich gesagt noch nicht woran ich mich als nächstes wage. Wahrscheinlich überarbeite ich das LOD System noch ein paar Mal, damit das auch wirklich 100%ig klappt und nichts unnötig berechnet wird. Ich würde dann demnächst gerne mal einen vernünftigen Worldgenerator basteln (also, dass das Terrain auch nach was aussieht, verschiedene Materialien hat, etc..), aber ich glaube das wird auch wieder ein eher langwieriger Prozess, da bastel ich wohl immer mal wieder dran. Auf der Liste steht auf jeden Fall noch so einiges, da hab ich noch sehr lange was zu tun und ich hoffe, dass ich demnächst öfter mal ein paar weitere Errungenschaften präsentieren kann, warne aber schon mal vor, dass sich das wohl sehr zieht Tiwaz
  22. Langsam kotzt mich die Voxel Engine echt an ._. Das ganze fehlerfrei und performant zu kriegen ist echt ne Herausforderung.. Hänge schon seit Ewigkeiten daran das LOD vernünftig hinzukriegen und jedes Mal scheitere ich daran, dass die Implementierung 100% "watertight" meshes generiert..

    1. Vorherige Kommentare anzeigen  %s mehr
    2. Anubis

      Anubis

      Voxeland, oder habe ich das Thema gerade verfehlt? :)

    3. Tiwaz

      Tiwaz

      Ne war zwar noch nicht im Gespräch aber Voxeland hab ich mal als Demo getestet, da fand ich es irgendwie cool aber irgendwie auch ein bisschen komisch ^^

      Haben die mittlerweile schon LOD?

      Weiß grad nicht ob ich es mit anderen Frameworks verwechsle, viele bieten irgendwie kein LOD, was wie ich festgestellt habe auch nicht so trivial ist :D

      Was für Probleme habt ihr da so festgestellt? Bzw was würdet ihr denn so für Anforderungen an so ein Framework stellen und warum? Ist natürli...

    4. Tiwaz

      Tiwaz

      * natürlich sehr interessant für mich ^^

       

      Könnte man eigentlich mal einbauen, dass man die verbleibende Zeichenzahl sieht? ^^

  23. Auch von mir ein herzliches Willkommen Und ich bin auch schon sehr gespannt drauf ^^ Zum einen weil ich auch schon seit geraumer Zeit (seit mittlerweile über einem ganzen Jahr - mit sehr vielen sehr langen Pausen..) an einer Voxel Engine arbeite, auch wenn ich nicht auf Boxel Style abziele, sondern auf realistisches Terrain. Aber einige Techniken sind sicher für beide Stile interessant z.B. die Datenstrukturen etc. Zum anderen finde ich dein Vorhaben recht unkonventionell Zum Beispiel, dass du die Map auf einem Server speicherst und an die Spieler verteilst ^^ Kenne ich bis dato nicht für unendliche Maps. Naja, viel Spaß und viel Erfolg dabei auf jeden Fall
×
×
  • Neu erstellen...