Am Freitag 13.4.2018  fand der Stuttgarter Spieleentwicklerstammtisch für das Frühjahr 2018 statt. Aus diesem Anlass habe ich in diesem Artikel interessante Themen des Abends zusammengefasst. Obwohl dieses mal nur drei Personen teilgenommen haben, fanden über den Abend verteilt Gespräche und kleine Showcases aus verschiedenen Bereichen statt. Bei entspanntem Zusammensitzen mit Getränken und Abendessen, wurden verschiedene Projekte vorgestellt, disuktiert und getestet. 

 

DC4-Engine - Eine streaming Spieleengine

Bild1: Dorfansicht des Beispiellevels der DC4-Engine

Nach den üblichen Gesprächen am Anfang und dem Abendessen stellte uns Top-OR seine selbstgeschriebene Spieleengine „DC4“ vor. Top-OR hat sich ursprünglich mit der Erzeugung statischer Assets bzw. Maps im Ökosystem von Quake3 beschäftigt, welches eine besondere Anziehung auf ihn ausübt. Das Dateiformat und der Editor sind gut genug, um auch recht komplexe Konstellationen damit umzusetzen, wie z.B. die Geometrie eines kompletten Hauses. Dabei hält Top-OR das Dateiformat, von der Dateiorganisation her, für recht elegant. Der von ihm gebaute Generator kann Tile-basierte Labyrinthe direkt im Quake3-Format erzeugen. Diese können dann mit der Quake3-Toolchain weiterbearbeitet werden. Sein Ziel ist es, Modelle in der Größenordnung von Häusern und Verliesteilen direkt im Quake3-Editor zu erzeugen und diese dann über die Streaming-Technologie seiner Engine kontinuierlich zu laden.

Dieses Contentstreaming ist auch ein wichtiger Bestandteil seiner Engine. Als Fernziel hat er ein Openworldspiel mit RPG-Setting im Sinn, wie z.B. einen Might&Magic-Clone für Singleplayer. Dazu zeigte er bereits sehr schöne visuelle Ergebnisse eines mittelalterlichen Dorfes und erster animierter NPCs. Ein interessantes diskutiertes Thema dabei war die Kombination der Bewegungsberechnung eines NPCs im Zusammenhang mit der Kollisionsberechnung zwischen diesem NPC und dem Spielercharakter. Dies stellte insbesondere deswegen ein Problem dar, weil der NPC in seiner Position verschoben wurde, sobald der Spieler mit diesem kollidierte, so dass sich dadurch der Weg des NPCS änderte bis hin zu Situationen in denen der NPC eventuell hängen blieb. Nach Diskussionen in der Runde kam dazu das Thema "Collision Bitmasks" ins Gespräch und wie damit eventuell das Problem gelöst werden kann. Die Idee, auf Spiel-Objektebene (bzw. Gruppen von Objekten), jeweiliges Kollisionsverhalten (relativ) zu definieren, stellte sich dafür als recht interessanter Ansatz heraus. 

Bild 2: NPC vor Dorfgebäude Bild 3: Monster-NPCs

 

Espionage - Actionpuzzler mit Unreal Engine 4

In der Kategorie "Erste Schritte" zeigte Thoran die Anfänge seines Actionpuzzlers mit dem Namen Espionage, der auf Basis der Unreal 4 Engine umgesetzt wird. Dabei verfolgt er einen extrem iterativen Ansatz. Beginnend mit CSG Blockouts für die Levelgegebenheiten und Dummycharakteren für Spieler und NPCs stellte Thoran dar, dass nach und nach die Spielemechanismen komplexer und verfeinert werden und zum anderen die ursprünglichen Platzhalterinhalte durch richtig Assets ersetzt werden. Im gezeigten ersten Ansatz waren nur rudimentäre Spielemechanismen erkennbar und es wurde ausschließlich auf UE4 Standardinhalte zurückgegriffen. Begonnen wurde mit einem einfachen Startmenü, das auch aus dem Spiel jederzeit wieder erreichbar ist. Im eigentlichen Level wurde nur eine einfache erste simple Levelgeometrie gezeigt, die grundsätzliche Mechanismen in Blueprints umsetzt. Allerdings hat dieser, wenn auch rudimentäre erste Ansatz, dazu beigetragen Vertrautheit mit Blueprints im Allgemeinen zu schaffen. Außerdem wurde zu diesem Spiel bereits eine komplette Geschichte fertiggestellt, die den Storyrahmen schafft. Das erste Kapitel dazu kann bereits hier auf der Webseite gelesen werden.

Bild 1: Startmenü von Espionage

Bild 2: Experimenteller Level mit Laufplatform auf einem 

Asteroiden

  

Mad Broadcast - MadTV-Remake in schön

kts zeigte uns seinen aktuellsten Stand des MadTV-Remakes Mad Broadcast. Dieses Spiel zeigte sich schon recht weit fortgeschritten, so dass verschiedene Funktionen, wie das Ausleihen von Filmen und das Planen des Programms inklusive Werbeblöcken schon vollständig vorhanden war. Aufgebaut hat kts das Ganze auf Basis einer Access-Datenbank, die aber nach Aussage von kts jederzeit auf eine andere Datenbank migrierbar sei. Da das ganze Spiel im 2D-Look daherkommt, sind die Assets, die im Spiel verwendet werden letzten Endes 2D-Bilder. Allerdings werden diese z.B. für die Darstellung des Filmverleihbüros aus 3D-Szenen gerendert und mit netten cartoonartigen Charakteren ausgeschmückt.

Bild 1: Hauptansicht von MadBroadcast. Hier erhält der
Spieler Zugang zu den verschiedenen Büros,
Filmverleihbüros etc

Bild 2: Filmverleihbüro mit verschiedenen Filmen im 
Angebot

Hier stellte kts dann auch dar, dass es durchaus aufwändig sei, die Szenen so gestaltet zu bekommen, dass im abschließenden Ergebnis dann auch die Beleuchtung stimmt. Zusammen mit den Turnaround-Zeiten einer Iteration für ein Asset ergeben sich dadurch für ihn leider Wartezeiten, die die Asseterstellung insgesamt zu einem sehr zeitintensiven Anliegen machen.


Mit der Vorstellung dieser drei Projekte schloss der Abend dann einige Zeit später. Wir hoffen damit auch andere für diesen Stammtisch begeistern zu können. Ich danke an dieser Stelle nochmals kts und Top-OR für Ihre Teilnahme und freuen uns auf Eure Teilnahme beim nächsten Mal. 

Für alle die jetzt Lust bekommen haben, auch mal am Stammtisch teilzunehmen und deswegen auf dem Laufenden bleiben wollen, wann der nächste Stammtisch stattfindet, die können nach Ankündigungen in den zwei Foren spieleprogrammierer.de und zfx.info ausschau halten.

Write comment (0 Comments)

UE4IconMit dem Voranschreiten in meinem Spieleprojekt Espionage, stoße ich auch ständig auf neue Herausforderungen, die ich mit Blueprints meistern will. In diesem Zusammenhang hab ich mir kürzlich Gedanken zu einem NPC-Patroulliensystem mit Wegpunkten gemacht. Allerdings sollte das Wegsystem einigermaßen flexibel sein, so dass es für verschieden komplizierte Wegpunktpfade eingesetzt wwerden kann. Wie ich das in Blueprints umgesetzt habe, findet ihr in folgendem Artikel.

Soweit ich über Wegpunktesysteme in Unreal Engine im Internet nachlesen konnte, waren diese alle auf dem Ansatz aufgebaut, dass in den Level ein Wegmarker hinzugefügt wurde, der nicht dargestellt ist, aber für den NPC als Ziel seiner Bewegung dient. Basierend auf diesem Ansatz und einiger Tutorials auf Youtube (unter anderen dieses hier AI Navigation Tutorial) zu dem Thema, hatte ich ein Verständnis davon wie ich grundsätlich einen Wegmarker für einen NPC platziere und über einen Blueprint die Bewegungsabfolge steuere. 

Bild 1: Blueprint des AI kontrollierten NPCs. Die Variable Waypoint1 enthält das Objekt zu dem der NPC als nächstes aufen wird. Die Cst*-Events sind für zukünftige Änderungen geplant, so dass der NPC auch nach Levelstart noch getriggert werden kann ( z.B. Spieler kommt in Sicht oder Alarm ausgelöst)

 

Allerdings tendiere ich grundsätzlich dazu meine Lösungen soweit generisch zu halten, dass ich diese später in unterschiedlichtsen Situationen wiederverwenden kann. Deswegen wollte ich das ganze im R

ahmen meines Spiels Universum: Espionage auch so lösen, dass ich nicht bezüglich der Patrouillenmuster eingeschränkt bin. Damit meine ich, dass ich keine EInschränkung der Form, dass der Pfad maximal 5 Wegpunkte haben kann, hinnehmen muss. Aus diesem Grund wollte ich ein Wegpunktesystem für meinen NPC, das prinzipiell beliebig viele Wegpunkte verarbeiten kann.

Der intuitive erste Ansatz war deswegen, dass ich dem NPC über eine Variable in den Blueprint eine Liste aller seiner Wegpunkte mitgeben. Diese Liste würde dann im Blueprint iteriert und der NPC bewegt sich entsprechenden der Sortierung in der Liste von einem Wegpunkt zum anderen. Allerdings stieß ich dabei schnell auf mein erstes Problem, wie ich einem Blueprint in einer Variablen eine Liste von Actor-Objekten mitgeben kann. Denn das sind die Wegpunkte letzten Endes, Actor-Objekte. Im Kontext von Unreal Engine handelt es sich dabei um Actoren, die nicht dargstellt werden. Außerdem war ich dann im Patrouillenweg festgelegt. D.h. ich konnte nicht dynamisch auf Gegebenheiten an einem Wegpunkt reagieren. 

Bild 2: Blueprint zur Umsetzung der Wegpunktlogik. Der Blueprint wird bei Überschneidung von Character und Wegpunkt-Collisionbox getriggert und läßt damit den NPC zum nächsten Wegpunkt laufen.

Deswegen kam mir ein zweiter Gedanke,den ich letzten Endes umgesetzt habe. Ich realisierte ein System von referenzierenden Wegpunkten. Das bedeutet, dass ein Wegpunkt an sich nur sich selber und einen Verweis auf den nächsten anzulaufenden Wegpunkt kennt. Der NPC bekommt zu Beginn eine Referenz auf seinen ersten anzulaufenden Wegpunkt. Mittels "AI move to Location" lässt sich der NPC im Blueprint an sein Ziel bewegen. Am Wegpunkt angekommen, wird der Blueprint des Wegpunktes durch ein BeginCollisionOverlap-Event ausgelöst. Dieser Blueprint setzt für den NPC mittels "AI move to Location" ein neues Ziel. Damit lassen sich beliebig komplexe Patrouillenwege realisieren. Selbst eine Verwzeigung mittels modifizierten (z.B. Verzweigungswegpunkten) Wegpunkten lassen sich damit umsetzen.

Dieses Verfahren setze ich nun in meinem Spiel zunächst für NPCs mit festen Pfaden ein. Die nächste Aufgabe wird dann NPC-Bewegungen mit zufälligen Patrouillenwegen sein, aber dazu gibts dann einen extra Artikel.

Write comment (0 Comments)

Als Besucher ist es wahrscheinlich schon längst aufgefallen, dass einige Spiele, die noch auf der alten Webseite gelistet waren, hier auf der neuen Webseite fehlen. Dafür gibt es jetzt neue Spiele bzw. haben manche der alten Spiele Namensergänzungen erhalten. Was hat es damit auf sich?

