Game Engine Math

Kategorie: KWEngine

  • KWEngine, Teil 1: Erstellen des Projekts

    Wie wird ein VisualStudio-Projekt (C#) erstellt und die für KWEngine benötigten Bibliotheken eingebunden. Lesen Sie diesen Artikel für alle Infos!

  • KWEngine, Teil 2: Objekte darstellen

    Wie werden Objekte erzeugt? Wie können Texturen und Farben ausgewählt werden? Dieser Beitrag erklärt anhand von kurzen Beispielen den Ablauf!

  • KWEngine, Teil 3: Objekte steuern

    Objekte können entweder über die Tastatur oder die Maus gesteuert werden. Wie genau das funktioniert, wird in diesem Beitrag beschrieben.

  • KWEngine, Teil 4: Objekte finden

    Die Interaktion zwischen Objekten kann auf unterschiedliche Weisen erfolgen. Dieser Beitrag beschreibt zwei Wege, um dies zu realisieren.

  • KWEngine, Teil 5: Kollisionsbehandlung

    Kollisionen sind ein wichtiger Teil einer Game-Engine. Wie Kollisionen erkannt und behandelt werden, wird in diesem Beitrag erläutert.

  • KWEngine, Teil 6: Eigene 3D-Modelle einbinden

    KWEngine unterstützt die gängigen Formate OBJ, DAE, FBX und GLB für 3D-Modelle. Wie diese Modelle eingebunden werden, lesen Sie in diesem Beitrag.

  • KWEngine, Teil 7: First und Third Person View

    Dieser Beitrag beschäftigt sich mit der First-Person- und Third-Person-Kameraperspektive für die KWEngine.

  • KWEngine, Teil 8: Mauszeigerinteraktionen und Lichter

    In diesem Beitrag wird erläutert, wie 2D-Mauskoordinaten in 3D-Koordinaten übersetzt werden können. Zusätzlich werden Lichtquellen verwendet, um die Szene zu bereichern.

  • KWEngine, Teil 9: Eine simple Sprungmechanik

    In diesem Artikel wird eine rudimentäre Sprungmechanik für die KWEngine erläutert.

  • KWEngine, Teil 10: Animationen von 3D-Modellen steuern

    In diesem Beitrag wird anhand eines Beispiels erläutert, wie Animationen von 3D-Modellen gesteuert werden.

  • KWEngine, Teil 11: Mehr Mauszeigerinteraktionen

    In diesem Beitrag werden zwei Methoden zur Schnittpunktberechnung zwischen einem Strahl und einer Hitbox vorgestellt.

  • KWEngine, Teil 12: Hintergrundbilder und Texturen verwenden

    In diesem Beitrag wird erläutert, wie Hintergrundbilder und Texturen auf Objekte angewendet werden können.

  • KWEngine, Teil 13: HUD-Objekte hinzufügen

    In diesem Beitrag geht es um das Platzieren von HUD-Objekten auf dem Bildschirm.

  • KWEngine, Teil 14: Rotationen relativ zu Objekten

    In diesem Beitrag geht es um verschiedene Arten von Rotationen, die sich allesamt in Relation zu einem bestimmten Objekt befinden. Die gezeigten Beispiele werden i.d.R. in Videospielen benötigt.

  • KWEngine, Teil 15: Abprallen bei Kollision

    Kollidiert ein Objekt mit einem anderen Objekt, kann es von diesem abprallen, indem es seine Ausrichtung (Rotation) neu berechnet. Die Ausrichtung ist dabei abhängig von der Kollisionsfläche und ihrer Ausrichtung. Die Ausrichtung einer Fläche wird durch einen Vector3 bestimmt – die ColliderSurfaceNormal. Die ColliderSurfaceNormal ist eine Art Pfeil, der senkrecht auf der Fläche steht: Die…

  • KWEngine, Teil 16: Objekte an Stellen anderer Objekte anheften

    Damit ein GameObject (z.B. eine Spielfigur) ein anderes GameObject (z.B. ein Waffenmodell) z.B. in der Hand führen kann, müssen mehrere Bedingungen erfüllt sein: Der benötigte Code kann in der Prepare()-Methode der Welt-Klasse positioniert werden: Um herauszufinden, welche Knochen ein 3D-Modell zur Verfügung stellt, können Sie z.B. folgenden Befehl verwenden: Wie werden Objekte wieder gelöst? Für…

  • KWEngine, Teil 17: Explosionen und Partikeleffekte

    KWEngine bietet eine Reihe vorgefertigter Explosions- und Partikeleffekte, mit deren Hilfe eine Spielszene mit zusätzlichen Informationen angereichert werden kann. Explosionen Explosionen haben in KWEngine eine eigene Klasse und können (ähnlich einer GameObject-Instanz) den Welten hinzugefügt werden. Im Gegensatz zu normalen GameObject-Instanzen entfernen sich die Explosionsobjekte jedoch selbständig aus ihren Welten, wenn der Explosionseffekt abgespielt wurde.…

  • KWEngine, Teil 18: Unebenes Terrain

    Ein Terrain-Modell ist ein 3D-Modell wie jedes andere. Man muss es aber zunächst generieren lassen. Dazu braucht man eine Height-Map. Eine Height-Map ist ein Graustufenbild, in dem die hellen Pixel die Höhe des Terrains angeben. Dunkle Pixel bedeuten hingegen, dass das Terrain an diesen Stellen wenig oder gar keine Höhe aufweist. Das Terrain-Modell sollte zu…

  • KWEngine, Teil 19: Eltern-Kind-Beziehungen

    In Spielszenen haben Objekte oft Beziehungen zueinander: Im folgenden Beispiel bewegt sich die Spielfigur bei Betätigung der A-Taste jeden Frame um 0.01 Einheiten auf der x-Achse nach links. Ein Objekt der Klasse PowerUp existiert ebenfalls in der Welt und hat anfangs keinen „Besitzer“. Es wartet also darauf, eingesammelt zu werden. Die Player-Klasse ist somit für…

  • KWEngine, Teil 20: Sichtbereiche von Objekten

    Fall #1: Blickt eine Spielfigur direkt auf ein Objekt? Mit der Methode IsLookingAt() kann eine Spielfigur prüfen, ob ihr Look-At-Vector (kurz: LAV) durch die (für den Test kugelförmige) Hitbox einer anderen Spielfigur verläuft: Fall #2: Befindet sich ein Gegner im Sichtfeld? Um den Winkel auszurechnen benötigt man folgende Formel:

  • KWEngine, Teil 21: 2D-Objekte darstellen

    Eigentlich ist die Engine für 3D-Objekte konzipiert und optimiert, aber wenn Sie möchten, können Sie auch 2D-Objekte darstellen. Dies geschieht, indem Sie als 3D-Modell das bereits in der Engine enthaltene Modell „KWQuad“ verwenden. Ein KWQuad ist einfach nur ein flaches Quadrat, das intern jedoch eine unsichtbare 3D-Hitbox verwendet, damit es auch mit 3D-Objekten interagieren kann.…

  • KWEngine, Teil 22: Raytracing-Kollisionen

    1) Überprüfung, ob Instanzen bestimmter Klassen von einem Teststrahl getroffen werden Wenn Sie z.B. überprüfen möchten, ob Instanzen bestimmter Klassen im Blickfeld eines anderen Objekts liegen, können Sie wie folgt vorgehen: 2) Schnellere (aber ungenaue) Überprüfung, ob Instanzen bestimmter Klassen getroffen werden Wenn Sie keine punktgenaue Analyse benötigen, können Sie sich viele unnötige Berechnungen sparen,…

  • KWEngine, Teil 23: Events zeitlich planen

    Wenn Sie z.B. eine gegnerische Instanz zeitversetzt entstehen lassen möchten, können Sie solche Events planen: Hinweis zu Zeile 33: