FPS-Spiele (Ego-Shooter, Ego-Shooter) sind seit dem Aufkommen des beliebtesten
Wolfenstein 3D im Jahr 1992 ein fester Bestandteil der Videospielbranche geworden. Seitdem hat sich das Genre weiterentwickelt: Die Grafik hat sich verbessert, die Entwicklungsbudgets sind gestiegen und das E-Sports-Ökosystem hat sich entwickelt. Aber was ist mit ihrer Schießmechanik? Wie war die Entwicklung an dieser Front? Warum scheinen Waffen in manchen Spielen real und in anderen wie Spielzeug?
Hitscan
In der Vergangenheit verwendeten viele Spiele zum Rendern von 3D-Szenen in 2D-Bilder eine als
Raycasting bezeichnete Technik. Durch Raycasting kann die Engine das erste Objekt bestimmen, mit dem sich der Strahl schneidet. Aber dann stellten die Entwickler die Frage: „Was ist, wenn Sie einen Strahl aus dem Lauf der Waffe werfen, um eine Kugel zu simulieren?“ Dank dieser Idee entstand ein Treffer-Scan („hit scanning“).
Raycasting-BeispielIn den meisten Implementierungen von Waffen mit Treffern führt die physische Engine beim Feuern eines Spielers die folgenden Vorgänge aus:
- Definiert die Richtung, in die die Waffe zeigt.
- Löst einen Strahl aus einem Waffenrohr in einem vorgegebenen Abstand aus.
- Verwendet Raycasting, um festzustellen, ob ein Strahl das Objekt getroffen hat.
Wenn der Motor feststellt, dass sich das Objekt in der Schusslinie befindet, informiert er ihn darüber und sagt, dass die Kugel ihn „getroffen“ hat. Dann kann das Ziel alle notwendigen Berechnungen durchführen, um den Schaden aufzuzeichnen.
Aus der Einheit . Punkt A bezeichnet eine Waffe, die einen Strahl bis zum Maximalpunkt B abgibt. Der Strahl kollidiert mit einem Würfel, gegen den der Motor einen Treffer meldet.Hitscan ist von Natur aus einfach, aber es können viele verschiedene Änderungen vorgenommen werden, um andere Logik hinzuzufügen:
- Wenn wir den Strahl über das erste Objekt hinaus fortsetzen, auf das er trifft, können wir mehrere Objekte auf der Linie durchstoßen, z. B. die Railgun in Quake
- Wenn wir die maximale Reichweite vom Strahl entfernen, erhalten wir einen Laser, der für immer fliegt, bis er auf etwas trifft
- Sie können einige Oberflächen programmgesteuert reflektieren lassen, sodass Kugeln von ihnen abprallen
Overwatch. Die Fähigkeit zur Ablenkung von Genji-Zeichen ist ein Beispiel für eine reflektierende Oberfläche.Der Hauptvorteil von Raycasting ist die enorme Verarbeitungsgeschwindigkeit. Es ist schnell berechnet und benötigt keinen zusätzlichen Speicher oder Prozessorzeit, um ein neues physisches Objekt zu erstellen. Dies bedeutet, dass der Netzwerkcode, der zum Synchronisieren mehrerer Clients erforderlich ist, minimal ist, da der Server nur die Richtung des Strahls verfolgen muss. Rückstoß ist auch einfach zu realisieren, um diesen Effekt zu simulieren, genügt es, eine leichte Abweichung im Blickfeld der Waffe hinzuzufügen.
Daher ist es nicht verwunderlich, dass Treffer in der Schießlogik vieler Spiele verwendet werden. Klassische Beispiele sind
Wolfenstein 3D und
Doom , aber diese Technologie wird auch in modernen Spielen verwendet. Charaktere wie Soldier 76, McCree und die
Overwatch Doom Widow verwenden Waffen mit Treffer-Scan, und die meisten Waffen in
Call of Duty basieren ebenfalls auf Treffer-Scan.
Overwatch, Call of Duty, Wolfenstein 3DWarum wird dieser Ansatz nicht in allen Spielen verwendet?
Erstens haben die Strahlen, wie Sie wahrscheinlich bemerkt haben, eine unendlich hohe Bewegungsgeschwindigkeit, dh sie erreichen sofort den Endpunkt. Es ist keine Zeit für die Bewegung einer Kugel zwischen dem Abschuss einer Kugel und dem Auftreffen auf ein Objekt. Das heißt, wenn ein Strahl auf ein Objekt trifft, ist es unmöglich, einer Kugel auszuweichen, auch wenn sich das Ziel mehrere Kilometer vom Spieler entfernt befindet.
Halo. Beachten Sie, dass der Mündungsblitz und die Auswirkungen eines Aufpralls gleichzeitig auftreten.Zweitens verwenden die meisten Hitscan-Implementierungen direkte Strahlen. Dies bedeutet, dass es schwierig ist, Wind, Schwerkraft und andere äußere Faktoren zu berücksichtigen, die die Kugel nach dem Herausfliegen aus dem Kofferraum beeinflussen können. Programmierer können alle Arten von Tricks hinzufügen, damit der Strahl echte Kugeln imitiert. Sobald der Spieler den Strahl "abschießt", besteht jedoch keine Möglichkeit, seinen Pfad in der Mitte zu ändern.
In vielen Casual Games wird noch immer Hitscan verwendet, da es den meisten neuen Spielern die Lernkurve erleichtert. Aber was ist mit Spielen, die das "echte" Gefühl des Schießens vermitteln sollen? Mit solchen Einschränkungen ist dies unmöglich zu erreichen, so dass eine andere Methode erforderlich ist.
Ballistik eines Flugobjekts
Dieser Begriff mag kompliziert erscheinen, auf abstrakter Ebene ist die Idee jedoch recht einfach. Jede Kugel oder jedes Projektil, die von einer Waffe abgefeuert wird, erzeugt ein neues physisches Objekt in der Szene. Es hat eine eigene Masse, Geschwindigkeit und Begrenzungsbox des Kontakts (Hitbox), die von der Game-Engine verfolgt werden.
Max Payne 3Die Vorteile der Ballistik kommen in Spielen voll zum Tragen, in denen der Realismus die höchste Priorität hat. Da jedes Flugobjekt für sich existiert, können wir den Einfluss von Wind, Reibung, Schwerkraft und Temperatur berücksichtigen - jede Kraft, die auf die Kugel einwirken sollte. Jetzt, da wir in der Lage sind, die Physik zu ändern, können die Spieler verschiedenste Waffen verwenden, nicht nur einfache Pistolen und Laser. Wir können Granaten und Raketen in unser Arsenal aufnehmen.
Da sich Kugeln in einem solchen System nicht mit Lichtgeschwindigkeit bewegen, ist es auch möglich, zeitliche Eigenschaften zu realisieren:
- Bullet Time von Max Payne , Sniper Elite und Superhot .
- Die Verweildauer des Geschosses, das heißt, wenn auf große Entfernungen geschossen wird (oder wenn ein sich langsam bewegendes Projektil abgefeuert wird), wird die Vorrangstellung kritisch.
- Verzögerte Granatenexplosionen wie Granaten
Aufgrund dieser zusätzlichen Berechnungen wird die Verarbeitung teurer als die Verwendung von Hitscan. Um die Synchronisation zu gewährleisten, müssen Server viel mehr Arbeit leisten. Es ist notwendig, Unstimmigkeiten oder Konflikte in der Logik auf der Clientseite zu beseitigen, damit sich alle Spieler auf demselben Server unter den gleichen Bedingungen befinden.
Superhot, Battlefield 1, OverwatchEs gibt viele Problemumgehungen, um die Produktivität zu maximieren. Beispielsweise kann die Engine einen Pool von Objekten speichern, die vor dem Start des Spiels geladen wurden, und diese bei Bedarf aktivieren. Nach dem Auftreffen auf der Oberfläche können Sie die Animation der Ballistik abspielen und die Kugel ausschalten, um sie für die Zukunft zu speichern. Mit dieser Methode können Sie Rechenressourcen und Speicher einsparen, die durch die mehrfache Erstellung und Zerstörung von Objekten belegt werden.
Es gibt auch viele Möglichkeiten, Berechnungen durchzuführen, aber auf einer hohen Ebene liegt der Unterschied darin, wo sie sich entscheiden, den "Takt" des Spiels zu verarbeiten - eine Zeiteinheit:
- Die Uhr wird separat von der Renderlogik berechnet, dh das Spiel gibt Objekte auch dann genauer wieder, wenn Frames übersprungen werden. Es ist mehr Logik erforderlich, um die genaue Zeit zu berechnen, die seit dem vorherigen Rendern vergangen ist.
- Berechnung eines Maßes in jedem Rahmen; Physik an Bildrate binden. Wenn Sie die Beschränkung der maximalen Framerate deaktivieren oder das Spiel beginnt, Frames zu überspringen, beschleunigt oder verlangsamt sich die Physik der Welt.
Die Auswirkungen der Verknüpfung von Bewegung mit Takten sind deutlich sichtbar, wenn sich die Muscheln schnell genug bewegen, um eine relativ große Distanz zwischen Takten zurückzulegen. Situationen können entstehen, wenn Objekte sich gegenseitig "passieren", weil sie sich im Motor nie überschneiden.
Das alles scheint kompliziert, so viele Leute denken, dass dies eine relativ neue Methode ist; es kam jedoch tatsächlich vor hitscan zustande! Vor den FPS-Spielen gab es viele Top-Down-Schützen wie
Asteroids ,
Space Invaders oder
Galaxian . Dies sind Arcade-Spiele der 70er Jahre, in denen die Ballistik von Muscheln bereits implementiert wurde, wenn auch recht primitiv.
Asteroiden. Muscheln sind ziemlich schwer zu sehen, aber sie sind es!Aber trotz all dieser Eigenschaften können wir kein realistisches Modell der realen Welt erstellen. Gibt es eine Möglichkeit, beide Methoden zu nutzen?
Hybride Systeme
Die meisten Spiele-Engines können beide Arten von Geschosssimulationen verarbeiten: Trefferabtastung und Ballistik. Auf diese Weise können Sie eine riesige Auswahl an Waffen realisieren. Spiele wie
Halo ,
GTA und
Half-Life haben Waffen, die beide Arten von Physik unterstützen können.
Halo. Das Sturmgewehr verwendet einen Treffer-Scan. Needler verwendet eine ProjektilballistikEntwickler können auch beide Techniken mischen, um die Schwächen jedes Systems zu decken und ein realistischeres Verhalten zu erzielen. Um beispielsweise das Problem des gegenseitigen Durchdringens von Objekten zu beseitigen, kann jede Kugel in jedem Zyklus des Motors einen Strahl abgeben. Auf diese Weise kann der Motor feststellen, ob sich die Strahlen zwischen den Messungen kreuzen und in der Luft kollidieren.
Sie können auch kombiniert werden, um die Funktionen des Spiels zu verbessern. Ein gutes Beispiel dafür ist die
Sniper Elite- Serie. Nach dem Drücken des Abzugs ermittelt die Engine anhand des Trefferscans, ob der Schuss nahe genug an einem erkennbaren Objekt liegt, um eine Zeitlupe auszulösen. Wenn ja, wird eine Kugel mit der Berechnung der Ballistik im "Kugel-Zeit" -Modus abgefeuert.
ScharfschützeneliteAlso haben wir die Grundlagen des Verhaltens von Kugeln in Videospielen untersucht! Interessanterweise liegen die Verbesserungen in diesem Bereich hauptsächlich in kleinen Optimierungen und Verbesserungen und nicht in der Verarbeitung in großem Maßstab. Nach der Veröffentlichung der ersten revolutionären Spiele haben wir keine wesentlichen Schritte oder Durchbrüche gemacht.
Was kommt als nächstes Wie wird sich dieser Bereich in Zukunft entwickeln?
Ich denke nicht, dass der hybride Ansatz in naher Zukunft verschwinden wird, da er zusätzliche Vorteile bietet. Ich gehe jedoch davon aus, dass sich die Ballistik der Granaten erheblich verbessern wird. Die Taktberechnungsfrequenz nimmt weiter zu (schließlich steigt die CPU-Leistung), und wir können uns der asymptotischen Grenze der Simulation der Kugel der „realen Welt“ nähern.