Universum, die neue, alte Spielewelt

Universum: Domination ist aus dem ehemals auf der Webseite geführten AlphaOmega hervorgegangen. Der alte Name war einfach zu wenige aussagekräftig. Zwischenzeitlich haben sich aber mehrere Spielideen entwickelt, die alle über die gleiche Spielwelt verknüpft sind. Um deutlich zu machen, dass alle Spiele die gleiche Spielwelt teilen, wurde die Universum-Reihe geschaffen, die den dazugehörigen Spielen als Namen vorangestellt wurde. 

Die gemeinsame Spielwelt hat sich im Laufe der Zeit entwickelt, angefangen mit dem Spiel Sternenjäger, das sozusagen eine Art Prequel zur ganzen Welt darstellt und die Ereignisse erzählt, als die Menschheit ihre ersten Schritte im Weltall unternahm. Darauf aufbauend entstand die Idee von Domination, einem klassichen Multiplayer-Online-Spiel im Stille von 4X- oder auch Globalstrategiespielen genannt, also Spielen bei denen man erforschen, sein Gebiet erweitern, Rohstoffe abbauen und letzten Endes andere Völker bekämpfen muss, wenn es zum Krieg kommt. Dieses Spiel ist bisher am längsten in Entwicklung und hat leider auch einige Neuentwicklungen hinter sich, was der Hauptgrund dafür ist, dass es immer noch nicht fertiggestellt ist.

Zwischenzeitlich ist die Idee für das Spiel Unversum: Espionage enstanden, was im Prinzip ein Puzzler ist, der auf verschiedenen Planeten des Universum spielt und dabei die Geschichte eines Agenten erzählt dessen Welt zerstört und dessen Volk am Rande der Ausrottung steht. Dazu gibt es dann auch hoffentlich bald die komplette Introgeschichte.

Einige Ideen sind noch in der Schublade, aber vorerst sollten die bereits hier erwähnten genug Arbeit für die nächste Zeit liefern. 

In diesem Sinne hoffe ich, bald Neues von der Entwicklung berichten zu können.

Write comment (0 Comments)

fireworks blueEin weiteres Jahr ist zu Ende und ich sehe Licht am Ende des Tunnels. Es gelingt mir doch tatsächlich wieder etwas mehr Zeit für meine Spieleentwicklung und die damit verbundenen Aufgaben zu investieren. Dazu gehört, dass ich in diesem Jahr die Introstory zum Spiel Espionage fertiggestellt habe, dessen erstes Kapitel bereits hier auf der Webseite im Storybereich veröffentlicht wurde. Ganz besonders freue ich mich dabei, dass ich dabei bei den Bildern zur Story unterstützung von joeydee erhalten habe. Außerdem habe ich für dieses Spiel nochmals das Gemdesigndokument gereviewed und zu meiner Freude festgestellt, dass es bereits ziemlich vollständig ist und nun eigentlich nur auf die Umsetzung eines ersten Prototypen wartet. Das ist dann das Ziel für das 1. Halbjahr 2018 mit der Unrealengine. 

So dann wünsche ich Euch allen einen guten Rutsch und ein gesundes und erfolgreiches neues Jahr 2018.

Write comment (0 Comments)

 

Qt 5.8 ist eine sehr umfangreiche Softwarebibliothek, die unter anderem ein großes Widgetset besitzt, aber auch weitere Funktionalitäten, wie Boost-ähnliche Container, Zustandsautomaten und Skriptingsprache. Obendrauf erlaubt diese Bibliothek auch noch die platformübergreifende Entwicklung für PC, Android, iOS, Windows Tablets und noch weitere Zielplatformen. Für mich ist das Grund genug, die Möglichkeit zu prüfen, auf Basis von Qt Teile meiner Spiele zu entwicklen, bzw. einzelne Komponenten davon. Da Qt unter anderem auch eine Datenbank-Abstraktionsebene bietet, möchte ich Qt zusammen mit PostgreSQL einsetzen. Die auf der Qt-Webseite zum Download bereitsgestellten Installationspakete enthalten allerdings keine direkte Unterstützung für PostgreSQL. Damit bleiben nur zwei Möglichkeiten, entweder das Plugin für PostgreSQL wird von mir separat nachträglich kompiliert und ich verwende ein fertiges Paket, oder ich kompiliere Qt komplett aus den Sourcepaketen und binde dabei die PostgreSQL-Funktionalität direkt ein. Ich habe mich für letztere Option entschieden, da ich Qt5.8 eigentlich ursprünglich für Visual Studio 2008 kompilieren wollte. Leider musste ich einsehen, wie der Titel dieses Artikels bereits verät, das VS2008 nun wirklich in die Jahre gekommen ist und Qt damit nicht mehr wirklich gut kompiliert werden kann, zumal es vom Qt-Projekt nicht mehr supported wird. Deshalb und weil ich doch einige Informationen zusammentragen musste um Qt 5.8 zu kompilieren, beschreibe ich im Folgenden, wie ich Qt 5.8 mit Visual Studio 2013 Community Edition kompiliert habe.

Zwischenzeitlich nutze ich aber nun die Visual Studio 2015 Community Edition, weswegen meine aktuellen Arbeiten damit durchgeführt werden. Deshalb habe ich auch den Titel angepasst.


info

 Qt und -static-runtime

 Eigentlich ist es ne coole Sache ein statisches Qt mit einer statischen VC-Runtime zu bauen, weil man dann direkt das erzeugte Executable verwenden kann und keine weiteren Abhängigkeiten benötigt. Die Lizenzrechtlichen Angelegenheiten die diesbezüglich die LGPL mitbringt lasse ich hier bewußt außen vor, da es mir nicht um einen Lizenzrechtlichen Aspekt hier geht, sondern um einen technischen. Ich habe einige zeit damit verbracht Qt 5.8 mit statischer Runtime zu kompilieren. Das funktioniert zunächst einmal ganz gut. Bis man an den Punkt kommt, an dem man seine Anwendung linkt. Dann werden nämlich alle statisch kompilierten Bibliotheken erst zur Anwendung zusammen gelinkt. Un da fängt das Problem an. Es müssen wirklich alle Bibliotheken, die in Eurer Anwendung verwendet werden mit der gleichen statischen Runtime gebaut worden sein, mit der ihr auch Qt gebaut habt. Und damit meine ich wirklich alle. Das geht soweit, dass man auch alle Abhängigkeiten die Qt einbindet mit der gleichen statischen Runtime bauen muss. Bei mir hat das dazu geführt, dass ich PostgreSQL mit statischer Runtime hätte bauen müssen, wo es mir dann einfach zu viel wurde. Ich wollte nicht den Großteil meiner Zeit mit Bibliotheken bauen verbringen. Das war den letzten Endes auch der Grund, warum ich mich für eine dynamische Runtime entschieden habe. Das Leben ist jetzt sehr viel einfacher beim Bauen von Bibliotheken.

Damit will ich sagen überlegt es Euch nicht nur zweimal, sondern besser dreimal bevor Ihr anfangt Qt mit statischer Runtime zu bauen. Der dadurch gewonnene Vorteil ist meiner Meinung nach den Aufwand nicht wert.

 


 

Vorraussetzungen und Setup

 Zur Durchführung benötigt werden:

Zunächst braucht man natürlich eine installierte Version von VS2015 CE. Für das kompilieren von Qt5.8 verwende ich die x64-VS-Commandline. Man findet diese in der Programmgruppe von VS2015 CE. Auf die Installation der VS2015 CE gehe ich hier nicht gesondert ein, da sie selbsterklärend ist.

Article Qt5.8 VSConsole

