Nov 09

RK2048 – Universal-App fast fertig

RK 2048 LogoRK2048 ist mein erstes „Abenteuer“ eine App mit weitgehend gleichem Coding auf mehreren Plattformen zu entwickeln und zu veröffentlichen. Genau genommen handelt es sich um (fast alle) aktuellen Windows-Plattformen von Windows Phone (8.1) über Windows RT bzw. Windows Store Apps bis Windows Desktop (Wpf). Es ist überraschend, wie gut das mittlerweile zwischen Phone und Tablet funktioniert, einzig WPF ist bei den Standard-Projekttemplates noch etwas außen vor. Im Windows Store ist die erste Version schon veröffentlicht, Windows Phone folgt (hoffentlich) relativ bald. Auch ein Setup für die Desktop-Version ist bereits verfügbar. Weiterlesen

Aug 24

Kein MEF für Universal Apps?

Das Konzept hinter den Universal Apps finde ich sehr gut, wie in den letzten Beiträgen geschrieben wende ich es gerade testhalber bei RK 2048 an. Ein Negativpunkt für mich ist aber die fehlende Unterstützung für System.Composition. Bei WinRT für Tablets / Desktop gibt es den Umweg über MEF 2, welcher eigentlich auch relativ gut funktioniert. Für das Windows Phone scheint es das aber nach wie vor nicht zu geben, derweil ist die Funktionalität m. E. schon sehr praktisch. Damit ich trotzdem etwas Ähnliches habe, habe ich mir entsprechend selber Klassen dafür geschrieben, die auch mit dem Universal App Template laufen. Weiterlesen

Jul 02

RK 2048 – Ein Spiel vollständig als Universal App entwickelt

ThumbnailEin völlig verregneter Sonntag, nichts wirklich vor, was kommt dabei raus? Richtig, ein kleines Spiel. Letzten Sonntag habe ich die frisch auf Windows Phone portierte 3D-Engine verwendet, um einen kleinen 2048 Klon zu bauen. Der Screenshot zeigt das Ergebnis. Sieht an sich relativ gut aus und funktioniert auch überraschend gut. Ein paar Bugs gibt es sicherlich noch, ein paar Optimierungen für das Phone sind noch nötig, viel mehr als einen weiteren solchen verregneten Tag braucht es aber höchstwahrscheinlich nicht mehr. Das Besondere an dem Thema von der technischen Seite ist, dass es das neue Template für Universal Apps verwendet. Der gleiche Code läuft also für Windows 8.1 und für Windows Phone 8.1 – ganz ohne Compiler-Flags oder dergleichen. Weiterlesen

Jun 16

Portierung einer 3D-Engine auf Windows Phone #3

Phone 8.1 AppVor einigen Wochen habe ich meinen 3D-Renderer auf Windows Phone 8.0 stabil zum Laufen bekommen und bin dabei auf die eine oder andere Hürde gestoßen. Da mittlerweile das Windows Phone 8.1 SDK verfügbar ist und auch SharpDX die entsprechenden Funktionen implementiert, konnte ich nun also einen neueren Weg ausprobieren – die Universal Apps. Vorteil: Dieser Weg verspricht, dass das Coding zwischen WinRT auf normalen Windows PCs und Windows Phone fast komplett identisch ist. Auch SharpDX verspricht, dass dieser Weg damit bereits gut funktioniert und nebenbei eine ganze Liste Nachteile der vorherigen Lösung ausbügelt. Weiterlesen

Mai 25

Laden von Texturen auch auf Windows Phone

SkyboxDirectX auf Windows Phone hat zwar zu einem großen Teil die gleiche API, wie auf dem Desktop, drum herum ist es aber z. T. stark eingeschränkt. Neben den Punkten aus den letzten Blog-Beiträgen (z. B. fehlendes Direct2D) hatte ich zusätzlich das Problem, dass ich bis jetzt fast durchweg png Dateien als Texturen verwendet habe. Grundsätzlich ja kein blöder Gedanke: Ein einfaches Dateiformat, welches man auch mit jedem Bildbearbeitungsprogramm bearbeiten und auch problemlos in eigenen Programmen verwenden kann. Auf dem Windows Phone funktioniert das aber nicht, da hierfür ausschließlich Texturen im dds Format zulässig sind. Daraus entstanden für mich im Wesentlichen zwei Probleme: Wie werden andere Dateiformate in dds konvertiert und wie können diese Dateien im Programm geladen werden? Weiterlesen

Mai 18

Portierung einer 3D-Engine auf Windows Phone #2

App-ScreenshotHeute kam ich endlich einmal dazu, die Portierung auf Windows Phone wie im letzten Post beschrieben weiter zu machen. Kurzum: Das Ergebnis sieht mittlerweile sehr gut aus. Hürden gab es neben der zuletzt genannten zum Glück keine größeren mehr. Das einzig wirklich negative ist die Tatsache, dass die Synchronisierung zwischen Xaml-Rendering und Direct3D-Inhalt am Phone (natürlich) wieder anders ist, als auf allen anderen Windows Plattformen. Ich verwende den Weg über das DrawingSurface wie hier auf Msdn beschrieben. Weiterlesen

Mai 04

Portierung einer 3D-Engine auf Windows Phone

Heute habe ich mich damit beschäftigt, eine 3D-Engine auf Windows Phone (8) zu portieren. Im Prinzip handelte es sich schon vor dieser Aktion um relativ viele Klassen, welche sauber auf Windows Desktop und WinRT laufen (auch ARM). Ich wusste zwar schon, dass die Phone-Plattform noch einmal deutlich eingeschränkter ist, als etwa die WinRT-Plattform für Tablets, das ich so viel rumbasteln muss, hätte ich aber nicht gedacht. Hier eine kurze Sammlung der Punkte, auf die ich gestoßen bin. Weiterlesen