Jan 09

Worklog RK Rocket #3: Sound per XAudio2

RK RocketMit Audio-Wiedergabe per DirectX habe ich mit bis dato nicht wirklich beschäftigt – schlicht noch nie gebraucht. Bei einem Spiel wie RK Rocket sieht das aber anders aus, denn wenn der Spieler feuert, ein Ziel trifft oder getroffen wird, sollte auch ein entsprechender Ton aus den Lautsprechern kommen. Neben der technischen Umsetzung gibt es für mich an dieser Stelle das Problem, den richtigen Content (=Sound-Dateien) zu bekommen, die auch zur Lizenz des Quellcodes von RK Rocket passen (=LGPL). Am Ende war beides glücklicherweise deutlich einfacher, als gedacht. Weiterlesen

Sep 20

Worklog RK Rocket #2: Maus, Tastatur, Gamepad

Inputs bei RK RocketFür RK Rocket habe ich damit begonnen, das Eingabe-System von Seeing# vernünftig auszuprogrammieren. Eingabesystem bedeutet in diesem Fall, dass Seeing# im Hintergrund automatisch die Status-Werte der angebundenen Eingabegeräte unabhängig von der aktuellen Oberflächen-Technologie (WPF, Win.Forms, WinRT) abfragt, in ein gemeinsames Format bring und dann an die aktuellen Spiele-Komponenten weiterleitet. Das klingt erst einmal einfach, ist aber nicht ganz zu unterschätzen. Probleme kommen etwa daher, weil auch jede Oberflächen-Technologie in Windows seine API ein bisschen anders bereitstellt. Weiterhin macht die Architektur von Seeing# selbst die Aufgabe nicht einfacher, da konsequent auf Multithreading, Multi-View und theoretisch auch mehrere Szenen gesetzt wird. Weiterlesen

Sep 13

Worklog RK Rocket #1: Basics

Scrreenshot von RK RocketAktuell arbeite ich relativ viel an der Integration von Direct2D in Seeing#. Diese API ist für mich der interessanteste Weg, 2D-Funktionen in eine auf Direct3D basierende 3D-Engine zu bringen. Man arbeitet mit aus anderen APIs bekannten einfachen Funktionen wie DrawRect, DrawLine oder DrawBitmap, ist aber vollständig hardwarebeschleunigt unterwegs und man kann direkt auf Texturen zeichnen, welche auf ein 3D-Objekt geklatscht werden. Oder schlich in den Vorder- bzw. Hintergrund der 3D-Ansicht. RK Rocket ist ein kleines Spiel, anhand dem ich die 2D-Funktionen in Seeing# integriere und direkt teste. Es ist ein einfaches kleines Game, inspiriert vom Rockout-Beispiel der Programmiersprache BlitzMax [1]. Es wird als UWP App erstellt und ist somit auf möglichst allen Windows 10 Geräten lauffähig. Weiterlesen