1 März 2015

3D-Engine Seeing# goes OpenSource

Screenshot SeeingSharp-BeispielSeit einer ganzen Weile schiebe ich das schon vor mir her: Das Grundgerüst, welches ich die letzten Jahre für eigene Test-Entwicklungen, kleine Spiele etc. verwendet habe, möchte ich als OpenSource bereitstellen. Die Feature-Liste kann sich hierbei sehen lassen: Integration Direct3D/Direct2D, Integration in WPF/Win.Forms/WinRT, hohe Parallelisierung (Multithreading), Software-Rendering, Unterstützung mehrerer Grafikkarten und noch vieles mehr. Nun, da ich mein Studium im Januar dieses Jahres abgeschlossen habe, kann ich mich nun um das Thema OpenSource kümmern. ABER: Ganz so einfach wie „ich lads einfach mal hoch..“ ist es leider nicht.

Im Moment überlege ich, Seeing# (so nenne ich die Library) unter der GPLv3 bereitzustellen. Diese Lizenz soll dafür sorgen, dass das Paket von jedem heruntergeladen und frei verwendet werden kann. Frei natürlich im Sinne von anderen OpenSource-Projekten. Klar, GPLv3 verlangt, dass andere auf Seeing# aufbauende Projekte ebenfalls auf der GPLv3 oder einer neueren Version davon basieren – und zwar in dem Fall, wenn diese Projekte veröffentlicht werden. Ohne eine Veröffentlichung ist jeder frei, damit anzufangen, was er oder sie möchte.

Etwas schwierig an der ganzen Sache ist die Anforderung, dass auch die von mir bisher eingebundenen Bibliotheken kompatibel zur GPL sein müssen. Eine sehr gute Übersicht zu kompatiblen Lizenzen findet man auf der Homepage der Free Software Foundation [1]. In einer Tabelle habe ich mir nun zusammengeschrieben, welche Fremdbibliotheken drinnen stecken, welche davon kompatibel sind und wo ggf. von mir noch nachgebessert werden muss, bevor ich Seeing# so veröffentlichen kann. Nachfolgend der aktuelle Stand der Tabelle.

Verwendete Libraries von SeeingSharp und deren Lizenzen.
Verwendete Libraries von Seeing# und deren Lizenzen.

Schade finde ich, dass ich „Modern UI for WPF“ aufgrund der nicht zur GPLv3 kompatiblen MS-PL verwenden kann. Mit dieser Bibliothek lassen sich nämlich auf sehr einfache Art und Weise auch für einen Nicht-Designer wie mich ansprechende Oberflächen basteln. Glücklicherweise sind die meisten anderen aber kompatibel, da häufig die freizügigen Lizenzen Apache 2.0, MIT oder BSD (3-Clouse BSD oder 2-Clouse BSD) verwendet werden. Aufpassen muss man wohl mit der CPOL (Code Project Open License). Diese ist zwar auch eine relativ freizügige Lizenz, verbietet aber – eigentlich sinnvollerweise – den Einsatz für illegale Zwecke, was die GPLv3 nicht tut.

Den Quellcode, welcher aus anderen z. B. per MIT lizenzierten Projekten stammt, wird bei mir in der Projektmappe entsprechend so markiert (Siehe nachfolgender Screenshot). In der Quellcodedatei selbst steht natürlich auch der ursprüngliche Lizenz-Header drin (hier von SharpDX und SlimMath).

Markierung Code, welche aus Projekten mit MIT-Lizenz stammt
Markierung Code, welche aus Projekten mit MIT-Lizenz stammt

Als Plattform für das OpenSource-Projekt stelle ich mir aktuell GitHub vor [2]. Warum? Es ist aktuell schlicht die populärste Plattform dafür und macht auf mich auch einen sehr guten Eindruck. Ältere Projekte habe ich auch schon auf CodePlex veröffentlicht, aber aktuell gibt es auch mehrere OpenSource Projekte, welche Microsoft selbst von CodePlex auf GitHub verschoben hat, so zum Beispiel Roslyn [3].

Verweise:
[1] https://www.gnu.org/philosophy/license-list.html
[2] https://github.com/
[3] http://roslyn.codeplex.com/


Schlagwörter: ,
Copyright 2019. All rights reserved.

Verfasst 1. März 2015 von Roland in category "Seeing#

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.