Drücke „Enter”, um zum Inhalt zu springen.

Veröffentliche Beiträge in “Technik”

Technische Neuerungen und Informationen

Redesign

Jan 0

Ich muss zugeben, das alte Blogdesign war schon ziemlich miefig. Die Zeiten im Web ändern sich schnell und damit die Anforderungen an eine Webseite. Immerhin war das alte Blogdesign schon responsive, d.h. es passte sich seiner Umgebung an (Handy, Tablet, PC). Aber heute hat keiner mehr Bock seitenlang sich durch Einträge zu scrollen, das Optische steht viel mehr im Vordergrund. So in etwa war meine Anforderung an das neue Blogdesign. Es folgte das übliche Spiel. Design ausprobieren, bei Bedarf runterladen, auf den Server kopieren, nochmal ausprobieren und dann (zu 90%) wieder löschen. Nach einiger Zeit stellte sich raus, dass mir das Masonry-Design ziemlich gut gefällt, d.h. von den Beiträgen sieht man das Titelbild und einen Ausschnitt des Artikels. Also suchte ich gezielter und wurde bald auf das Oria-Theme aufmerksam. Ich aktivierte es und es gefiel mir sehr gut. Krisztas Meinung ging in einer andere Richtung, ich meinte nur: "Wart's mal ab...".

Also hockte ich mich hin, stellte die Farben um, verschob einige Bilder, dass sie als Titelbilder angezeigt wurden und spielte ein bisschen mit der meiner Tag-Cloud meiner Last.fm-Titel herum. Heraus kam der schöne Header und fertig war das neue Design. Kriszta war neidisch und wollte auch gleich, dass ich was für unseren Reiseblog finde. Aber das ist eine Aufgabe, die noch vor mir liegt. Momentan bin ich damit beschäftigt, immer mal hier und da einen Artikel anzupassen, dass die Bilder nicht mehr 300 x ??? sind, sondern auf 500 Pixel aufgeblasen werden. Kann ewig dauern, drängelt ja aber auch nicht...

Backup Schritt 2+3: Vergleichen und Auswählen

Jan 0

Heute gibt es mal wieder was zu sehen. Nachdem ich das letzte Mal den Grundstein für meine Backup-Software gelegt habe, ging es jetzt darum, Stück für Stück die Software zu erweitern. Schritt 2 sieht vor, dass ich überprüfen möchte, ob meine Sicherung erfolgreich war. Wie macht man das am besten? Einfach vergleichen, ob die Dateigröße übereinstimmt? Nein, dass ist zu simpel - ich möchte wirklich sicher sein. Meine erste Idee war, dass ich beide Dateien (aus Quelle und Ziel) wirklich Byte für Byte miteinander vergleiche. Aber eine kleine Internetrecherche brachte mich auf eine andere Idee: Aus dem Inhalt beider Dateien einen MD5-Hash berechnen und den miteinander vergleichen. Die Chance, dass hier das Gleiche entsteht, ist zwar vorhanden, aber mit dem Risiko kann ich leben. Außerdem habe ich dann die Möglichkeit wenn ich später noch das inkrementelle Backup einbaue, dass ich an jedes Paket eine Datei mit den MD5-Hashes anhänge und mir den Vorteil erkaufe, nicht nur nachsehen zu müssen, ob an der Datei geändert wurde, sondern auch inhaltliche Änderungen registriere.

Und dann war mal wieder die Oberfläche dran. Ich musste wieder einige Klassen in meine gemeinsam genutzte Bibliothek verschieben, Namespaces korrigieren und dann konnte ich mich darum kümmern, dass ich das Quellverzeichnis auswählen kann. Und nun das Ergebnis von Schritt 3: Ich kann das Quellverzeichnis auswählen:

Im Zusammenhang mit dem MD5-Hash ist mir natürlich aufgefallen, dass ich da etwas mit dem Feuer spiele. Denn wenn ich große Dateien (z.B. 1GB) miteinander vergleiche, dann steigt mir das Programm mit einem Fehler aus: Out of memory. Bei 16GB Hauptspeicher etwas merkwürdig, aber um solche Fehler will ich mich erst kümmern, wenn das Backup bei mir in Echtbetrieb geht.

Backup Schritt 1: Einfach mal sichern

Jan 0

Ich habe mir am Sonntag ein bisschen Zeit genommen und mit der Programmierung angefangen. Klingt doch gar nicht so kompliziert: mal einen Ordner kopieren. Am Anfang habe ich erstmal ein paar Komponenten, die ich schon in der Plattenverwaltung verwende, in eine gemeinsam genutzte Bibliothek verschoben und musste natürlich in der Plattenverwaltung ein paar Referenzen korrigieren. So nach 2-3 Stunden hatte ich dann eine Oberfläche mit einem Button und eine wieder funktionierende Plattenverwaltung.

Für den Anfang stand ja folgendes fest:

  • kein Oberflächen-Schnick-Schnack - Button und fertig
  • Quelle und Ziel sind im Code verankert
  • Backup läuft synchron, d.h. keine Aktualisierung der Oberfläche während kopiert wird

Datenmodell brauchte ich diesmal nicht und konnte gleich loslegen. In meinem Kopf stiegen die Aufgaben wie kleine Bläschen hoch. Verzeichnis rekursiv auslesen, Liste von Dateien erstellen, Dateien kopieren. Schon allein für das Auslesen gibt es mehrere Wege und Strategien. Ich entschloss mich für die ausführliche Version, die mir zu einer Datei gleich die Attribute (Ist ein Verzeichnis? Ist eine temporäre Datei?) mitliefert. Strategie ist "Tiefe zuerst", d.h. erstmal alle Verzeichnisse durchklappern und dort die Dateien einsammeln. Dann wurde es kurz kniffelig. Ich musste ja den Quellpfad nehmen und mit dem Zielpfad mischen. Also wenn ich z.B. den Ordner C:\Users\jan\Pictures nach E:\ sichern will, muss ich die Datei C:\Users\jan\Pictures\Island\tolles_bild.jpg nach E:\Pictures-2016-09-14_19-34\Island\tolles_bild.jpg kopieren. An der Stelle vielen mir drei Szenarios ein: 1. Verzeichnis nach Verzeichnis (easy - der Standardfall), 2. Verzeichnis nach Laufwerk (etwas Spaß mit den Pfadtrennern, aber auch noch einfach) und 3. irgendwas mit Netzwerkpfaden (erstmal nicht ausprobiert). Dass an den Zielpfad das Datum und die Uhrzeit rangeklebt wird, ist zwar etwas vorgegriffen, aber dann hab ich es schon mal drin.

Damit es überhaupt was zu sehen gibt, schon mal die Code-Map des Projekts. Momentan noch sehr übersichtlich...

Handmade Backup

Jan 0

Seit dem Desasterumbau in meinem Rechner, habe ich jede Woche ein Backup zu laufen. Manche Daten sichere ich wöchentlich, manche monatlich. Viele Sicherungen - gerade bei den Fotos - laufen inkrementell. Trotzdem kommt es immer mal vor, dass mehrere Vollsicherungen zu einem Zeitpunkt anstehen. Ich hocke nun auch nicht den ganzen Tag vor dem Rechner, um Backups laufen zu lassen, d.h. ich breche die Sicherungsaufträge ab, weil ich sie später wiederholen möchte. Auch wenn ich den Haken bei "Sicherung wiederholen" in meiner Backup-Software gesetzt habe, wird die Sicherung nicht wiederholt. Was zur Folge hatte, dass ich nachfragte, warum denn die Sicherung nicht wiederholt wird. Als Antwort kam: Wenn der Auftrag gestartet wurde, gilt die Sicherung als gemacht. Entschuldigung, aber häää? Ich schrieb eine Antwort, die besagte, dass ich eine erfolgreiche Sicherung möchte und nicht eine gestartete Sicherung. Nach der Aussage kam nichts mehr...

