>ein geeignetes UCI-Schachprogramm in C habe ich bereits ausgewählt.
Wo? Ich habe eben mal gesucht, aber nichts gefunden. Oder etwa Baislicka?
Mir stellen sich für so ein Projekt am Anfang mehrere grundlegende Fragen:
- Wenn möchte ich zum Mitmachen motivieren? Wer soll sich angesprochen fühlen?
Die Foristen. Unter denen, die sich dafür interessieren könnten, werden einige Programmiererfahrung haben und andere nicht. Die mit Programmiererfahrung müssen nicht zwangsläufig "C" können. Die ohne Programmierkenntnisse werden erst feststellen müssen, ob das überhaupt etwas für sie ist. Wer den Zugang zum Programmieren findet und Interesse an der Schachprogrammierung hat, wird nach meiner Einschätzung (und eigener Erfahrung) von "C" mit einer steilen Lernkurve belohnt. Aber auf diese Schachfreunde zu warten, würde sich lohnen.
- Soll man ein fertiges Programm weiterentwickeln? Das halte ich für den falschen Start. Das oben genannte Baislicka ist schon ein "gestandenes" Programm (bitboard, Hashtabellen etc.). Ich empfehle mit einem schlichten Mailbox-Programm bei Null anzufangen. Mit 2200 Elo zu beginnen, würde den Kampf um ein Programm, dass erstmal nur die Regeln beherrscht, auslassen
. Man kann sich während der Entwicklung bei vielen anderen Programmen trotzdem etwas abgucken und daran orientieren. Für die Programmieranfänger lassen sich die Entwicklungsschritte dann auch leichter nachvollziehen.
- Welche IDE? Welcher Compiler? Ich benutze MSYS2 + minGW + notepad++. Dazu ein kleines makefile und kleinere Programme sind schnell fertig. Für größere Programme kommt man um einen Debugger nicht herum. Sollte minGW einen enthalten - ich habe ihn nie genutzt. Wenn Visual Studio einen Vorteil hat, dann ist das die Integration von Editor, Compiler und Debugger unter einer Oberfläche. Ich bin damit recht zufrieden gewesen. Praktische Erfahrungen habe ich noch mit DevCpp gesammelt. Damit geht's auch. Den Editor finde ich aber tückisch. Man würde nah an einem C-Standard und den Standard-Bibliotheken programmieren müssen. Dann kann jeder den Compiler verwenden, mit dem er glücklich ist. Dabei wird man auch ein Augenmerk auf die verschiedenen Betriebsysteme haben müssen. Warum LCC? Ich empfehle, sich auf wenige verbreitete Standards zu beschränken. Bspw.: gcc, mingw, clang und visual c. Besonderheiten der Compiler (oder der Betriebssysteme) im Quellcode zu berücksichtigen, ist ein Quell hartnäckiger Fehler, spezieller Compilerwarnungen und schadet der Lesbarkeit des Codes.
- Versionsverwaltung? Github ist vermutlich ein Muss. Ich habe damit allerdings nur Erfahrung als leecher. Selber habe ich bislang keine Beiträge zu Github-Projekten geleistet, wie ich auch sonst keine Erfahrung in der gemeinsamen Entwicklung von Software habe. So würde es vermutlich den meisten Teilnehmern an diesem Projekt gehen. Wie viel Frustrationspotential bietet Github?
Persönlich finde ich die Idee einer Forums-Engine natürlich reizvoll, würde mich aber wegen des Zeitaufwandes zurzeit kaum wirkungsvoll einbringen können.
Viele Grüße
Th. Plaschke