Beiträge von Tomura

    Theoretisch wäre es möglich Windows auf deiner XBox zu installieren. Ich weiß aber nicht wie gut es der Konsole und MS gefällt.


    Für ID@XBox und Devkits musst du schon ein wenig was zu bieten haben (gutes Konzept, einen Publisher oder schon ein paar Releases auf PC), außer es hat sich in den letzten Jahren was geändert. Und selbst dann weiß ich nicht wie viel Aufwand du haben wirst, da du eine Crossplay und Serverlösung programmieren musst.


    Wenn es nur ein Dedicated server ist, reicht eine Maschine ohne GPU, also z.B. auch ein Laptop.


    Und wie gesagt geht es auch lokal, Falls der GPU dein Bottleneck ist dann einfach mal die Auflösung verringern. Mein Video läuft z.B. auf einem Laptop mit einer GTX555M den ich damals als Studen hatte. Du musst halt einfach das Projekt ohne den vollen editor starten (-game als option)

    https://docs.unrealengine.com/…nes/CommandLineArguments/

    Dazu müsste ich etwas mehr wissen wie genau du es gelöst hast, aber falls jedes Mesh sein eignenes AnimBP hatte, dann war es wahrscheinlich der Fall, dass nicht alle Instanzen, das Event aus dem Interface mitbekommen haben.

    Wahrscheinlich (ich kann da nur raten) hast du nur einmal entsprechendes Event für das Main AnimBP aufgerufen. Du hättest aber dies auch für die Restlichen Meshes machen müssen.


    Der Rest ging wahrscheinlich, weil dein AnimBP den Rest über den Tick des AnimBPs gemacht hat, von daher hat jedes AnimBP für sich seine eigenen Variablen gesetzt.


    Wie gesagt ist die Lösung die ich vorgeschlagen habe in jedem Fall besser, da nur ein AnimBP pro Character ausgeführt werden muss, somit läuft deutlich weniger redundanter Code mit.

    Ausgehend dass alle deine Skeletal Meshes das gleiche Skeleton haben, würde ich folgendes Vorschlagen:

    - Dein Main Skeletal Mesh, führt das Anim Blueprint aus, die Restlichen folgen dem Main Mesh indem zu dieses aus Master Pose Component zuweist.


    Das sollte ein gutes Stück komplexität rausnehmen und somit Potential für Fehler. Wenn es damit nicht geht, dass ist etwas an den Meshes selber nicht richtig.



    Edit: Das ist natürlich kein direkter Fix für dein Problem, sollte aber das ganze Lösen, denn in die Hocke geht dein Character ja, von daher funktioniert zumindest die Kommunikation mit dem AnimBP des Main Meshes. Da ist es einfacher einfach dafür zu sorgen, dass die Sub-Meshes einfach nur derBewegung des Main Meshes folgen zu lassen.

    Das Problem ist halt, ich hatte vorher eine Maus von Razer. Die hat nicht wirklich lange gehalten. Die war auch nicht gerade ein Billigheimer und mir ist vorher noch nie eine Maus kaputtgegangen. Deswegen hatte ich mich eigentlich gegen die Qualität von Razer entschieden. Wobei die Qualität von Corsair, zumindest bei Keyboards, ja auch nicht besser zu sein scheint.


    Wenn man zwar gerne relativ schnell tippt, aber ständig am Korrigieren ist, dann hilft auch die schnellste Schreibtechnik nicht viel. Bei einem Beitrag vielleicht nicht ganz so wichtig, weil den einen oder anderen Fehler verzeiht der Leser ja auch mal. Aber beim Programmieren ist der Compiler nicht so nachsichtig.

    Das könnte jetzt anders sein, mit den optischen Schaltern, die sie in neueren Modellen verbauen, da die mechanischen Microschalter, welche bei fast allen Mäusen dauernd kaputt gehen, jetzt optisch funktionieren. Ob die Lösung wirklich robuster ist, wird sich aber wohl nur über die Zeit zeigen, denn Teile, die mechanischen Verschleiß erfahren gibt es da ja trotzdem.


    Bin mit meiner derzeitigen Corsair Tastatur und Maus Kombination von vor 5 Jahren recht zufrieden. Habe aber das Gefühl, dass die Firma was Qualität angeht ziemlich nachgelassen über die Jahre. Eine mechanische Tastatur gefällt mir schon besser von Tippgefühl, aber man sollte einen Satz Dämpferringe dazukaufen, um sie etwas leiser zu machen.

    Also dein dedicated server würde in der realität nicht auf einer Konsole laufen, sondern auf einem Windows oder Linux Server.

    Falls es dir nur ums testen geht, dann kannst du Dedicated/Listen Server und Client einfach auf dem selben PC laufen lassen (wie hier

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.
    ), was Verbindung testen angeht macht dies im Internen Netzwerk wenig Sinn, da die Bedingungen viel zu ideal sind. Dann frag lieber einen Freund, der willig ist zu testen.


    Es gibt paar Einstellungen in der Config die zu machen kannst um, lag, package loss, etc. zu simulieren, das kann auch hilfreich sein, falls du Lag-Kompensationstechniken programmiert hast.

    So wie ich es gelernt habe, ist allerdings auch schon 25 Jahre her, ist es allerdings recht unsauber eine Funktion quasi mit "Return" oder Schleifen mit "Break", oder was auch immer, abzuwürgen. Ob das noch immer Gültigkeit hat weiß ich allerdings auch nicht. Auch da gehen viele Meinungen auseinander. Heutige Compiler generieren aus solchem Code wahrscheinlich auch von sich aus schon das Richtige. Aber so tief bin ich in der Compilermaterie nun auch nicht drin.

    Ja, das ganze hat heutzutage immer noch Gültigkeit. Hat aber eher etwas mit Clean-Coding zu tun, von daher komplett optional.

    An sich sollte man die returns einer Funktion minimal halten, sodass jemand der den Source Code ließt, im unteren Teil der Funktion herausfinden kann was zurückgegeben wird, ohne Gefahr zu laufen, dass ein return irgendwo mitten in der Funktion übersehen wird. Somit ist der Execution Flow deutlich einfacher verständlich.


    Es gibt ausnahmen, wenn es z.B. dafür sorgt dass man mehr Code schreiben muss nur um die Regel zu erfüllen, was natürlich auch nicht die Verständlichkeit verbessert.


    Eine Regel die ich selber noch nutze und mit dem Ausgangspost etwas zu tun hat:

    Falls ich checks habe, welche die Funktion abwürgen sollen, schreibe ich diese möglichst oben und breche die Funktion mit "return" ab, gerade wenn die alternative wäre über viele if-then-else Blöcke zu viele scopes zu erzeugen und somit wieder die Lesbarkeit verschlechtere.

    auto sorgt automatisch dafür, dass spätestens zur Compile time der richtige Typ eingesetzt wird.

    In diesem Fall sorgt ja die Cast<AWaffe> funktion dafür, dass ein AWaffe* pointer rauskommt. Aus


    auto TraceHitWeapon = Cast<AWaffe>(TraceHitItem)


    wird also automatisch


    AWaffe* TraceHitWeapon = Cast<AWaffe>(TraceHitItem)


    Der Vorteil ist, sagen wir mal irgendwann später merkt du du musst doch eher zu AAndereWaffe casten.

    So musst du nur den Teil zwischen den <> ändern. Das verringert den Wartungsaufwand, da eine einzige Änderung sich auch automatisch auf die "auto" Variablen auswirkt, anstatt dass du alle lokalen Variablen manuell Nachziehen musst.


    Der Nachteil ist dass der Typ einer auto Variable nur implizit bekannt ist und nicht explizit. Du weißt also nur aus dem Kontext welcher Typ sich hinter TraceHitWeapon verbirgt. In diesem Fall ist es einfach zu verstehen, also ein recht guter Einsatz von auto, bei komplexerem Code könnte es jedoch die Verständlichkeit deines Codes verringern.

    Ich muss auch sagen, dass CPU seitig AMD echt aufgeholt hat, was GPUs angeht liegt NVidia definitiv vorne, was die GPUs an sich anbelangt und auch die Features drum herum wie CUDA, etc.

    An sich macht man aber auch bei Intel CPUs keinen Fehler. Beide Firmen bieten gute Produkte an.


    Was Hitze Probleme angeht, musst du mal genauer nachschauen. Einige Reviews referenzieren dabei den mitgelieferten Kühler. Das ergibt auch Sinn, denn man sollte schon erwarten, dass, wenn Intel einen Kühler mitliefert, dieser auch den CPU ausreichend kühlen kann. Seit einigen Jahren ist die Wärmeentwicklung bei i7 aber so, dass man immer einen anständigen Kühler dazukaufen muss und der mitgelieferte Kühler kann gleich in die Tonne. Da ist AMD ein Stück vorbildlicher und liefert mit Ryzen recht anständige Kühler mit. Normal sollte aber ein Gehäuse mit gutem Airflow und anständiger konventioneller Kühlung ausreichen.


    Was AiO Wasserkühlung angeht, ist die Leistung vergleichbar mit einem guten konventionellen Kühler, bei ausreichend Airflow. Meiner Meinung nach lieft der Vorteil - den ich eher schätze - beim sehr komfortablen Einbau von AiO kühlungen und dass der Wärmetauscher nicht direkt auf der CPU sitzt, sondern am Gehäuse.

    Andererseits sorgt man jedoch dafür, dass der Wärmetauscher typischerweise oben am Gehäuse hängt, und die warme Luft auch nach oben hin rauskommt, anstatt nach hinten. Falls der PC unterm Schreibtisch steht, merkt man das deutlich mehr.

    Kannst du mal in der Normal Map Textur prüfen ob diese als Normal Map (sowohl Texture Group als auch Compression Settings, etc) importiert ist? Zusätzlich kann es sein dass du im Material den Sampler Type auf Normal umstellen musst.


    Rein vom Aussehen der Screenshots sieht es aber eher nach fehlendem Skylight aus. Da ja auch was von Lighting needs to be Rebuild steht, wär es vielleicht mal was Wert einmal neu zu builden.

    Tomura


    Wie macht ihr dass mit der Arbeitszeit Erfassung ?

    Habt ihr Vertrauensarbeitszeit oder irgend ein Zeiterfassungssystem ?

    Im Grunde trage ich im Home Office im System manuell ein wann ich anfange und aufhöre. Habe Gleitzeit, von daher bin ich flexibel wann ich ein-/ausstempel, es muss aber natürlich dokumentiert sein für die Zeitberechnung (sonst fallen ja keine Gleitzeitstunden an die ich zum zusätzlich frei nehmen nutzen kann). Im Büro ist es natürlich mit Ein/Ausstempeln über ein Terminal mit dem Werksausweis.

    Ihr seid offensichtlich recht gut ausgestattet. Und wie man an diesem Beispiel sieht, klappt es offensichtlich sehr gut.


    Ich denke, es ist eine einmalige Aufbauinvestition die viele Firmen noch scheuen. Ich glaube nicht, dass das Internet das große Problem ist, auch nicht die eigentliche Sicherheit oder so. Nur die Firmen müssen natürlich erstmal die Möglichkeiten bereitstellen. Das ist natürlich erstmal eine Investition, die man bereit sein muss zu tätigen. Ich denke die Erweiterungs- und Wartungskosten werden dann relativ überschaubar sein.


    Ist aber auch ein wenig wie das papierlose Büro. Davon habe ich schon Anfang der 90er gehört, wie toll usw. das werden wird. Inzwischen habe ich aber eher das Gefühl, dass es damals nicht so viel Papier im Büro gab wie heute.

    Das sehe ich auch so. Am Ende ist es eine Investition die getätigt werden muss und auch die richtigen Personen müssen dafür da sein, die überhaupt den Antrieb haben sich mit dem ganzen auseinander zu setzen und natürlich muss das ganze auch irgendwie ausgerollt werden über Schulungen, etc.

    Das sind ziemliche Hürden und dann noch in einer Zeit, wo es mit dem Geld vielleicht schwierig ist. Wobei es vielleicht auch die Zeit ist zu investieren, damit man stärker aus der Krise rauskommt, als die Konkurenz.

    Sleepy und Tomarr

    Ich glaube den Rest könnt ihr per PN erledigen, oder? Sleepys Qualitäten als professioneller 3d Artist, hat nicht viel mit Home Office zu tun und ist eher ein Streit zwischen euch beiden, den sonst keiner Lust hat mitzulesen.


    Was Security angeht ist es bei mir ähnlich wie bei Rasputin


    Arbeite aber in einem großen Unternehmen mit vielen Standorten Weltweit, von daher gab es bei uns auch schon entsprechende IT Infrastruktur vor Corona, da man Weltweit zusammenarbeiten muss und das ganze ja auch auf Dienstreisen oder sonst wie mobil funktionieren muss. Regelmäßige Schulungen, Awareness Kampagnen und Audits gibt es natürlich auch.

    Auch Home Office an sich war eine Sache bei der ich einfach einen Tag vorher oder morgens einfach meinem Vorgesetzten kurz per Mail oder Chat Bescheid sagen konnte, wenn ich es machen wollte, außer natürlich es gab irgendwas wo es wichtig war, dass man präsent ist.


    Was Home Office an sich angeht. Das ganze ist ein zweischneidiges Schwert. Es gibt Dinge die gut funktionieren, vor allem, wenn es Arbeiten sind die man alleine macht und Konzentration erfordern wie Programmieren, Recherche, Berichte/Präsentationen machen, etc. Was etwas fehlt ist das spontane sich eine Meinung von Kollegen holen, etc. Was auch etwas fehlt ist z.B. auch die Möglichkeit, wenn z.B. etwas gemessen oder im Versuch erprobt wird, dass man mal kurz rüber kann, um sich davon ein Bild zu machen, statt nur die Zahlen und Daten zu sehen.


    Meetings im allgemeinen finde ich im Home Office fast besser, zumindest seit ich ein wireless Headset habe und auch mal stehen oder mich bewegen kann. Das ist bei dem ganzen Sitzen echt angenehm und man sitzt im Home Office einfach mehr, da man keine Laufwege hat. Was Skype/MS Teams oder sonstwas angeht, bin ich es schon gewohnt, da ich auch viel mit dem Ausland zu tun hatte.


    Auch gebe ich 2 Mal im Jahr eine 2-tägige Schulung, die jetzt natürlich Online stattfindet (dann an 3 halben Tagen), das funktioniert an sich gut, aber das Netzwerken während der Kaffee oder Mittagspause geht nicht mehr und es ist etwas schwer Kontakte zu knüpfen mit Leuten aus ähnlichen Fachrichtungen aus anderen Unternehmensbereichen, mit denen man in der Zukunft Erfahrung austauschen könnte. Auch ist es bei Online Schulungen eher so, dass ich nun ein weltweites Publikum habe und von daher 30-60 Teilnehmer statt 10 habe. Dadurch wird das ganze eher eine Ein-Mann-Show und geht ziemlich auf meine Stimme. Ist aber schön, dass eine Schulung, die ich ins Leben gebracht habe so viel Interesse findet.


    Es ist aber mal nett ins Büro zu gehen, und ein paar Kollegen zu treffen, auch wenn es gerade ziemlich leer ist.

    Wenn du dir mal die Definition der GetViewportSize funktion anschaust wirst du sehen, dass diese keine Variable als Input hat, sondern eine Referenz. Irgendwie sowas:

    Code
    GetViewportSize(FVector2D& ViewportSize)


    Was also in die Funktion übergeben wird ist eine Referenz auf die vorher erstellte Variable. Diese wird dann innerhalb der Funktion gesetzt.


    Warum man das macht hat etwas mit optimierung zu tun. Anstatt dass der Struct also 2 Mal existiert (Im Stack der Aufrufenden Funktion und im Stack der aufgeruften Funktion) wird einfach eine Referenz übergeben, und direkt auf der Speicherstelle des einen Structs geschrieben.

    Die Optimierung kann bei Structs oft Sinn ergeben (und ist nach UE4 Coding Guideline empfohlen), da es sich hier ja um Typen handelt die mehrere Variablen enthalten und somit einiges an Speicher durch die Gegend kopiert werden muss, wenn man nicht mit Referenzen arbeitet. Bei einfachen Typen sollte man es eher nicht machen, da diese meist einfacher als eine Speicheraddresse sind, gerade im 64Bit Systemen.

    Performance mäßig ist es mit den neuen Features echt ein ziemlicher schlag. Man kann auf UE4 konfiguration gehen, wenn man Lumen und Nanite abstellt, da hab ich dann UE4 performance gehabt.

    Nanite hab ich auch mal zum spaß auf eine alte Szene angewendet, um zu schauen ob es auch dort was hilft, war aber eher Contra Produktiv. Da muss ich aber mal genauer reinschauen, denn die Nanite Performance geht total in die Knie, wenn es auf Meshes angewendet wird die features haben, die Nanite nicht untersützt. Auf dem ersten Blick wirkt es sich aber positiv auf Draw Times aus, aber nicht auf meine GPU Times (da weiß ich aber nicht ob es eher Lumen ist).

    Es scheint aber Polycounts die UE4 überhaupt nicht handhaben kann zu erlauben, was ja so der Selling Point davon ist.

    Ich habe auch noch Material Basierte Bugs in meiner UE4 szene die ich rüber gebracht habe, vielleicht sollte ich mal von 0 an etwas machen.


    Bei Lumen muss ich auch nochmal schauen, wie es skaliert. Die ganzen Beispiele draußen mit wenigen Light Sources, funktionieren ganz gut, aber meine innen-Szene mit sehr vielen Lichtern mag das ganze zur Zeit nicht.


    Edit: Am Ende ist das ganze wie immer so der Deal: Höhere Performance Grundkosten, dafür bessere Skallierung oder mehr Features.

    Ich muss aber mal eine für UE5 gemachte Szene testen, in meinem Shooter Projekt ist es auch die AI und ein guter Teil des Animation Systemns die echt viel performance ziehen, da die unoptimiert ist.

    Ich muss ja sagen, dass mir das neue UI echt gefällt. Auch auf der C++ Seite hat sich nicht so viel geändert, außer ein paar Nervigen sachen, die aber auf lange Sicht sinnvoll sind (z.B. wird jetzt mehr auf Smart Pointer gesetzt als vorher, die gab es zwar auch in UE4, aber jetzt werden sie mehr genutzt.) Bei allen Funktionen die mit Asset Loading/Discovery zu tun hatten, hat es aber echt geknallt, auch hier wurde mehr auf intelligentere Typen umgestellt, statt irgendwelche Pointer.


    Endlich Dynamic GI zu haben ist echt schön und auch das Temporal Super Resolution funktioniert zumindest auf dem ersten Blick ähnlich gut wie DLSS.

    Jetzt zu meiner eigentlichen Frage:

    Ich habe meine Karten, ich habe die Decks, worauf der Spieler kein Zugriff haben soll. Sodass er diese nicht verändern kann.

    Nach meinem Verstädnis brauche ich also einen Dedicated Server und eine z.b. MySQL Datenbank, richtig?


    Also du musst zwei Dinge unterscheiden.

    In-Game:

    UE4 nutzt ein Authorative Server Networking. D.h. der Server hat immer recht, die Clients versuchen den Zustand auf dem Server nachzustellen. D.h. solange die kritische Gameplay Logik auf dem Server Läuft ist erstmal alles ok. Cheaten geht natürlich immer.


    Out-Game:

    Du willst ja dass die Decks der Spieler irgendwie gespeichert werden, aber nicht auf dem Rechner des Spielers. Von daher musst du noch einen Service Programmieren, welcher die Decks Speichern kann und eine Schnittstelle hat, mit der der Server, sowie die Clients (z.B. im Deck Building Menü) reden kann. Das musst du außerhalb von UE4 machen, z.B. dann über ein System aus Datenbanken (SQL, MongoDB, oder was auch immer du willst) und einen Applikations Server (z.B. über verschiedene node.js basierte Pakete, Wildfly, Springboot, oder gar Apache2+PHP). Da musst du natürlich irgendwie die kommunikation mit den Datenbanken, Kommunikation mit Clients (REST oder Websockets), Authentifizierung, etc machen.

    Generell ist es hier gut sich an Standards zu halten, dann kannst du z.B. den selben Service auch für eine Webseite nutzen.


    Meine Empfehlung. Mach erstmal den ersten Teil, damit du zuerst mal UE4 verstehst. Du musst nichts an der Engine Ändern, solange du einen Editor Build hast kannst du einen Dedicated Server über den Editor Starten bzw. auch über Command Line. Die Tutorials die du dafür siehst, sind eher für einen reinen Dedicated Server Build, der nichts anderes kann.

    Auch ein Listen Server ist meistens ok für Test Zwecke.

    Hier habe ich mal Cast erklärt, geht jedoch etwas tiefer in die technik zu dem was da passiert: RE: Variable in anderem Blueprint


    Wenn ich in dem Post von Pointern rede, dann geht es im eine Zeigervariable. Dies ist einfach eine Variable, welche eine Addresse im Speicher enthält und diese kann man nutzen um auf Objekte im Speicher zu zeigen und auf diese zuzugreifen. Jede Blueprint Variable, die von Typ Object oder Actor abstammt ist ein Zeiger auf entsprechendes Objekt/Actor.

    Dadruch dass eine Addresse kaum aussagt was da eigentlich drin steckt muss das Programm also dein Blueprint auch wissen, was sich hinter dieser Addresse verbirgt. Über Cast kannst du einen neuen Zeiger erzeugen, welcher auf die gleiche Addresse zeigt, jedoch einen anderen Typ vorgibt, der Cast funktioniert, wenn das ganze sinn ergibt und schlägt fehlt, wenn der Speicherinhalt nicht mit dem neuen Typ zusammenhängt.

    Die Freiheitsgrade sind mir hier jetzt das erste Mal begegnet.^^ Ich denke jetzt auf den ersten Blick, mit einem Controller der auch Bewegungen wahrnimmt, wenn man die Sticks kombiniert oder auch mit dem Druck auf eine zusätzliche Taste kombiniert, müsste sich das ja kaschieren lassen. Aber grundsätzlich hast Du bestimmt Recht damit, dass man diese beiden Dinge teilweise voneinander trennen muss.

    Die Frage ist mehr eine Frage wie man es vereint dass es Spieler mit einer Hardware leichter haben als andere. Mit einem Controller/Tastatur+Maus ziehlt man auf zwei Achsen (Maus X/Y, Control Stick X/Y), außerdem sind Kimme und Korn immer korrekt ausgerichtet. In VR musst du durch Motion Controls bei einer Pistole X,Y,Z,Yaw, Pitch, Roll richtig ausrichten und dann noch richtig durch Kimme und Korn schauen. Bei einem Gewehr zählt eher der Vector zwischen linkem und rechten controller also hast du X,Y,Z rechts X,Y,Z Links und roll von deiner dominanten Hand, also sieben Freinheitsgrade + du musst deinen Kopf so positionieren dass du durchs visier schaust. Die "micro"-aufgaben die man in VR als Spieler zu bewältigen hat sind daher schwieriger gerade in Stresssituationen.


    Dann wollte ich noch eine Sache ansprechen, von der ich erst vor kurzem erfahren habe, die mich sehr beunruhigt hat und quasi auch weg vom Thema VR gebracht hat. Es geht um die Motion Sickness. Hältst Du sie für sehr schädlich? Hast Du Dich ihr schon in stärkerem Maße ausgesetzt oder hast Du speziell trainiert, dass Du nicht mehr so anfällig dafür bist?

    Motionsickness bzw Simulationsickness ist nicht schädlich. An sich passiert folgendes:

    Wenn du dich in VR bewegt aber in der echten Welt nicht (z.B. du kippst den Stick des Controllers nach vorne und dein Character läuft nach vorne). So nimmt dein Auge eine Bewegung wahr, vielleicht auf deine Ohren, dadurch dass sich ja soundquellen bewegen. Wir haben aber ein Organ im Innenohr, welches Bewegungen spürt, diese fühlt die Bewegung nicht, da du dich ja nicht in Wirklichkeit bewegst. Führ unser Gehirn heißt es also, du siehst dass du dich bewegst, aber du spürst es nicht, du musst also Krank oder vergiftet sein und du fühlst dich übel. Das ganze passiert einigen auch wenn sie am Bildschirm spielen, ich hatte es z.B. bei großen Bildschirmen wo ich den Rand nicht richtig im Blick hatte.

    Du kannst das ganze normalerweise weg trainieren. Starte mit VR Spielen in denen du dich nur Fortbewegen kannst in dem du dich selbst im Raum bewegst (hier hast du normalerweise keine Übelkeit, da hier alles stimmt, du siehst die Bewegung und fühlst sie auch, da du dich wirklich bewegst) oder dich teleportierst (hier ist die Bewegung so schnell, dass du sie nicht als Bewegung wahrnimmst). Damit gewöhnst du dich zunächst mal an VR.

    Irgendwann fängst du mit Spielen an, bei denen du dich auch künstlich bewegen kannst. Wenn dir dabei schlecht wird, hörst du am besten so schnell wie möglich auf und machst für den Tag pause, oder mindestens so lange bis es dir wieder gut geht. Generell wird empfohlen nicht durch zu powern, mit der Theorie, dass dein Unterbewusstsein anfangen kann VR mit Übelkeit zu verbinden, außerdem ist es nicht angenehm so zu spielen. Deine Sessions sollten dann länger werden und nach paar Tagen oder Wochen ist es gar kein Problem.

    Am Ende ist es Kopfsache, also musst du deinem Unterbewusstsein antrainieren, dass es normal ist. Was auch hilft ist z.B. beim künstlichen Laufen in VR auf der Stelle zu laufen, um deinen Verstand etwas auszutricksen.

    Was meinst Du denn in diesem Fall genau mit Constraints und Handles und was hast Du mit dem Plugin im Bezug auf das bekommen?

    Physics constraints und physics handles. Das Plugin hat etwas erweiterte Version davon, zudem hat es schon ein setup für Physikalische Interaktionen in VR, d.h. statt dass die Hände fest sind und somit durch objekte durch müssen, reagieren diese auf Physik oder z.B. auch das Gewicht von Objekten. Eine Weile war es bei VR die Annahme dass controller position und in-game hand position perfekt stimmen müssen. Spiele wie Boneworks oder auch Blade & Sorcery haben aber gezeigt, dass es viel cooler ist, wenn die Hände auch einen Fehler haben dürfen, der physikalisch bedingt ist, so dass Masse besser zur geltung kommt.


    Hast Du vor Deine Projekte noch auf eine andere Art miteinander zu verbinden, außer, dass Du die Gegner ins VR Projekt holen willst? Ich hab ja leider kein VR. Wäre es denn denkbar, dass es am Ende nur ein Spiel gibt, das man mit VR oder ohne spielen kann?

    Ich glaube ein gutes VR spiel ist nur in VR programmiert und genauso ein gutes traditionelles Spiel nur dafür. Eine Ausnahme wäre ein Asymetrisches Spiel. In einem Shooter in VR ist es ja so dass Zielen nun eine aktion ist die 6 Freiheitsgrade hat, während in einem traditionen Shooter nur 2 Freiheitsgrade existieren. Von daher muss man Kämpfe einfacher designen. Auch muss man irgendwo lernen wie man zieht: Worauf fokussiere ich meinen Blick? wie nutze ich Kimme und Korn? wie ziehle ich mit zwei offenen Augen?

    Auch so Dinge wie nachladen laufen in VR so, dass man die ganze aktion selber ausführt, während es traditionell einfach eine animation mit fester Zeit ist. In VR wäre das Nachladen also schneller, wenn man die Bewegungen drauf hat, oder langsamer wenn es nicht so ist. Da VR auch sehr physiklastig ist, ist auch einiges möglich wie z.B. die Waffe irgendwo anlehnen und damit den Rückstoß dämpfen. Von daher sind beide sehr anders programmiert und auch das Gameplay Design ist anders.


    Was sind so die grundlegenden Gedanken zu Shootern die Du Dir gemacht hast, die Dich dazu gebracht haben wieder an einem zu arbeiten? Geht es da etwa eher um einzelne Szenen in denen bestimmte Konstellationen von Gegnern auftreten, oder in denen man quasi unter gewissen Einschränkungen leidet oder um grundsätzlichere Überlegungen zur Spielmechanik?

    Im Grunde habe ich ja in dem anderen Projekt viel gelernt wie ich Dinge implementiere, wie z.B. ein Attachmentsystem, grundlegend was für Dinge ich bei verschiedenen Actors beachten sollte, wie ich eine Gegner KI implementiere. Am meisten kommt auch dazu dass ich einfach viele 3D modelle gesammelt habe mit Bezug auf modern FPS.

    Ich mag eigentlich langsamere Taktik shooter wie Rainbow Six 3 Ravenshield oder SWAT4 und VR scheint mir hier ein guter Fit zu sein da man auch eher langsam vorgeht. Ein wenig ist Onward VR mein Vorbild, nur mehr Innenräume.

    Mein Fokus ist, dass sich Waffen authentisch Anfühlen, schließlich sind das die Objekte die der Spieler die meiste Zeit in der Hand hält und die meiste Zeit sieht. Deswegen gibt es auch großen Fokus darauf dass die Visiere gut funktionieren, da der Spieler ja einen großen Teil der Spielzeit da durch schauen wird.

    Ich mag ja Tactic Shooter wo man mehrere Leute steuert oder halt aus der Egoperspektive noch NPC's Befehle gibt, genau wie Party RPG's, lieber, weil ich es realistischer finde. Wäre es möglich, dass so etwas auch noch kommt?

    Fände ich cool, ich glaube aber nicht dass ich in naher Zeit NPCs hinbekomme die so intelligent sind, dass sie nicht nerven.

    Ansonsten wollte ich nur noch die englischsprachige Kommentation ansprechen. Ich meine, es ist schon alles relativ gut verständlich und ermöglicht natürlich viel mehr Menschen einen Einblick, aber ich persönlich bevorzuge deutschsprachige Beiträge eben doch, weil dann immer irgendwelche Begriffe auftauchen die ich googeln muss oder bei denen ich den ganzen Zusammenhang nicht verstehe und das irgendwie die Atmosphäre beeinträchtigt.

    Das mit dem Englisch hat den Grund, dass ich im Form bleiben will bzw. besser werden will. Mir fehlt da zur Zeit auch etwas die Praxis, anders als vor 1-2 Jahren, da hatte ich noch ein Projekt mit einem US Autohersteller und einen Kollegen in Japan, den ich ein-lernen musste, wobei ich mit letzterem auch teilweise Japanisch sprechen konnte.

    Postest du auch hier hin und wieder updates?

    Zur Zeit ist mein Interesse bei VR. Von daher wird es auch eher nur updates in diesem Thread geben.

    Ich habe mal wieder Lust was zu schreiben. Da das was ich zur Zeit mache von meinem Ursprünglichen Shooter entkapselt hat mache ich mal ein neues Thema auf.


    Da ich letztes Jahr wegen Kurzarbeit (zwar nicht viel) doch etwas Zeit hatte, habe ich mich mal mit VR etwas mehr auseinander gesetzt, wann immer ich Zeit und Lust hatte. Ich hatte ja schon viele Assets und Gedanken zu Shootern gemacht. Daher bleibt es auch bei einem Shooter. In VR funktioniert das Spielprinzip auch ganz gut, da Zielen und Schießen relativ schön funktioniert.


    Nachdem ich bei meinem From Scratch Ansatz gemerkt habe, dass ich Teile der Physikkomponenten (Constraints, Handles) anpacken muss, habe ich zuerst aufgegeben, da das für ein Hobby etwas zu viel ist, jedoch bin ich dann auf ein nettes Plugin gestoßen: https://vreue4.com/

    Als kleine Warnung: Das Plugin ist nicht unbedingt trivial zu nutzen, vor allem, wenn man etwas ganz eigenes damit machen will. Man sollte schon fremden C++ Code lesen und verstehen können.


    Das resultierte dann in meinen ersten Versuch:

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Das Ganze habe ich dann mal eine Weile liegen lassen und bin anderen Dingen nachgegangen.

    Irgendwann hat es mich wieder gepackt, gerade wo die Restriktionen wieder strenger wurden. Dieses Mal habe ich auch mal versucht die Videos zu kommentieren, ich bin damit zur Zeit nicht zufrieden. Anders als wenn ich Simulations- oder Entwicklungsergebnisse vorstelle, bin ich hier aber total unvorbereitet, was man echt merkt. Ich werde es aber mal so durchziehen, da ich glaube, dass es eine Fähigkeit ist die praktisch sein kann.

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Und hier mal mein zweiter Devlog des Jahres.

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Was ist mein Ziel: Mir geht es hierbei nur einfach mal wieder darum etwas zu Entwickeln und dabei Spaß zu haben und mit etwas neuem Erfahrung zu sammeln. Mein erstes Ziel ist es soweit zu kommen, dass ich hier ein Loadout system habe und durch einen kleinen Kurs laufen kann auf dem man auf Zielscheiben schießen kann. Danach will ich mal Control Rig lernen und einen Full Body Controller damit machen. Dann schau ich mal ob ich die Gegner KI aus meinem anderen Projekt hier mit rein portiere, damit es etwas interessanteres gibt.


    Zur Zeit geht es relativ stark in Richtung von Simulation, das macht natürlich Spaß zu implementieren, da man auch etwas hat woran man sich orientieren kann, aber wenn so etwas ein richtiges Produkt wird (was in meinem Fall wahrscheinlich nicht der Fall sein wird, eher landet der Source Code unter MIT Lizenz auf github), muss man sich natürlich Gedanken machen wie weit man da wirklich gehen sollte.


    Ihr könnt gerne Fragen stellen wie ich etwas gemacht habe, oder was ich mir zu irgendetwas von dem gezeigten gedacht habe. Ich versuche zumindest eine theoretische Antwort zu geben.