Und nun? Selbst ist der Entwickler, also starte ich ein neues Projekt: meine eigene Backup-Software. Wie auch bei meiner Plattenverwaltung zählt hier - die Software soll meine Wünsche erfüllen und wer Lust hast, kann sie gern benutzen. Also habe ich mich mal hingesetzt und aufgeschrieben, wie ich meine Backup-Software schrittweise aufbaue:

  1. Ich möchte einen Ordner auf ein anderes Laufwerk sichern.
  2. Ich möchte Quelle und Ziel nach dem Backup miteinander vergleichen und sicher sein, dass beide identisch sind.
  3. Ich möchte den Ordner auswählen, den ich sichern möchte.
  4. Ich möchte das Ziellaufwerk auswählen, wo ich hinsichern möchte.
  5. Ich möchte die Konfiguration beim nächsten Programmstart zur Verfügung haben.
  6. Ich möchte einen Hinweis erhalten, wenn das Ziellaufwerk nicht zur Verfügung steht.
  7. Ich möchte den Fortschritt des Auftrags kontrollieren können.
  8. Ich möchte den Auftrag abbrechen können.
  9. Ich möchte den Status des letzten Auftrags einsehen können (erfolgreich, abgebrochen, fehlerhaft).
  10. Ich möchte mehrere Aufträge mit Konfiguration (Quelle, Ziel) anlegen können.
  11. Ich möchte, dass das Backup zu einer bestimmten Uhrzeit monatlich startet.
  12. Ich möchte, dass der Auftrag wiederholt wird, wenn er nicht erfolgreich durchgeführt wurde.
  13. Ich möchte die Uhrzeit einstellen können und in meinem Auftrag hinlegt haben.
  14. Ich möchte das Intervall einstellen und mit dem Auftrag speichern können.
  15. Ich möchte auf dem Ziellaufwerk Platz sparen und die Sicherung in einer komprimierten Datei ablegen.
  16. Ich möchte die Anzahl meiner Sicherungen limitieren, d.h. alte Sicherungen werden entfernt.
  17. Ich möchte die Anzahl der verbleibenden Sicherungen in meinem Auftrag hinterlegen können.
  18. Ich möchte eine inkrementelle Sicherung erstellen, bevor die nächste Vollsicherung gemacht wird.
  19. Ich möchte die Anzahl der inkrementellen Sicherungen einstellen und mit meinem Auftrag speichern.

Klingt erstmal überschaubar, aber trotzdem steckt da eine ganze Menge Arbeit dahinter.

Windows 10 historisch betrachtet

Jan 0

Ist Windows 10 einfach schlecht? Die kurze Antwort: Ja! Die lange Antwort: Nein! Aber wie kann etwas gut und gleichzeitig schlecht sein? Eigentlich ist die Frage schnell beantwortet. Microsoft hat mit Windows 10 nicht nur wieder an der Oberfläche gedreht, sondern auch einiges im Untergrund geändert. Natürlich bedeutet das für Softwarehersteller, dass neue Treiber und neue Versionen veröffentlicht werden müssen. Wenn ich mal Windows 10 historisch betrachte, gerade in Bezug auf seine Vorgänger, wird klar, dass es immer Zeit für Veränderungen gab.

WLAN-Verbindung getrennt unter Windows 10

Jan 0

Ich hatte mich die letzten Wochen wieder mal mit einem Problem herumärgern dürfen. Eine Woche vor Ablauf der Umstellungsfrist aktualisierten wir auf ihren Dell-Notebook auf die neuste Version von Windows. Und seit dem ging es los: Regelmäßig wurde die WLAN-Verbindung getrennt unter Windows 10 .

Pikachu!

Jan 0

Vor zwei Wochen, einen Tag bevor die deutsche Version erschien, brachte eine Kollegin uns die Welt von Pokémon Go nahe. Als sie uns kurz den Inhalt erzählte, kamen wir uns vor, als würde jemand in einer anderen Sprache mit uns reden. "Also um ein Pokémon zu fangen, brauchst du Pokébälle. Diese bekommst du in Pokéstops. Wenn du ein Pokémon gefangen hast, findest du es in deinem Pokédex..."

Ein paar Tage später installierte ich mir das Programm mal, schließlich musste ja was dran sein, wenn es nicht nur von der Presse gehyped wird, sondern auch noch in kurzer Zeit einen millionenfachen Download erreicht und man absurde Storys liest, dass Leute statt Pokémons Leichen gefunden haben oder liebende Pärchen aufgeschreckt haben.

