Colossus Chess online Version mit XC-Basic

There are 22 replies in this Thread which has previously been viewed 989 times. The latest Post (August 12, 2025 at 4:19 PM) was by Korodny.

  • Hallo liebe Forums Gemeinde :smile:

    Ich gehe mit der Idee schwanger Colossus Chess für das WiC64 in einer online Variante zu programmieren als Gemeinschafts-Projekt. Der Vorteil wäre, das man nicht nur just in Time eine Runde Schach spielen, sondern ggf. eine oder mehrere Partien offen haben könnte die man über mehrere Tage mit seinen Gegnern spielen würde.

    Da der liebe schorsch3000 ja nun eine online Programmierplattform für XC-Basic entwickelt hat (Please login to see this link.) und hier sogar die WiC64 Library einbindbar ist, würde ich (zusammen mit weitern freiwilligen) diese Plattform nutzen um das Spiel in XC-Basic zu entwickeln/testen.

    Mir geht es in erster Linie zu zeigen, das XC-Basic eine sehr anwenderfreundliche Programmiersprache ist, mit der sich einfach kompakte und schnelle Programme für den C64 und vor allem das WiC64 erstellen lassen - also wäre diese Programmiersprache gesetzt.

    Ich habe Martin Bryant kontaktiert und er hat uns die Erlaubnis gegeben die Grafiken von Colossus Chess in einer neuen online Version zu nutzen. Darüber habe ich mich scher gefreut. Somit wäre ein Schachbrett mit allen Figuren ohne Aufwand bereits vorhanden.

    Meine Idee wäre im ersten Schritt die Bedienung des Schachbrettes umzusetzen - Gundstelltung, Züge auf dem Brett. Dann eine Prüfung der Züge auf Plausibilität per Abfrage auf einem Server durchzuführen. Hier käme dann die erste Online Funktionalität ins Spiel - natürlich alles Quelloffen auch auf Serverseite.

    So könnten alle Schritt für Schritt sehen wie man mit XC-Basic auf einen Server zugreift und Daten hin- und herschiebt. Da es im Portal ja die Möglichkeit gibt, den WiC64 Portaluser zu ermitteln würde dann eine User / Partie Verwaltung erstellt werden müssen, in der man sich Gegner oder offene Partien suchen kann - das müsste man sich noch genauer überlegen.

    Ich würde einen PHP fähigen Server zur Verfügung stellen, auf dem die Backendendwicklung laufen würde.

    Falls also jemand lust haben sollte sich zu beteiligen (Frontend oder Backend), würde ich mich sehr freuen.

    Please login to see this attachment.

  • Eine Schöne Idee!

    Die Prüfung auf Plausibilität des Zuges sollte aber meiner Meinung nach schon auf dem C64 stattfinden. Ist ja kein Hexenwerk und kann mit (XC-) Basic realisiert werden. Die Auslagerung dieses Jobs auf den Server finde ich unnötig.

  • Hallo Lazy,

    ich kann Dir da leider nicht helfen, da ich nicht über ausreichende Kenntnisse verfüge....

    ABER : Die Idee & das Vorhaben wäre absolut cool !!! Das hab ich mir schon immer vorgestellt, dass an einfach mal ONLINE über den C64 eine Runde Schach spielen könnte....wünsche Dir viel Erfolg & hoffe, dass Du entsprechende Mitstreiter findest !:ilikeit:

  • Ich habe eine Verständnisfrage:

    Sollen es nur Partien zwischen Mensch und Mensch sein, das online übers WiC64?

    Oder auch alleine Spielen gegen den C64?

  • Tolles Projekt.

    Es sollte vor allem zuerst mal erörtert werden welche Seite (C64/PHP) welche Aufgaben erfüllen soll.

    In PHP gibt es z.B. schon Libs die einem die meiste Arbeit abnehmen. Please login to see this link.

    Der C64 wird dann jedoch lediglich als Terminal verwendet. Was ich in dem Szenario jetzt nicht so verkehrt finden würde.

    - WiC64 - The Commodore 64 Wireless Interface -> Please login to see this link. | Please login to see this link.
    - WiC64 - Radio -> Please login to see this link.
    - WiC64 - GameBox -> Please login to see this link. :thumbsup:
    - WiC64 - DemoBox -> Please login to see this link.

  • In PHP gibt es z.B. schon Libs die einem die meiste Arbeit abnehmen. Please login to see this link.

    Der C64 wird dann jedoch lediglich als Terminal verwendet. Was ich in dem Szenario jetzt nicht so verkehrt finden würde.

    Ja warum nicht?! Dann bräuchte man sich um die ganze Logik dahinter keine Gedanken mehr machen, wenn ich das so richtig sehe.

    - WiC64 - The Commodore 64 Wireless Interface -> Please login to see this link. | Please login to see this link.
    - CHECK64 - The C64/C128(D) Diagnostic Set -> zum Beitrag: Please login to see this link. | Please login to see this link.
    - Anfertigung von Kühlkörperklammern -> zum Beitrag: Please login to see this link. Info: Kein lästiges Kleben mehr
    - Veranstaltung Kölner-Retrotreff -> zur Homepage: Please login to see this link.

  • Die Prüfung auf Plausibilität des Zuges sollte aber meiner Meinung nach schon auf dem C64 stattfinden.

    Der Server kann direkt nach dem Zug der Gegenseite mitteilen, welche Züge überhaupt erlaubt sind. Dann kann man das UI auf C64-Seite auch nur diese Züge anbieten lassen und spart sich das Hin und Her.

    Ob ein Zug gültig ist oder nicht ist gar nicht sooo trivial zu prüfen, schließlich muss man auch schauen, ob nach dem Zug Schach vorläge und so weiter.

    Please login to see this link. - Please login to see this link.

    Edited once, last by 1570 (August 12, 2025 at 12:38 PM).

  • Eine Schöne Idee!

    Die Prüfung auf Plausibilität des Zuges sollte aber meiner Meinung nach schon auf dem C64 stattfinden. Ist ja kein Hexenwerk und kann mit (XC-) Basic realisiert werden. Die Auslagerung dieses Jobs auf den Server finde ich unnötig.

    Finde ich auch! Das Überprüfen, ob ein Zug erlaubt ist, schafft der C64 locker auch allein. Dafür müssen keine Daten verschickt werden. ;)

  • Die Prüfung auf Plausibilität des Zuges sollte aber meiner Meinung nach schon auf dem C64 stattfinden.

    Finde ich auch! Das Überprüfen, ob ein Zug erlaubt ist, schafft der C64 locker auch allein. Dafür müssen keine Daten verschickt werden.

    Ich denke da gibt es wie von InsertDisk2 schon als Link geliefert eine fertige PHP Lösung. Der Server muss ja auf jeden Fall den Zug prüfen vor Ablage im System - sonst könnte man vom Frontend aus das Spiel manipulieren. Somit wäre das, wenn man das auch auf C64 einbauen würde, dann doppelt vorhanden. Man hätte in diesem Fall auch keinen Datenverkehr gespart, weil die Prüfung ja später wenn man den Zug auf dem Server speichern möchte, zusammen bei der Übermittlung des Zuges stattfinden wird. Vom Server kommt dann entweder ein ok oder Zug ist nicht valide in einen Returncode zurück.

    Ich stelle mir eine Prüfung auf valide Züge auch gar nicht so trivial vor, es müssten ja nicht nur die Schrittmöglichkeiten aller Figuren sondern auch Regeln wie Rochade und ob man den König z.B akiv in einer Schach position platzieren würde etc. geprüft werden.

    Sollen es nur Partien zwischen Mensch und Mensch sein, das online übers WiC64?


    Oder auch alleine Spielen gegen den C64?

    Fokus würde ich persönlich hier auf Mensch zu Mensch liegen. Um alleine zu spielen gibt es ja das Original und viele andere Schach Spiele für den C64.

    Ich denke eine Verwaltung der offenen Partien und Spielzüge etc. wird schon genug Arbeit auf Front- und Backend Seite bedeuten. Aber wenn das dann später jemand um eine Einzelspielervariante erweitern möchte, kann man das natürlich auch machen.

    Der C64 wird dann jedoch lediglich als Terminal verwendet. Was ich in dem Szenario jetzt nicht so verkehrt finden würde.

    Ich denke mal das man die Überprüfung der Züge gut auf Backend Seite von Vorteil wäre (warum das Rad neu erfinden) - Aber welche Dinge würdest du noch auf PHP Seite sehen?

  • Der Server muss ja auf jeden Fall den Zug prüfen vor Ablage im System - sonst könnte man vom Frontend aus das Spiel manipulieren. Somit wäre das, wenn man das auch auf C64 einbauen würde, dann doppelt vorhanden.

    Ich ging davon aus, dass alle Spieler das gleiche Frontend am C64 verwenden und das gibt eben nur gültige Züge aus. Sind auch andere Zugänge geplant?

    So hat ja der C64 so gut wie nix zu tun. Einen Zug annehmen, den losschicken, bei Bestätigung Figur bewegen, Gegenzug annehmen und Figur bewegen.

    Da kann der C64 parallel dazu noch ein Apfelmännchen berechnen, damit ihm nicht langweilig wird.:D

  • Ich ging davon aus, dass alle Spieler das gleiche Frontend am C64 verwenden und das gibt eben nur gültige Züge aus. Sind auch andere Zugänge geplant?

    Aus meiner Sicht sind keine anderen Zugänge geplant (Könnte man aber auch bei open source nicht verhindern). Aber man weiß ja nie was die ganzen Hacker hier so treiben und dann Züge anderweitig übermitteln :smile:

    Da kann der C64 parallel dazu noch ein Apfelmännchen berechnen, damit ihm nicht langweilig wird. :D

    Das könnte man ja dann als Bildschirmschoner einbauen :P - Aber ich denke mal das Frontend wird schon genug an coding haben im Anschluss. Ich stelle mir das ganze Anzeigen der Spieler und Partien Verwaltung schon einigermaßen anspruchsvoll vor.

  • Aber welche Dinge würdest du noch auf PHP Seite sehen?

    Das folgende z.B.

    Ich stelle mir das ganze Anzeigen der Spieler und Partien Verwaltung schon einigermaßen anspruchsvoll vor.

    Das würde ich auch alles auf PHP Seite bauen und die fertige PETSCII Seite mit angehängtem Farbram einfach zum C64 schieben, der die Bytes einfach in den Bildschirmspeicher und Farbspeicher schiebt. Das ist das einfachste wie nur die Roh Daten in PHP generieren und der C64 muss die einzelnen Daten wieder auseinander basteln um sie an die jeweilige Bildschirm Position zu schieben.

    So habe ich das auch bei dem Suchfeld der Game/Demo Box gemacht. Der Server schickt den kompletten Bildschirm und bekommt die Suchanfrage per Post um wieder das Ergebnis als fertigen Block Bildschirm und Farbe zu retournieren.

    Der C64 würde dann lediglich zuständig sein für das Spielbrett und die Figuren. Sprich der Server nimmt den Zugbefehl per Post entgegen und verifiziert den Zug und antwortet mit dem Zug, was der C64 dann auf dem Spielbrett auch visuell umsetzt. Bei einem ungültigen Zug gibt es ein "error" zurück was der C64 dann entsprechend verarbeitet. Zusätzlich zum Zug muss natürlich auch übermittelt werden wer den Zug macht und zu welchem Spiel der Zug sein soll und ein wenig Sicherheit Zeugs halt.

    EDIT: Wenn das Spielbrett und die Figuren Zeichensatz GFX sind, könnte das auch der Server generieren..

    - WiC64 - The Commodore 64 Wireless Interface -> Please login to see this link. | Please login to see this link.
    - WiC64 - Radio -> Please login to see this link.
    - WiC64 - GameBox -> Please login to see this link. :thumbsup:
    - WiC64 - DemoBox -> Please login to see this link.

  • Der Server muss ja auf jeden Fall den Zug prüfen vor Ablage im System - sonst könnte man vom Frontend aus das Spiel manipulieren. Somit wäre das, wenn man das auch auf C64 einbauen würde, dann doppelt vorhanden.

    Ich ging davon aus, dass alle Spieler das gleiche Frontend am C64 verwenden und das gibt eben nur gültige Züge aus. Sind auch andere Zugänge geplant?

    So hat ja der C64 so gut wie nix zu tun. Einen Zug annehmen, den losschicken, bei Bestätigung Figur bewegen, Gegenzug annehmen und Figur bewegen.

    Da kann der C64 parallel dazu noch ein Apfelmännchen berechnen, damit ihm nicht langweilig wird.:D

    Keine serverseitige Validierung vornehmen und sich dann wundern warum der Gegner mit A1 nach A8 eröffnet, genau mein Humor :biggrin:

  • So langsam komme ich auch mit, was du mit "offenen Partien" meinst. Also, dass man ein Spiel mit einem anderen Spieler beginnt, aber nicht unbedingt direkt bis zum Ende spielt, sondern den aktuellen Stand auch archivieren kann und später weiterspielen?

    Wenn man die Ideen eines Anderen verstehen will, ist man immer etwas hintendran. ;)

    Gut, dann ist das Schachspiel an sich eher "Nebensache". Da ist die vernünftige Verwaltung der Spieler und Spiele tatsächlich die größere Herausforderung. Damit nichts durcheinander kommt oder verloren geht.

    Und das dann schön als Übersicht präsentieren und benutzbar machen, ist auch ein Stück Arbeit.

    Nur zur Sicherheit noch der Hinweis: Die Idee finde ich sehr gut und passend fürs WiC64! :thumbup:

  • ELO müssen natürlich auch berechnet werden und können dann fürs Matchmaking benutzt werden. :)

    Please login to see this link. - Please login to see this link.

  • ELO müssen natürlich auch berechnet werden und können dann fürs Matchmaking benutzt werden. :)

    In einer welt in der matchmaking bedeutet das man aus einem pool an spielern den findet der das beste match erzeugt ist das ne sache.

    In einer welt in der man lange auf einen spielpartner wartet ist das beste match das man machen kann: den nächsten spielpartner wählen :biggrin:

  • Somit wäre das, wenn man das auch auf C64 einbauen würde, dann doppelt vorhanden.


    Eine Maussteuerung o.ä. ist nicht geplant? Da wäre eine lokale Zugprüfung ja auch notwendig.

    die fertige PETSCII Seite mit angehängtem Farbram einfach zum C64 schieben, der die Bytes einfach in den Bildschirmspeicher und Farbspeicher schiebt.

    [...]

    EDIT: Wenn das Spielbrett und die Figuren Zeichensatz GFX sind, könnte das auch der Server generieren..

    Das wäre nicht nur absolut unelegant (9 KB Daten übers Netz übertragen statt 5-7 Bytes, und der C64 muss dann auch noch mal mindestens ein Kilobyte intern herumkopieren...) sondern auch plattformspezifisch. Tauschen Server und Client dagegen nur Züge und Returncodes aus, könnte man auch Clients für beliebige andere Systeme bauen. Ist ja jetzt nicht so als gäbe es für ein 8-Bit-Online-Schach zu viele Spieler.

  • Das wäre nicht nur absolut unelegant (9 KB Daten übers Netz übertragen statt 5-7 Bytes, und der C64 muss dann auch noch mal mindestens ein Kilobyte intern herumkopieren...) sondern auch plattformspezifisch. Tauschen Server und Client dagegen nur Züge und Returncodes aus, könnte man auch Clients für beliebige andere Systeme bauen. Ist ja jetzt nicht so als gäbe es für ein 8-Bit-Online-Schach zu viele Spieler.

    Bei dem Speed den das WiC64 in der Übertragung bietet sind die 2kb an Daten ein Wimpernschlag. Bei den 9kb meinst du wahrscheinlich Hires? Du hast natürlich recht, dass das eine Öffnung für andere Plattformen ausschließen würde.

    Aber auch das würde ich in dem Fall vernachlässigen, denn du könntest auf Server Seite auch ein mitspielen ermöglichen und mehr Cliente würde ich jetzt mal nicht annehmen, dass sich Coder dafür finden. Zudem ich auch nicht wüsste für welche anderen System man das nutzen könnte.

    - WiC64 - The Commodore 64 Wireless Interface -> Please login to see this link. | Please login to see this link.
    - WiC64 - Radio -> Please login to see this link.
    - WiC64 - GameBox -> Please login to see this link. :thumbsup:
    - WiC64 - DemoBox -> Please login to see this link.

  • Zudem ich auch nicht wüsste für welche anderen System man das nutzen könnte.

    Mir würde der VC20 einfallen, das WiC64 kann man ja auch dort nutzen ;)

    "Werter Pöbel, wertes Gesocks ... aus dem Arsche zieht euch den Stock ..."

  • Ist ja jetzt nicht so als gäbe es für ein 8-Bit-Online-Schach zu viele Spieler.

    Ich würde hier nicht von einem 8 bit Schach sprechen. Es ist einfach ein online Schachbrett für ein Spiel zwischen zwei Menschen.