Mit Hilfe der Kommandozeile legt man sich die Verzeichnisstruktur an, in der später das Kompilat liegen soll. Bei mir sieht das so aus, dass ich zunächst mal einen Entwicklungsordner habe. Dort liegen alle Softwarebibliotheken, die ich in meinen Programmen verwende, wie z.B. Qt. In diesem Verzeichnis lege ich mir ein Unterverzeichnis mit dem Namen "qt" an. Dort werden, dann für jede Version, die ich von Qt kompiliere, Verzeichnisse angelegt. Im Beispiel von Qt5.8.0 lege ich mir also ein Verzeichnis "5.8.0" an. Wenn ich einen reinen Debugbuild kompiliere, ergänze ich den Namen noch um das Suffix "-deb". Das mache ich deshalb weil ich mit dem kompilieren von Qt in Debug und Release im gleichen Buildverzeichnis schlechte Erfahrungen gemacht habe. Damit kann ich später Debug- und Release-Builds auseinanderhalten. Also im konkreten Beispiel sieht dass dan wie folgt aus:

 

cd d:\devel 
mkdir qt 
cd qt 
mkdir 5.8.0-deb 
Ergebnispfad:  d:\devel\qt\5.8.0-deb

 

Sobald dies erledigt ist, kommt der erste Schritt, nämlich das Konfigurieren des Qt-Builds mit dem configure-Skript. Bitte stellt im Vorfeld sicher, dass sowohl perl als auch python im Pfad sind, so dass diese Tools während des späteren Kompiliervorgangs aufrufbar sind. Der Aufruf des configure-Skripts ist der Knackpunkt. Hier muss man genau angeben wass man von Qt alles haben will und von eventuelle 3rd-Partybibliotheken die include- und lib-Verzeichnisse angeben. In meinem Fall ist das z.B. PostgreSQL.  Zunächst mal der Aufruf den ich verwende als Beispiel:

 