Die App installiert und los ging es. Der Professor erklärt einem erstmal, wie man ein Pokémon fängt und dann darf man es selbst üben. Was danach folgt, ist ziemlich einfach, man muss es nur wissen. Ich hockte mich abends auf die Couch und hatte das Glück, dass vorm Haus jede Menge Taubsis erschienen. Nichts mit raus gehen und bewegen. Die Sammlung voller kleiner Viecher lernte ich am nächsten Tag, dass man die gefangenen Pokémons zurück zum Professor schicken kann und dafür artspezifische "Bonbons" erhält, mit denen man sein Pokémon weiter entwickeln und stärken kann. All diese Aktionen - einfangen, trainieren, entwickeln - bringen einem selbst Erfahrungspunkte. Um von Level 1 auf Level 2 zu kommen braucht man 1.000 Erfahrungspunkte, von 2 auf 3 2.000 Punkte usw. Das Fangen eines unbekannten Pokémon bringt 500 Punkte + 100 Punkte, die man ohnehin fürs Fangen bekommt. Also geht es ziemlich schnell nach oben.

Je höher ich vom Level kam, um so schwieriger wurde es, die Pokémon einzufangen - die dann wiederum auch weiter entwickelt waren. So verbrauchte ich ziemlich schnell meine Pokébälle. Das Doofe ist nur, dass es hier draußen auf dem Dorf keinen Pokéstop gibt. Dafür erscheinen hier auch mal seltene Pokémon, wie der allseits beliebte Pikachu. Letzten Freitag kam ich heim und er wartete direkt an der Straße. Gestern Abend kommen wir vom Canalissimo heim (wo ich meinen Vorrat an Pokébällen wieder ordentlich aufgestockt habe) und wer sitzt da?

Nach dem wir gestern in der Innenstadt von Bamberg waren, wo es von Pokéstops nur so wimmelt und auch jede Menge Pokémons gefangen werden wollen, kann ich verstehen, warum die Arenen mit Viechern gespickt sind, die 1.000 und mehr Wettkampfpunkte haben (mein Bester ist ein Tauboss mit 170 WP).

Eigentlich würde ich mich darüber freuen, wenn es entweder bald die Möglichkeit gibt, selbst Orte einzureichen, wo ein Pokéstop erscheinen soll oder die Möglichkeit geschaffen wird, dass man Pokémons gegen andere Gegenstände tauschen kann. So wie ich es mitbekommen habe, sind derzeit Pokéstops an den Stellen, wo der "Vorgänger" Ingress seine Stops hatte. Die Firma Niantic, die das Spiel entwickelt hat, hatte vorher ein Spiel namens Ingress, das genau nach dem selben Prinzip wie Pokémon Go funktionierte. Dort konnten die Spieler aber selbst Orte für die Stops und Arenen einreichen bzw. wurden Orte genommen, die von Google Maps als Sehenswürdigkeiten gekennzeichnet sind.

Fazit: Wer jetzt immer erzählt, dass jetzt die Leute rudelweise durch die Stadt ziehen und auf ihr Smartphone starren, der ist selbst vorher nie mit offenen Augen herumgelaufen - es war schon immer so. Nur mit dem Unterschied, dass jetzt auch die draußen rumlaufen, die sonst ihre Freizeit zockend vor dem Rechner verbracht haben. Ich finde die Spielidee gut, da man wirklich gezwungen ist, sich draußen zu bewegen. Das fängt beim Suchen von Pokémons an, geht über die Pokéstops und Arenen, die man nur erreichen kann, wenn man wirklich dort ist, bis hin zu den Eiern, die man einsammeln kann und für die man, je nach Ei, zwei, fünf oder zehn Kilometer laufen muss, um sie auszubrüten.

Lange nicht mehr gehört

Jan 0

Ich versuche mich ja - auch wenn ich einen iPod benutze - mich von den Statistiken und Informationen immer mehr unabhängig von iTunes bzw. von last.fm zu machen. Ein Feature, was ich an iTunes mag, ist die Information, wann welcher Titel gespielt wurde. So kann ich nachsehen, welche Scheibe ich lange nicht mehr gehört habe und mal wieder reinhören.

