Jammer-Thread

Hier kann über allgemeine Themen diskutiert werden, die sonst in kein Forum passen.
Insbesondere über Szene, Games, Kultur, Weltgeschehen, Persönliches, Recht, Hard- und Software.

Re: Jammer-Thread

Beitragvon Tiles » 24.11.2017, 11:08

Woah, Firefox Quantum. Das ist gleich der nächste Grund so riiichtig loszujammern. Addons futsch, Usability unter aller Sau, ist eigentlich nur noch ein schlechter Abklatsch vom Chrome. Kann alles davon, nur schlechter. Aber jo, sie hams ja geschafft den Firefox auf unter 10% Marktanteil kaputtzuentwickeln. Da kommts auf die paar Prozent weniger nun auch nicht mehr an :lol:
Free Gamegraphics, Freeware Games http://www.reinerstilesets.de
Die deutsche 3D Community: http://www.3d-ring.de
Benutzeravatar
Tiles
Establishment
 
Beiträge: 1176
Registriert: 11.01.2003, 14:21

Re: Jammer-Thread

Beitragvon Krishty » 26.11.2017, 02:11

Visual C++ 2017 x64 inlinet nicht den operator [] meiner vector-Klasse:

  MUST(toEnd >= toBeginning);
  MUST(index < UCount(toEnd - toBeginning));
  return toBeginning[index];
mov rax,qword ptr [rcx]
add rax,8
  }
ret


… eine Funktion aus zwei Befehlen – das kann man sich gar nicht ausdenken!

Nachtrag: Wenn ich ihn __forceinline deklariere, geht’s. HAHAHA

… und wenn ich Code drumherum lösche, sowieso. Also nicht viel mit Repro.

Übrigens hatte ich gerade seit langer Zeit wieder einen fetten Optimizer-Bug – D3D hat den Hintergrund meiner Anwendung nicht mehr mit der Hintergrundfarbe gefüllt, sondern mit der XYZ-Position des Betrachters. __vectorcall-Funktion mit mehreren __m128-Parametern. Ich habe sie __forceinline deklariert, dann ist der Fehler verschwunden. Tauchte nur in der 32-Bit-Version auf, und nur mit Optimierung.

Nutzen die für ihren 32-Bit-Compiler nun schon SSA oder steckt da noch der alte Optimizer drin? Anfangs war der Neue ja nur für x64 freigeschaltet. Ist schon wichtig, denn wenn’s der neue Optimizer ist, sollte ich das melden.

Nachtrag 2: Es wird noch absurder – auch diese Funktion wird nicht geinlinet:

  void bringIntoForeground(Window & window) {
    SetForegroundWindow(&window);
  }


resultierender Befehlsblock:

jmp qword ptr [__imp_SetForegroundWindow (01B270h)]

Kein Inlining bei einem einzelnen Befehl. Wow. Jetzt mache ich mir wirklich Sorgen, dass ich was in den Compiler-Einstellungen vertauscht habe …
Zuletzt geändert von Krishty am 26.11.2017, 02:28, insgesamt 2-mal geändert.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6428
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Jammer-Thread

Beitragvon Krishty » 26.11.2017, 02:23

11 von 67 Antivirenprogrammen auf Virustotal deklarieren mein Programm als verseucht. Basierend auf Heuristik. Was soll ich tun? Klein beigeben und für 100 € ein Zertifikat kaufen?

Bei Baidu ist es mir ja egal, aber G-Data und AVG machen schon Probleme.

Eigentlich ist nur die 32-Bit-Version betroffen. Ich habe also nur die 64-Bit-Version ausgeliefert. Erste User-Reaktion: „AVG sagt, da ist ein Virus drin. Und hast du auch eine 32-Bit-Version?“ FFFUUUUUUUUUUU
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6428
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Jammer-Thread

Beitragvon Tiles » 26.11.2017, 10:25

Ja, die Antivirendinger sind eine echte Pest inzwischen. Irgendwie müssen die ja dem User beweisen wie ach so wichtig ihr Schlangenöl ist. Und dann haut man halt ab und zu ne False Positive raus -.-

Das Zertifikat wird dir nichts bringen. Das ist ja nur dass Windows beim installieren aufhört zu meckern. Du könntest das Programm den Antivirenherstellern zusenden, mit dem Hinweis auf False Positive. Und das Beste hoffen ...
Free Gamegraphics, Freeware Games http://www.reinerstilesets.de
Die deutsche 3D Community: http://www.3d-ring.de
Benutzeravatar
Tiles
Establishment
 
Beiträge: 1176
Registriert: 11.01.2003, 14:21

Re: Jammer-Thread

Beitragvon Krishty » 26.11.2017, 13:16

Tiles hat geschrieben:Du könntest das Programm den Antivirenherstellern zusenden, mit dem Hinweis auf False Positive. Und das Beste hoffen ...
Ja; das habe ich schon gemacht – wird aber dauern.

Das macht auch direkt einen Strich durch die Rechnung, jede Woche ein Update rauszuhauen: SmartScreen braucht drei Wochen, um zu kapieren, dass meine Anwendung nicht schädlich ist. AVG, G-Data & Co brauchen Wochen, um das False Positive zu beseitigen. Wenn ich damit wöchentlich eine neue EXE raushaue, bin ich ja blöd.

————

Ich würde sogar die These wagen, dass das schlechte Software begünstigt.

Viren zeichnen sich dadurch aus, dass sie kompakt sind, anspruchslos, und sich schnell verbessern. In dem Wahn, Viren abzuwehren, strafen die Heuristiken nun jede Software ab, die kompakt ist, anspruchslos, und sich schnell verbessert (siehe meinen Update-Rant). Problemlos verbreiten können wir nur noch Software, die fett ist, tausend Abhängigkeiten hat, und lange keine Updates kriegt – obwohl die das Gegenteil von Sicherheit bedeutet.

Das hat das Machine Learning echt prächtig hingekriegt.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6428
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Jammer-Thread

Beitragvon Tiles » 26.11.2017, 19:20

Ich habe gerade satte 32 Gb Treiberleichen von Nvidia entsorgt. An den einen Teil kommt ja ein Normalmensch sogar noch ran. In C:\Nvidia \DisplayDriver steckten die letzten beiden Installer. 2Gb. Und unter C:\Program Files\NVIDIA Corporation\Installer2 steckten um die 75 alte Treiberpakete der letzten 5 Jahre. 15 Gb.

Für den Teil den sich Windows gesichert hat musste ich mir auch noch ein Spezialprogramm holen. DriverStoreExplorer. Denn unter C:\Windows\System32\DriverStore\FileRepository waren die gleichen 15 Gb Treiberleichen noch mal verewigt. Als Windows Backup.

Und ich wunder mich wieso meine SSD plötzlich keinen Platz mehr hat. Die haben echt was am Helm bei Nvidia -.-
Free Gamegraphics, Freeware Games http://www.reinerstilesets.de
Die deutsche 3D Community: http://www.3d-ring.de
Benutzeravatar
Tiles
Establishment
 
Beiträge: 1176
Registriert: 11.01.2003, 14:21

Re: Jammer-Thread

Beitragvon Krishty » 30.11.2017, 00:28

Krishty hat geschrieben:AVG, G-Data & Co brauchen Wochen, um das False Positive zu beseitigen.
AVG hat innerhalb von 24 Stunden eine automatisierte Antwort geschickt:
Hello,

Thank you for contacting AVG.

The detection by AVG was incorrect and was removed in a recent AVG update, please wait at least 24 hours.
If the detection persists:
1. Attach the screenshot of virus database:
[…]

Thank you

Best regards,
AVG Customer Care
Bei dem AVG-Kunden funktioniert es jetzt. Von G-Data noch keine Antwort.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6428
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Jammer-Thread

Beitragvon Tiles » 30.11.2017, 09:22

Top :)
Free Gamegraphics, Freeware Games http://www.reinerstilesets.de
Die deutsche 3D Community: http://www.3d-ring.de
Benutzeravatar
Tiles
Establishment
 
Beiträge: 1176
Registriert: 11.01.2003, 14:21

Re: Jammer-Thread

Beitragvon Tiles » 08.12.2017, 13:55

Alter. Avast -.-

Ich scanne regelmässig auf Schädlinge, bzw. wenn ich was runterlade und es brauche. Und deswegen ist Avast ansonsten normalerweise komplett aus. Ich brauche keine nutzlose Systembremse.

Beim letzten Update hat sich das Ding aber nun so tief ins System eingegraben dass es wie ein Untoter immer wieder mitgestartet ist. Trotz deaktiviertem Selbstschutz und immer wieder deaktivierter Autostarteinträge und Services. Bis ich mal durch Zufall den Aufgabenplaner gecheckt habe. Da war es nun auch verewigt. Und ich vermute mal von da hat sich das immer wieder selber aktiviert. Fingers crossed dass es das war ...
Free Gamegraphics, Freeware Games http://www.reinerstilesets.de
Die deutsche 3D Community: http://www.3d-ring.de
Benutzeravatar
Tiles
Establishment
 
Beiträge: 1176
Registriert: 11.01.2003, 14:21

Re: Jammer-Thread

Beitragvon Krishty » 15.12.2017, 12:57

Visual Studio unterstützt kein alignas(65536).
https://docs.microsoft.com/en-us/cpp/cpp/align-cpp hat geschrieben:Valid entries are integer powers of two from 1 to 8192 (bytes)

Ich dachte, ich könnte dem Compiler irgendwie vermitteln, dass Win32-Module immer an 64-K-Adressen ausgerichtet sind. Tja, schade. Künstliche Grenzen sind doch immer was Feines!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6428
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Jammer-Thread

Beitragvon MasterQ32 » 15.12.2017, 13:02

Wofür wäre ein 16bit alignment sinnvoll?
Duct tape is like the force. It has a light side, a dark side, and it holds the world together.
Benutzeravatar
MasterQ32
Felix Queißner
Establishment
 
Beiträge: 1125
Registriert: 07.10.2012, 14:56

Re: Jammer-Thread

Beitragvon Krishty » 15.12.2017, 13:10

Das ist die Allocation Granularity unter Win32. Jeder frische Speicherblock hat dieses Alignment.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6428
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Jammer-Thread

Beitragvon Krishty » 15.12.2017, 15:18

warning LNK4281: undesirable base address 0x10000 for x64 image; set base address above 4GB for best ASLR optimization
lolfu

Als nächstes meckern sie, weil ich ohne ihre kack Security Cookies oder ihren scheiß Secure Developmend Lifecycle programmiere

Meine Programme sind mit 15.5 im Schnitt 0,3–0,8 % größer geworden mit dem neuen Compiler. Mal sehen, ob sich die Ausführungsgeschwindigkeit verändert hat … Nein, alles im Rauschen.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6428
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Jammer-Thread

Beitragvon Krishty » 16.12.2017, 02:15

Krishty hat geschrieben:Bug Report für Drag & Drop: https://developercommunity.visualstudio ... m-win.html
Behoben mit 15.5. Hat nur vier Monate gedauert!
Krishty hat geschrieben:Wieder einen Bug in Visual C++ gefunden: https://developercommunity.visualstudio ... -comp.html
… behoben. Also geht mein Padding-Makro wieder in Funktionen. Hat nur … fünf Monate gedauert (oder 15 Seiten im Jammer-Thread).
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6428
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Jammer-Thread

Beitragvon Krishty » 18.12.2017, 22:36

Visual C++ legt Symbole in meinem Programm an, die ich nicht verstehe:
  • freelist (read-write-Daten, 64 B)
  • p5s (read-write-Daten, 8 B)
  • p05 (read-only-Daten, 12 B)

Nachtrag: Jetzt verstehe ich – die Dinger kommen via dtoa.c rein. Weil ich das nicht dem Projekt hinzugefügt hatte, hat die Namessuche nichts ergeben.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6428
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Jammer-Thread

Beitragvon Krishty » 20.12.2017, 16:05

Krishty hat geschrieben:Warum muss man /Gw von Hand in die Linker-Kommandozeile eintippen? Warum gibt es noch keine Option dafür? Warum machen die sowas für nichts?

https://blogs.msdn.microsoft.com/vcblog ... er-switch/
Nachträgliche Rezension:

  • Dass man die Option auch in Visual C++ 2017 noch von Hand in die Kommandozeile eintragen muss, ist Quälerei.

  • Davon abgesehen ist /Gw aber absolut geiler Scheiß. Schmeißt so ziemlich alle nutzlosen Daten aus meinen EXEs, über die ich mich jahrelang aufgeregt habe.

  • Eigentlich sollte es standardmäßig an sein, aber in Verbindung mit /Gy (COMDAT Folding) können nicht-standardkonforme Optimierungen entstehen. (Jemand hat seinen Templates, die ansonsten zu identischem Code kompilieren, einzigartige Adressen verpasst, indem er leere statische Variablen angelegt hat. Mit /Gw werden diese Variablen wieder zu einer einzigen gefaltet, und alle Templates kollabieren wieder zur selben Adresse. Das hat dem Team gereicht, um /Gw aus den Standardeinstellungen zu schmeißen.)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6428
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Jammer-Thread

Beitragvon Krishty » 03.01.2018, 10:45

https://msdn.microsoft.com/en-us/library/windows/desktop/jj200584(v=vs.85).aspx hat geschrieben:Don't pass NULL pointers to Map

If you pass NULL to the pResource or pMappedResource parameter of the ID3D11DeviceContext::Map method, the behavior of Map is undefined. If you created a device that just supports the core layer, invalid parameters to Map can crash the operating system.

Warte … Zeiger aus dem User Mode werden ohne Validierung an Kernel-Mode-Treiber weitergegeben?! Das … das klingt nach einer furchtbaren Sicherheitslücke!?
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6428
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Jammer-Thread

Beitragvon Krishty » 03.01.2018, 22:26

Krishty hat geschrieben:Seit Windows 10 Creators Update und .NET 4.6 (vielleicht auch früher) ist der Zeitstempel in EXEs und DLLs kein Zeitstempel mehr.

Raymond Chen hatte vor Jahren einen Beitrag, dass das Feld eher als Build-ID gedacht ist denn als Zeitstempel. Aber warum sollte das in Konflikt stehen? Wer kompiliert zwei verschiedene Builds seines Programms in der selben Sekunde? Was wird besser, wenn da eine Toolchain-Kodierung drin landet?

Software ist natürlich nicht drauf vorbereitet, weil bisher jedes EXE-/DLL-Tool versucht, dort einen Zeitstempel zu lesen. Markierung ist das höchstwertige Bit. Die DLLs in System32 werden also seit dem Creators Update mit zufälligen Daten ab 2038 angezeigt.

Ich jammere, weil es so schön bequem war. Man musste kein Datum/Zeit in seine EXE schreiben. Ich brauchte meine Plugins nie nach Versionsnummern fragen, weil ja Zeitstempel drinlagen. Man konnte die Stempel weder vergessen noch vermasseln, weil sich der Linker drum gekümmert hat. Und jetzt? Alles kaputt. Nie kann ich was Schönes haben.
Raymond Chen hat einen sehr informativen Artikel darüber, warum sie diese Änderung vorgenommen haben: Why are the module timestamps in Windows 10 so nonsensical?

… ich nehme das Jammern also zurück; da habe ich wirklich nicht weit genug gedacht. Die Vorteile bei Sicherheit, Testen, inkrementell kompilieren und linken, Zertifizieren, usw. sind ja echt gigantisch.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6428
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Jammer-Thread

Beitragvon antisteo » 04.01.2018, 22:58

Krishty hat geschrieben:
https://msdn.microsoft.com/en-us/library/windows/desktop/jj200584(v=vs.85).aspx hat geschrieben:Don't pass NULL pointers to Map

If you pass NULL to the pResource or pMappedResource parameter of the ID3D11DeviceContext::Map method, the behavior of Map is undefined. If you created a device that just supports the core layer, invalid parameters to Map can crash the operating system.

Warte … Zeiger aus dem User Mode werden ohne Validierung an Kernel-Mode-Treiber weitergegeben?! Das … das klingt nach einer furchtbaren Sicherheitslücke!?


Rate mal, warum die Linux-Grafiktreiber so langsam laufen? Der Großteil geht dafür drauf, für jeden aus dem Userspace übergebenen Pointer eine virtuelle IOMMU zu emulieren. Ich habe schon mit den Entwicklern diskutiert, ob die es bitte wenigstens abschaltbar machen. Die Antwort: Sicherheit geht vor.
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
antisteo
Establishment
 
Beiträge: 786
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Jammer-Thread

Beitragvon Jonathan » 09.01.2018, 01:08

Ich wollte Visual Studio auf Englisch umstellen. Aus offensichtlichen Gründen. Nun, leider gab es Englisch nicht als Auswahl, aber ich wurde auf die Microsoft-Seite umgeleitet, wo es Sprachpakete gibt. Ich lade also einen 2.9 MB großen Installer runter, der mir zugleich mitteilt, dass die Installation 2 GB Festplattenspeicher (across all devices - na toll) belegen wird. Und als erstes mal damit rumtrödelt, einen Systemwiederherstellungspunkt zu erstellen.
Kann mir bitte jemand erklären, was der Blödsinn soll? So wie ich das sehe, will ich eine handvoll Strings ersetzen. Er sollte also eine handvoll Textdateien mit übersetzten String in irgendeinen Ordner kopieren und fertig. Können maximal ein paar hundert KB sein. Sollte innerhalb eines Sekundenbruchteils runtergeladen und installiert sein. Stattdessen dauert das hier schon wieder 10 Minuten. Welches blöde Arschloch ist eigentlich für so eine Software zuständig? Ich weiß nichtmal, wie ich einen Installer so sehr überladen könnte, wenn ich es darauf anlegen würde, möglichst ineffizient zu sein...
Lieber dumm fragen, als dumm bleiben!
Benutzeravatar
Jonathan
Establishment
 
Beiträge: 1175
Registriert: 04.08.2004, 20:06

Re: Jammer-Thread

Beitragvon Jonathan » 09.01.2018, 01:56

Außerdem: Ich habe es jetzt endlich aufgegeben, CMake zu benutzen. Zumindest gucke ich bis auf weiteres was passiert, wenn man es nicht benutzt. Schlimmer kann es eigentlich nicht werden.

Der Anstoß dazu war, dass ich eines meiner Projekte auf meinem Laptop installieren und dafür meine Entwicklungsumgebung (im Sinne von: installierte Abhängigkeiten) einrichten musste (unter Windows). Naheliegenderweise lädt man also die neusten Versionen von allem herunter, man will ja aktuell sein. Ich hatte eigentlich CMake Skripte für alles, aber natürlich funktionierten sie nicht. Denn, wie jeder weiß, ist der normale Betriebsmodus von CMake nicht 'ausführen' sondern 'debuggen'. Jedes verdammte Mal. Meine Fresse.

Da CMake noch nie sinnvolle Fehlermeldungen generiert hat, musste ich also die Skripte lesen um zu verstehen, was falsch läuft. Ich brauchte irgendein System, also fing ich alphabetisch bei Assimp an. Ich les mir also die Logik nach der .lib-Dateien und Includeverzeichnisse gesucht werden durch, und gleiche sie händisch mit der frisch installierten Version (siehe Anhang A) ab. Und muss feststellen, dass Assimp jetzt seine kompilierten Dateien nach einem Schema benennt, das die verwendete Compilerversion beinhaltet. Was ja ansich sinnvoll ist, weil die benötigte Anzahl an Builds in C++ exponentiell mit der Anzahl der Parameter wächst (!!!), und man für jeden einen eindeutigen Name braucht. Weil C++ eine verdammte Scheißsprache ist.

Ich bin also drauf und dran, mein CMake-Skript so anzupassen, dass es die neuen Dateien finde. Und halte inne. Ich war kurz davor, einen Sonderfall einzubauen, der garantiert nur auf meinem Rechner funktionieren wird. Man könnte es auch flexibler machen und Umgebungsvariablen benutzen, aber ich weiß jetzt schon, dass ich dann beim nächsten mal wieder meine CMake-Skripte lesen werde, nur um nachzusehen, wie die Umgebungsvariable heißen muss, nur um dann ein anderes Programm zu starten, mit dem ich besagte Variable setzen kann. Es gibt also keinerlei Grund, das nicht direkt hardcodiert in das Skript zu schreiben, das spart nur Arbeit.
Man könnte sich auch irgendeine andere Lösung überlegen, die generelle, flexibler ist. Aber ich bin mir absolut sicher, das ich damit nicht den Fall abdecken werde, der in einem Jahr auftreten wird, wenn ich den Code mal wieder auf einer anderen Maschine ausführen will. Bringt also alles nix.

Ich habe endgültig genug. Ich benutze CMake seit ca. 5 Jahren regelmäßig. Es hat bisher noch kein einziges mal das getan, was es tun sollte (Abhängigkeiten automatisch finden). Ich musste jedes mal Skripte lesen, gucken was passiert und manuell anpassen. Es funktioniert einzig und alleine dann, wenn man ein Projekt runterlädt, in dem alle Abhängigkeiten gebündelt sind, aber das ist ja auch der triviale Fall. Dafür kann man auch statische Projektdateien bauen. Da braucht man auch nur eine Version, denn die können ja auch automatisch konvertiert werden. Der relevante Fall 'oh, mir fehlt eine Abhängigkeit, naja ich installiere sie einfach schnell nach' klappt abgesehen von einigen sehr sehr gängigen Bibliotheken (Qt, Cuda, ...) in der Regel nicht. Und dann muss ich in fremden Code suchen, wieso irgendeine Bibliothek nicht gefunden wird, weil ich davon wieder eine andere Version installiert habe, und muss wieder von vorne anfangen, alles anzupassen.

Ich habe die Schnauze endgültig voll. Ich versuch jetzt mal alles über Visual Studio zu konfigurieren, das Property Sheet System sieht brauchbar aus und es ist tausendmal angenehmer, direkt einen Pfad einzutragen, als ein Skript anzupassen, welches pseudogenerisch den Pfad finden soll und anschließend 4 mal zu debuggen, bis es das tatsächlich tut. Mal sehen wie weit ich damit komme, vor Qt habe ich jetzt schon Angst.