configure -debug -prefix %CD% -shared -platform win32-msvc2015 -sql-psql -no-warnings-are-errors -opengl desktop -qt-zlib -nomake examples -nomake tests -I "E:\devel_2017\pgsql\include" -I "E:\devel_2017\qt-ZLib" -L e:\devel_2017\qt-ZLib\x64\Debug -L E:\devel_2017\pgsql\lib

 

 Nun mal die Parameter im einzelnen:

  • debug - ist klar, es wird nur die Debug-Version gebaut
  • prefix - legt fest wo ich die Kompilate ablege, in meinem Fall im aktuelle Verzeichnis, indem ich configure aufrufe, dazu später mehr.
  • shared - Qt wird als DLLs gebaut
  • platform gibt proinzipiell den Kompilier an (interessanterweise bleibt das win32-msvc2015 obwoh ich für 64-bit baue
  • sql-psql - bedeutet, dass das PostgreSQL-Plugin gebaut wird. Das bedeutet aber auch, dass ich die PostgreSQL libraries und includes verfügbar haben muss.
  • no-warning-are-errors - keine Warnings als Errors. Beim ersten Bauen von Qt lass ich diese Einstellung so, später kann man das immer noch ändern. D.h. aber auch, dass der Qt-Build ohne Warnings durchlaufen muss.
  • opengl verwende OpenGL im Desktop
  • qt-zlib verwende eine externe zLib ( ich verwende hier die gleiche zLib die ich auch in meinen anderen Codeteilen verwende)
  • nomake examples baue keine Beispiele ( spart Zeit)
  • nomake  tests (spart Zeit)
  • -I inlucde-Verzeichnisse zu den 3rd-Partybibliotheken
  • -L lib-Verzeichnisse zu den 3rd-Partybibliotheken

Dieses Kommando rufe ich immer im Verzeichnis auf in das die Kompilate gebaute werden sollen. Also z.B. liegt mein Qt opensource code in E:\dev-3rd-src\qt-everywhere-opensource-src-5.8.0, aber mein out-of-source build wird dann in E:\devel_2017\qt\5.8-deb liegen. Der Aufruf erfolgt dann in E:\devel_2017\qt\5.8-deb und sieht exakt wie oben angegeben aus. Hier noch mal der Vollständigkeit halber:

qt config call

Will man Qt statisch bauen, ersetzt man -shared durch -static. Ich würde es grundsätzlich vermeiden, configure mit -static-runtime aufzurufen (siehe seperater Kasten), da man damit in die dependency-Hölle kommt. (Just my 2 cents). Nach dem Ausführen von configure bekommt man am Ende eine Zusammenfassung wie etwa die folgende:

article qt compile summary configure 

Im Anschluß daran beginnt das Erzeugen der Makefiles. Ich verwende dazu wie vom Qt-Projekt empfohlen anstelle von nmake, jom.

D.h. ich rufe im Verzeichnis e:\devel_2017\qt\5.8.0-static-deb den Befehl jom auf. Jom ist ein Tool, dass paralleles kompilieren erlaubt und von der Qt-Wiki-Webseite heruntergeladen werden kann. Der Aufruf erfolgt dann mit <Pfad-zu-Jom>\jom.exe. Von da an sollte die Kompilierung von Qt laufen. sollte es wieder erwarten während der Kompilierung abbrechen, würde ich es zunächst nochmals neu starten. Wenn dann der Fehler nochmals auftritt, dann sollte man dem Fehler mehr Aufmerksamkeit. Meist befindet sich der einige Zeilen vorher, bevor der eigentlich Kompileabbruch stattgefunden hat. 

Kommt man gar nicht mehr weiter, dann kann man sich immer noch an das Qt-Form wenden. ich hatte dort bisher immer hilfsbereite und nette Menschen getroffen.

Soviel erstmal zum Kompilieren von Qt 5.8.0 mit VS 2015 CE.

Fragen und Feedback könnt ihr gerne in den Kommentaren hinterlassen.

Thoran

 

Write comment (0 Comments)
 

Neues

Neue Blogartikel, endlich

infoNach ewigem Stillstand auf meiner Webseite, bin ich endlich dazu gekommen, seit längerem angefangene Artikel zu beenden. Damit stehen nun der Artikel zu der Umstellung meiner Domains auf HTTPS, sowie der Artikel über meine Erfahrungen beim Kompilieren von Qt 5.8.0, statisch und shared, zur Verfügung. Feedback ist gerne als Kommentar oder direkt über die Kontakmailadresse, willkommen.

Gutes Neues Jahr 2017

Wieder ist ein Jahr vorbei, wieder hat sich fast nichts getan und wieder erliege ich der Hoffnung, dass 2017 alles besser wird. Ich wünsche Euch Allen da draußen ein gutes Neues Jahr und viel Erfolg.

HTTPS-Umstellung

HTTPS-UmzugAktuell bin ich dabei den Webserver auf HTTPS umzustellen. Deswegen kann es in nächster Zeit vereinzelt zu verschobenen Webpages und Internal Server Errors kommen. Sobald die Umstellung abgeschlossen ist, gebe ich esh ier bekannt.

 

 

Weiterlesen ...

Ein gutes Neues Jahr 2016

Gutes Neues Jahr

Ich wünsche allen Lesern hier auf der Webseite von SilverCoin GameDevelopment ein gutes, Neues Jahr 2016. Was gibts Neues und wie gehts weiter bei und mit SilverCoin GameDevelopment. Lest weiter...

 

Weiterlesen ...

Umzug

Zusätzlich zu meinem nun beinahe abgeschlossenen Umzug der Webseite, ziehe ich nun auch noch in eine neue Wohnung. Deshalb kann es in der nächsten Zeit zu längeren Updatepausen kommen, schon allein deswegen weil ich für eine gewisse Zeit ohne Telekommunikationsinfrastruktur auskommen muss frown.