Mein Vorteil ist, dass ich in meiner Plattenverwaltung die Chartinformationen zurück bis 2004 vorliegen habe. Das heißt ich habe eine Datenbasis, die wesentlich umfangreicher ist, als die von iTunes. Also kann ich doch Nutzen daraus ziehen. Meine Herausforderung ist lediglich die, dass ich die Informationen in zwei Stufen vorliegen habe.

  1. Ich habe seit Oktober meine Charts, wo ich mir in einer separaten Tabelle zu jedem Tonträger das Datum gemerkt habe, an dem die Platte zuletzt gespielt wurde. Ganz einfache Abfrage - alle Tonträger ermitteln und dann nachschauen, wann das letzte Datum zu der jeweiligen Platte ist.
  2. Meine Jahrescharts - dort liegen die Informationen pro Tonträger, wie oft ich die Platte gespielt habe. Wie gesagt, diese Informationen reichen bis in das Jahr 2004 zurück. Auch hier ist die Abfrage einfach: Pro Tonträger den letzten Jahreseintrag heraussuchen ggf. in Betracht ziehen. Einziger Knackpunkt hier ist, dass ich beim Einlesen vielleicht den einen oder anderen Tonträger nicht bei den Charts zuordnen konnte und somit kein Eintrag in meiner SQL-Datenbank entstanden ist. Das hat zur Folge, dass die Notstufe greifen muss.
  3. Die Ausnahme: Die Platte muss vor 2004 das letzte Mal abgespielt worden sein oder ich habe keinen Eintrag gefunden. Hier ist auch Platz für potenziellen Unfug: Der Tonträger ist z.B. 2008 erschienen, ich konnte ihn nicht zuordnen und deshalb steht als letztes Abspieldatum 2003 drin. Gibt es aber zum Glück nicht.

Kaum hatte ich das Feature implementiert und starte das erste Mal, musste ich zwei Erkenntnisse hinnehmen. Zum einen das erwartete "Stimmt, die hast du lange nicht mehr gehört" und aber auch "Ich dachte, die Platte hätte ich verkauft?!".

Windows 10 und seine Updates

Jan 1

Seit ca. einem Monat habe ich nun meinen Rechner auf Windows 10 umgestellt. Kleine Empfehlung für, jene noch diesen Schritt vor sich haben und das kostenlose Upgrade-Angebot von Microsoft in Anspruch nehmen wollen: z.B. bei amazon.de bekommt man ziemlich preiswert Lizenzen für Windows 7 oder 8, die kostenlos upgradefähig sind. So behält man seine alte Lizenz und hat noch ein neues Windows 10 dazu. Ich entschied mich für ein Windows 8.1 Pro, das man auf Windows 10 Pro upgraden kann.

Um beide Betriebssysteme parallel zu betreiben, installierte ich EasyBCD, mit dem man ein Bootmenü konfigurieren kann, um das gewünschte System zu starten. Lief alles soweit gut, solange bis Microsoft sein erstes großes Update in den Verteiler schicke. Wir waren gerade aus dem Urlaub zurück und mein Rechner rief nach einem Neustart. Also gut, soll er machen! Langsam kletterte die Prozentanzeige des Fortschritts nach oben, zum Glück hatte ich genug wegzuräumen. Als er dann neu startete, wunderte ich mich über einen neuen Eintrag im Bootmenü: "Windows 10 Setup". Ich wählte ihn aus, er machte weiter - inzwischen räumte ich weiter auf, sodass ich erst das Endergebnis sah. Ein schöner Bluescreen of death, der mich kurz informierte, dass mein BCD-Eintrag kaputt war und sich nach Erneuerung sehnt.

Kein Problem dachte ich, dass habe ich schon mal gemacht! Der Befehl war doch...

bootrec /RebuildBcd

Doof nur, dass Windows zwar eine Windows-Partition fand, die aber "da sie nicht eindeutig zugeordnet werden kann", nicht eintragen wollte. Also ging eine verzweifelte Suche auf meinen Smartphone los. Zum Glück gibt es die Dinger, sonst wüsste ich nicht, wie ich das sonst hinbekommen hätte. Ich stieß auf mehrere Seiten, die mit einer Reihe von Befehlen daher kamen, die mir zu technisch aussahen - es musste doch was Einfacheres geben. Nein, nach einer Weile gab ich auf und probierte aus, was passiert.

Es beginnt alles damit, dass man von der Windows 10 DVD startet und dort sich in die Reparaturoptionen hangelt, um in die Kommandozeile zu kommen. Dort startet man das Programm DISKPART, dass mit einem eigenen Kommandosatz daher kommt. Also los...