Anhang A:
Assimp kompilieren hat auch schon nicht geklappt. Weil es eine zlib-Version findet und benutzt, diese aber leider nicht kompatibel ist. Ich bekomme Linker-Fehler, die so erstmal nichtssagend sind. Ich gebe CMake die Schuld, von einem Buildsystem erwarte ich nicht nur, irgendetwas zu finden, sondern auch zu wissen, ob es das richtige ist. Die Kompatibilitätsprüfung hat also entweder nicht stattgefunden oder versagt, vielleicht hätte man es mit einem besseren CMake-Skript beheben können, aber von einem vernünftigen System erwarte ich einfach mal, dass angaben zu kompatiblen Programmversionen eingefordert werden und auch der dümmste Benutzer die Kompatibilitätsprüfung nicht kaputt bekommt. Weil genau diese Benutzer 95% der CMake Skripte schreiben werden.
Netterweise liefert assimp die Abhängigkeiten gleich mit. Aber wieso wird dann überhaupt nach einer externen Version gesucht? Wer weiß. Jedenfalls finde ich nach einigen Minuten CMake-Skripte debuggen tatsächlich einen Schalter den man umlegen kann und dann geht es. Trotzdem hat die Aktion mich 15 Minuten gekostet.

Ich saß jetzt wieder ca. 2.5 Stunden an meinem Projekt und die Bilanz lautet: 'Kein messbarer Fortschritt'. So macht das wirklich keinen Spaß :(
Lieber dumm fragen, als dumm bleiben!
Benutzeravatar
Jonathan
Establishment
 
Beiträge: 1175
Registriert: 04.08.2004, 20:06

Re: Jammer-Thread

Beitragvon Krishty » 09.01.2018, 11:30

Jonathan hat geschrieben:Ich brauchte irgendein System, also fing ich alphabetisch bei Assimp an. Ich les mir also die Logik nach der .lib-Dateien und Includeverzeichnisse gesucht werden durch, und gleiche sie händisch mit der frisch installierten Version (siehe Anhang A) ab. Und muss feststellen, dass Assimp jetzt seine kompilierten Dateien nach einem Schema benennt, das die verwendete Compilerversion beinhaltet. Was ja ansich sinnvoll ist, weil die benötigte Anzahl an Builds in C++ exponentiell mit der Anzahl der Parameter wächst (!!!), und man für jeden einen eindeutigen Name braucht. Weil C++ eine verdammte Scheißsprache ist.
Kompilier Assimp doch als DLL, dann geht das mit jedem Compiler … (aber dann hast du keine Sonderzeichen in Dateinamen und keine Fortschrittsbalken mehr, lol)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6428
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Jammer-Thread

Beitragvon Chromanoid » 09.01.2018, 12:05

Mich würde immer noch interessieren, wie sich Gradle für CPP anfühlt. Vielleicht willst Du das ja mal zum Anlass nehmen, es auszuprobieren: https://docs.gradle.org/current/usergui ... tware.html Unity3D wird damit wohl auch gebaut, falls das ein Anreiz ist. Wobei sie aktuell nicht mehr mit Unity Technologies auf der Hauptseite werben, nur noch hier https://gradle.com/about.
Benutzeravatar
Chromanoid
Christian Kulenkampff
Moderator
 
Beiträge: 3703
Registriert: 16.10.2002, 19:39
Wohnort: Lüneburg
Alter Benutzername: atr_23

Re: Jammer-Thread

Beitragvon Krishty » 11.01.2018, 00:56

Dinge, die ich schon immer tun wollte, aber andere waren schneller weil sie Unity nutzen statt sich wochenlang ihre eigenen Formatierungsroutinen für Gleitkommazahlen zu schreiben; Teil 812:



und

https://twitter.com/HoussineMehnik/stat ... 5208351744

und

https://twitter.com/HKdevblog/status/686217337293418496
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6428
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Jammer-Thread

Beitragvon Schrompf » 11.01.2018, 09:01

Ich erkenne nicht, was daran der Trick ist? Selbstähnliche Replikation?
Häuptling von Dreamworlds. Baut an was Neuem. Hilft nebenbei nur höchst selten an der Open Asset Import Library mit.
Benutzeravatar
Schrompf
Thomas Ziegenhagen
Moderator
 
Beiträge: 3695
Registriert: 26.02.2009, 00:44
Wohnort: Dresden
Benutzertext: Lernt nur selten dazu

Re: Jammer-Thread

Beitragvon Krishty » 11.01.2018, 12:24

Naja, das eine ist ein Zettelgenerator. Das andere ist ein Rohrgenerator. Und dann ein Müll(verteilungs)generator. AFAIK nicht einmal mit großer Trickserei, aber dafür muten die hochproduktiv an.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6428
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Jammer-Thread

Beitragvon joggel » 11.01.2018, 13:48

Sinnlos!!
Ich finde (zumindest nach einigem googlen) keinen gaaanz simplen Tilemap-Editor!!
Ich möchte einfach nur eine Map gestalten, auf den einzelnen Tiles Grafiken (1 Bild aus 251 Einzelnbildern) "packen", und das soll dann als leicht lesbare/importierbare Datei gespeichert werden...
Ich sehe es schon kommen, dass ich selber so einen TileMap-Editor schreiben muss :(
bald mit neuem Avatar
Benutzeravatar
joggel
Establishment
 
Beiträge: 1311
Registriert: 06.11.2007, 19:06
Wohnort: Dresden

Re: Jammer-Thread

Beitragvon RustySpoon » 11.01.2018, 14:09

Naja, die Standardlösung ist da halt immer noch Tiled. Es tut zumindest was es soll, auch wenn mich das Ding jedesmal aufs Neue aufregt. Das Exportformat ist zumindest auch straightforward.
RustySpoon
Establishment
 
Beiträge: 260
Registriert: 17.03.2009, 14:59
Wohnort: Dresden

Re: Jammer-Thread

Beitragvon joggel » 11.01.2018, 14:23

Das habe ich auch gefunden. Und dann TileStudio.
Mh... ich glaube, dann schaue ich mir mal Tutorials an. Ist bestimmt schneller als selber einen zu schreiben.

Was ich mir auch spontan überlegt habe:
Mit Gimp das zu machen.
Ich erstelle mir ein Bild. Meine Tilegrafiken sind zB 64x64Pixel.
Das heißt, das dieses Bild die Dimensionen von (breite x 64)x(höhe x 64) hat.
Ich lade die einzelnen TileGrafiken in Gimp und baue dann daraus meine Map.
Ich definiere zu jeder TileGrafik eine zusätzliche Ebene, die nur eine bestimmte Farbe hat, also jede TileGrafik verfügt dann über einen zusätzlichen Farbcode.
Beim Abspeichern schalte ich dann lediglich die originalGrafikEbene aus, und es werden nur die Farben auf den Ebenen abgespeichert.

Beim Importieren generiere ich die Map anhand der Farbcodes....

Würde sowas unter Gimp gehen?
bald mit neuem Avatar
Benutzeravatar
joggel
Establishment
 
Beiträge: 1311
Registriert: 06.11.2007, 19:06
Wohnort: Dresden

Re: Jammer-Thread

Beitragvon RustySpoon » 11.01.2018, 14:34

Gehen würde das sicher... aber Alter, was ein Stunt. :D

Im Vergleich zu Tiled wirst du da auch an Produktivität nichts gewinnen. Das Ding ist ja wirklich schon auf das Nötigste eingedampft: Karte anlegen, Tileset anlegen, lostilen, exportieren, fertig. Und das Exportformat ist 'ne billige XML für die es inzwischen auch zig Importer gibt.

Was mich an Tiled immer so genervt hat waren eher die fehlenden "intelligenten" Tools. Ich krieg z.B. die Krise, wenn ich eine Straße male und diese "Randtiles" immer noch händisch setzen muss. Oder man immer nur ein Tile auswählen kann, so das man z.B. "Rauschen" in großen Flächen immer händisch gestalten muss. Aber ich glaub da hat sich das Ding in den letzten Jahren auch schon verbessert.
RustySpoon
Establishment
 
Beiträge: 260
Registriert: 17.03.2009, 14:59
Wohnort: Dresden

VorherigeNächste

Zurück zu Allgemeines Talk-Brett

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 1 Gast