** Schauen wir mal, welche Laufwerke es gibt list disk ** jetzt die auswählen, wo das Windows installiert ist select disk 0 ** Lassen wir uns doch mal alle Volumes anzeigen list volume ** Jetzt ist es wichtig: Es gibt eine versteckte Partition, ** die 100MB groß ist und mit FAT32 formatiert ist. ** Ich hatte das Problem, dass ich zwei davon hatte ** (Windows 10 und Windows 7) Deswegen war wohl das ** Windows-Update leicht überfordert. ** Also einfach mal tippen und das Volume auswählen select volume 4 ** Jetzt weisen wir dem Volume einen freien ** Laufwerksbuchstaben zu, den brauchen wir gleich assign letter=M: ** und fertig exit

Man sollte jetzt ein offenes Auge haben und gleichzeitig einen Blick darauf werfen, welchen Laufwerksbuchstaben die gewünschte Windows-Partition hat, wo das zu startende Windows drauf liegt. Denn jetzt machen wir selbst den BCD-Eintrag und dann sollte alles wieder gut sein.

bcdboot C:\Windows /l en-us /s M: /f ALL

Beim Aufruf von bcdboot kamen bei mir jede Menge Warnungen und ich wunderte mich schon. Als ich neu startete, wusste ich warum. Ich hatte die Windows 7 Partition wieder zum Leben erweckt. Aber da ich das Prinzip von DISKPART kapiert hatte, wies ich meinem Windows 10 wieder einen Laufwerksbuchstaben zu und schon startete ich wieder.

Das hin und her mit dem Update machte ich 2-3 mal, bis ich den Kanal voll hatte und kurzerhand das Datenkabel zu meiner Windows 7 Platte zog. Jetzt lief das Update ohne Muckern rein. Soweit bis jetzt... bis zum nächsten Update.

Act of Aggression – Rebooted

Jan 0

Heimlich, still und leise hat Act of Aggression ein Update bekommen. Ich bekam es nur mit, als ich das Spiel starten wollte und mir eine neue Option angeboten. Heute kam dann eine Mail, dass der Beta-Test für die neue Spielvariante eröffnet ist. Werfen wir mal einen Blick auf die Änderungen...

Sofort springt ins Auge: die Ressourcen haben sich geändert. Es gibt nur noch Ölquellen und Banken - beide sind immer noch limitiert. Aluminium und seltene Erden fallen komplett weg. In dem Zusammenhang fällt auch auf, dass das Bauen nur noch geht, wenn genügend Rohstoffe vorhanden sind. Also bis zum Erbrechen bauen und dann warten bis die Ressourcen eintrudeln gibt es nicht mehr. Eigentlich schade, da man so immer aktiv auf die Ressourcen blicken musste. Und wenn wir schon beim Bauen sind, sollte der nächste Blick auf die Einheiten gehen.

Bisher war es ja so, dass ein Gebäude fertig gestellt wurde und dann tauchte ein Baufahrzeug auf, stellte das Gebäude auf und verschwand darin. Hat man es verkauft, fuhr es zurück zur Basis. Jetzt gibt es permanent vorhandene Baufahrzeuge, denen man den Befehl zum Bauen geben muss. Bis jetzt war ich es gewohnt, einige Gebäude im HQ in Auftrag zu geben und abzuwarten bis sie fertig sind. Jetzt gibt man den Befehl ans Baufahrzeug und muss warten bis es fertig ist und kann dann das nächste Bauwerk in Angriff nehmen. Es sei denn, ich erstelle mehrere Baufahrzeuge. Kurzum, es ist 1:1 wie C&C Generals. Auch die Fahrzeuge zur Ressourcensuche sind weg, denn vorhandene Ressourcen werden sofort auf der Karte eingeblendet. Und was spieltechnisch eine Katastrophe ist: Sind die Ressourcen verbraucht, bleiben die Icons zum Bauen der Einheiten / Gebäude aktiv und ich werde mit einem nervigen Tröten und einer Nachricht hingewiesen, dass die Kohle aus ist. Kommt gut, wenn man fünf Einheiten bauen will und das Geld nur für zwei reicht. Wenigstens so viel Fortschritt wäre doch drin gewesen, dass man die Knöpfe deaktiviert.

Ansonsten wurden manche Einheiten optisch aufpoliert, aber neue Einheiten gibt es nicht bzw. auch keine neuen Aufrüststufen. Die Grundaussage ist ganz klar, dass das Spiel eine starke Anlehnung an Command & Conquer Generals hat und somit eigentlich der Spielreiz verloren ist. Warum sollte ich ein altes Spiel mit neuer Optik wollen?

WordPress Cookie Hinweis von Real Cookie Banner