neuer Spieltisch

Der Bereich für Plaudereien in unserem Forum.
Benutzeravatar
Gu.Ro
Forscher
Beiträge: 217
Registriert: 02.05.2004, 17:37
Wohnort: Zwickau
Alter: 74

Beitrag von Gu.Ro » 11.03.2005, 23:57

Letzter Beitrag der vorhergehenden Seite:

@Klyx:

Ich hab schon mal an eine Variante gedacht, bei der der Server nur eine Art Chat-Funktion bereitstellt. Verschiedene Channels könnten jeweils die Spieltische bilden. Da die Kommunikation bei D.U.D.O.S. nur aus kurzen Strings besteht, könnte das damit funktionieren.
Der Teil meines Programms, der bisher als Server arbeitet, muss dann nur einen solchen Channel (Spieltisch) eröffnen.

Ich kann mir aber auch vorstellen, dass jemand, der einen Spieltisch eröffnen will, den Server anspricht und damit dort nur seine Verbindungsdaten hinterlässt, damit sich andere die dort abholen können, um sich mit ihm zu verbinden. Das hätte den Vorteil, dass der Server vom eigentlichen Spiel überhaupt nicht belastet wird. Dafür bleibt aber das Problem, dass für jeden Spieler die IP-Adressen seiner Mitspieler immer sehr einfach zu sehen sind.

Mach doch einfach mal ein Spiel mit. Vielleicht können wir Dich mit unserer Begeisterung für das Spiel anstecken. :duell:

Viele Grüße
Gu.Ro
Benutzeravatar
The.Modificator
Forscher
Beiträge: 2030
Registriert: 06.02.2004, 16:54

Beitrag von The.Modificator » 12.03.2005, 01:42

TheSearcher hat geschrieben:Ich hoffe das reicht für den Anfang und begründet grob meine Ablehnung, Java als fast das gleich wie C# zu bezeichnen. In der Tat gibt es ein paar syntaktische Ähnlichkeiten (beide stammen syntaktisch von c++ ab, da wundert es nicht).
Danke für deine Ausführungen - und entschuldigung, dass ich mich unklar ausgedrückt hatte...
The.Modificator hat geschrieben:Java kann ich leider nicht - aber ist ja eigentlich das gleiche wie C#; sollte von der Syntax her also wohl weniger problematisch sein.
Ich bezog mich tatsächlich nur auf die Syntax... Leider ist das überhaupt nicht richtig rübergekommen. :(


@Gu.Ro
Da ich mich zurzeit stärker mit der Weiterentwicklung des Uru-Servers beschäftige, habe ich eine Vorstellung davon gewonnen, wie man mit C/C++ einen Server programmiert. Wäre sicherlich eine gute Übung. Hast du irgendwelche Wünsche betreffend des Protokolls?

Gruß
Modi
The cake is a lie.
Benutzeravatar
Gu.Ro
Forscher
Beiträge: 217
Registriert: 02.05.2004, 17:37
Wohnort: Zwickau
Alter: 74

Beitrag von Gu.Ro » 12.03.2005, 02:04

@Modi:

Das Programm ist wie schon gesagt in VB geschrieben. Ich benutze dabei das Winsock-Steuerelement von Microsoft. Das Protokoll ist TCP. Das liegt aber einfach daran, das das für die Zwecke des Programms erst mal das einfachste war.
Ich denke, eine Umstellung des Programms, bei der die Verbindungen über einen zentralen Server laufen sollen, erfordert sowieso eine komplett neue Strategie und Programmkonzeption. Ich wäre da jedenfalls für alles offen.
Vorausgesetzt, ich begreife es :roll: .
Ich würde mir aber Mühe geben :wink: .

Viele Grüße
Gu.Ro
Benutzeravatar
TheSearcher
Forscher
Beiträge: 753
Registriert: 10.10.2004, 13:21
Wohnort: Magdeburg
Alter: 39

Beitrag von TheSearcher » 12.03.2005, 13:22

Da ich mich zurzeit stärker mit der Weiterentwicklung des Uru-Servers beschäftige...
@Modi:
Meinst du damit, dass du am Alcogs-Server mitprogrammierst?

Außerdem: meiner Erfahrung nach lässt sich in Java besonders komfortabel ein Server programmieren, da diese Programmiersprache schon automatisch die dazu nötigen Funktionen mitbringt. Falls du es in C/C++ hinbekommst, wäre es natürlich super. Zumindest kann ich selbst sagen, schon eine Art minimalen Parrot-Server auf Telnet-Basis (wartet, bis sich 2 Leute einloggen und sendet anschließend das, was der erste schreibt an den zweiten, bis er Enter drückt und anschließend das, was der zweite schreibt an de ersten, bis er Enter drückt usw.) programmiert zu haben. Ging in Java äußerst komfortabel.
Ich kann mal schauen, ob ich die Sources noch irgendwo habe (macht euch aber ja keine Hoffnungen!). Vielleicht hilft es ja beim Programmieren des Lobby-Servers.

Dieser war übrigens auch dazu gedacht, in Zukunft ein bestimmtes Zweipersonenspiel übers Internet gegeneinander spielen zu können (bzw. KIs übers Internet gegeneinander antreten lassen zu können). Daraus ist dann leider nix geworden (lag nicht an mir!).

Auf jeden Fall ist es meines Erachtens ein interessanter Ansatz den Lobby-Server auf Telnet-Basis zu programmieren, da man dann einfache Befehle verwenden kann (mit Enter abgeschlossen) und sich nicht ein komplexes Protokoll ausdenken muss.

P. S.: Den Artikel scanne ich gerade ein.
Der Zyklustyp einer Permutation ist konjugationsinvariant.
Benutzeravatar
TheSearcher
Forscher
Beiträge: 753
Registriert: 10.10.2004, 13:21
Wohnort: Magdeburg
Alter: 39

Beitrag von TheSearcher » 12.03.2005, 14:07

@Modi
Zum Artikel:
trotz aller Kompression konnte ich das alles nicht unter ca. 1,5 MB bekommen. Gib mir mal deine E-Mail-Adresse, damit ich es dir senden kann.
Der Zyklustyp einer Permutation ist konjugationsinvariant.
Benutzeravatar
The.Modificator
Forscher
Beiträge: 2030
Registriert: 06.02.2004, 16:54

Beitrag von The.Modificator » 12.03.2005, 14:29

TheSearcher hat geschrieben:
Da ich mich zurzeit stärker mit der Weiterentwicklung des Uru-Servers beschäftige...
@Modi:
Meinst du damit, dass du am Alcogs-Server mitprogrammierst?
Ja - genau. (Es heißt aber Alcugs. ;) )
TheSearcher hat geschrieben:Außerdem: meiner Erfahrung nach lässt sich in Java besonders komfortabel ein Server programmieren, da diese Programmiersprache schon automatisch die dazu nötigen Funktionen mitbringt.
Ich muss mal wieder mit meinem Java-Unwissen kommen... ;) Wie sieht es Geschwindigkeitstechnisch aus? Natürlich wird das System nicht so kompliziert werden, wie beim Uru-Server, aber dennoch kann ich mir vorstellen, dass die Programmierung mit C/C++ einen Geschwindigkeits/Verarbeitungszeit-Vorteil bringt.
TheSearcher hat geschrieben:Den Artikel scanne ich gerade ein.
Auch hier nochmal: Vielen Dank! :D

Gruß
Modi
The cake is a lie.
Benutzeravatar
TheSearcher
Forscher
Beiträge: 753
Registriert: 10.10.2004, 13:21
Wohnort: Magdeburg
Alter: 39

Beitrag von TheSearcher » 12.03.2005, 16:28

Mittlerweile kommt Java an C++ ran (was jedoch viele nicht wissen: die hohe Geschwindigkeit ist erst nach einigen Minuten Programmlaufzeit, da erst dann der JIT-Compiler die ganzen HotSpots compiliert hat -> dadurch entsteht das mittlerweile nicht mehr haltbare Gerücht Java sei langsam, was nur für die ersten Versionen zutraf).
Obwohl ich da bei dieser Sache sowieso kein Problem sehe: Extremlasten muss der Server nicht verarbeiten, im Gegensatz zum Alcugs-Server.
Wenn du es gut in C++ hinbekommst, ist es auch voll okay (dann brauchst du dich nicht in Java einzuarbeiten), ich habe lediglich die Erfahrung gemacht, dass man es bei Netzwerk-/Internetprogrammierung mit Java schlicht und einfach einfacher hat, da die dazu nötigen Funktionen Inhalt der Sprache sind (KISS: Keep It Simple & Stupid).

Programmier es, wenn du willst, ruhig in C++. Viel wichtiger ist es, dass es einfach ist, für diesen Server eine KI coden zu können (also eine Abstraktionsebene existiert, die einen von den technischen Details des Übertragungsformats fernhält).
Der Zyklustyp einer Permutation ist konjugationsinvariant.
Benutzeravatar
Thoro
Forscher
Beiträge: 1494
Registriert: 23.09.2004, 14:43
Geschlecht: männlich
KI-Nummer: 529779
Wohnort: Duisburg
Alter: 42
Kontaktdaten:

Beitrag von Thoro » 13.03.2005, 16:27

Ich habe mir das Spiel vor wenigen Tagen heruntergeladen und möchte euch unsortiert einfach mal alles berichten, was mir so aufgefallen ist.

1.) Die Installation läuft bei euch über den VB Installer. Naja, hab ich früher auch gemacht, aber seit ich Inno Setup kenne ... Der Vorteil ist, dass man das Setup sehr genau konfigurieren kann. Zusätzliche Icons erstellen, Unterteilung in Programmkomponentengruppen, mehrsprachige Installationen, Registrierungeinträge, beliebige Unterordner, usw. Außerdem komprimiert Inno Setup die Daten noch deutlich stärker und erstellt nur eine einzige exe-Datei. Das Einpacken in ein Archiv würde damit auch entfallen. Also ich kann's nur weiterempfehlen. Schaut es euch einfach mal unter JR Software Inno Setup an und relativ leicht zu bedienen. Ist übrigens kostenlos. Wenn ihr möchtet kann ich euch von eurer aktuellen Version mal ein Beispielsetup erstellen. Bräuchte dann allerdings noch ein paar Infos.

2.) Die Bedienelemente "Local", "Server" und "Client" im Startfenster sind etwas verwirrend, da sie sich nicht als Bedienelemente ersichtlich zeigen. Sicherlich kommt man schnell darauf, da mal drauf zu klicken, wenn nix passiert nachdem man den Namen eingegeben hat. Aber vielleicht sollte man zumindest eine Art Hover-Effekt einbauen. Das bspw. bei einem MouseOver die BackgroundColor auf Weiß und die Schrift auf Schwarz wechselt. Ebenso sollte man die Schriftfarbe vielleicht auf Grau stellen, solange noch kein Name eingegeben wurde, damit man sieht, dass die Bedienelemente noch nicht anwählbar sind.

3.) Die Funktion des "Zurück"-Buttons im Einstellungsfenster ist mir noch nicht klargeworden. Ich würde erwarten, dass man zurück zum Startfenster kommt, is' jedoch nicht. Stattdessen wählt er einfach die erste Spielvariante an. Verstehe nicht worauf das hinausläuft.

4.) Bei jeglichem Klick auf das Spielbrett, solange man keinen Stein aufgehoben hat, kommt die widersprüchliche Fehlermeldung: "Aktion Setzen nicht erlaubt. Erforderlich: Setzen." Entweder müsste es heißen: "Aktion Setzen nicht erlaubt. Erforderlich: Spielstein nehmen." oder man kann sie viel besser ganz weglassen, da Klicks auf das Spielbrett eher versehentlich passieren und jedem eigentlich klar sein müsste, zuerst einen Spielstein aufzunehmen.

5.) Die Fehlermeldungen im Chatfenster auszugeben halte ich für umständlich, besonders im Einzelspiel, wenn man den Chat eigentlich gar nicht braucht. Dann poppt jedesmal das Chatfenster in den Vordergrund und man muss es wieder wegklicken. Besser fände ich es, wenn die Fehlermeldungen unten im Spielfenster selbst auftauchen würden.

6.) Die Farben im Chatfenster sind ungünstig gewählt. Vor allem Rot auf Dunkelgrau beißt sich und ist schlecht lesbar. Optimaler wäre weiß, hellgrau oder ein pastellton.

7.) Das Abspielen des langen Soundclips beim Beenden des Spiels hat bei mir zu Verwunderungen geführt. Ich hatte das Spiel nämlich erst auf einem Rechner ohne Soundkarte ausprobiert und habe mich gefragt, wieso das Programm zum Beenden mehrere Sekunden benötigt. Kam mir so vor, als würde es meinen gesamten Arbeitsspeicher auslagern oder so. Mit Sound wurde es mir dann klar, aber ich finde dass dieser Soundclip eigentlich überflüssig ist.

So, das war das, was mir beim Offline-Spielen aufgefallen ist, online kann ich es natürlich nur in einem gemeinsamen Spiel testen.

Die Spielidee finde ich übrigens echt klasse. Eigentlich ist es ja nur eine Variante von TicTacToe, aber durch die ständig wechselnen Ebenen ist es unglaublich spannend. Meine Lieblingsvariante ist übrigens Ego, falls das jemand interessiert.
Benutzeravatar
Gu.Ro
Forscher
Beiträge: 217
Registriert: 02.05.2004, 17:37
Wohnort: Zwickau
Alter: 74

Beitrag von Gu.Ro » 13.03.2005, 18:25

@Thoro:

Vielen Dank für diese ausführliche Rückmeldung. Das ist genau das, was ich mir wünsche, um die nächste Programmversion (an der ich schon arbeite) wieder etwas besser machen zu können.

Jetzt zu Deinen Punkten:

1.) Inno Setup werde ich mir mal näher anschauen. Es klingt wirklich sehr interessant.

2.) Ich weiß, dass damit auch schon andere Spieler am Anfang Probleme hatten, und werde das ändern.

3.) Der "Zurück"-Button stellt die jeweils letzte Spieleinstellung wieder her. Ich habe im Moment keine Idee, wie ich das verständlicher ausdrücken könnte.

4.) Die Fehlermeldungen werden aus verschiedenen Teilen zusammengesetzt, die sich jeweils aus der Spielsituation und den angeforderten Aktionen ergeben. Das macht es möglich, auf sehr viele verschiedene Situationen einzugehen. Allerdings ergeben sich dadurch leider auch ein paar solcher Meldungen. In dem speziellen Fall werde ich aber mal versuchen, die Meldung ganz abzublocken (die ist wirklich blöd).

5.) Das werde ich im Moment noch nicht ändern. Zum einen, weil es da unterschiedliche Meinungen gibt, und zum anderen, weil diese Änderung ziemlich tief ins Programm eingreifen müsste.
Es wäre sehr schön, wenn ich dazu erst mal noch ein paar mehr Meinungen hören könnte.

6.) Die Farbe (rot) für die Fehlermeldungen kann ich ändern. Das ist kein Problem. Beim Chat sieht das aber etwas anders aus. Da soll die Farbe den Spieler identifizieren. Dort habe ich nur die Möglichkeit, die Hintergrundfarbe zu ändern, um einen besseren Kontrast zu erreichen. Ich habe schon einiges versucht, aber bisher noch kein befriedigendes Ergebnis gefunden.

7.) Am Anfang fand ich den Sound beim Beenden des Spiels gut und war richtig stolz auf die Idee. Inzwischen nervt es mich allerdings selbst schon gewaltig, dass man immer so lange warten muss. Ich werde ihn wohl einfach weglassen.

Viele Grüße
Gu.Ro
Benutzeravatar
The.Modificator
Forscher
Beiträge: 2030
Registriert: 06.02.2004, 16:54

Beitrag von The.Modificator » 14.03.2005, 21:55

Gu.Ro hat geschrieben:Der "Zurück"-Button stellt die jeweils letzte Spieleinstellung wieder her. Ich habe im Moment keine Idee, wie ich das verständlicher ausdrücken könnte.
Wie wärs mit "Letzte Einstellung wiederherstellen"? ;)

Ich würde mich in der zweiten Hälfte meiner Ferien gern mit der Programmierung des Lobby-Servers auseinandersetzen. Dazu wäre es aber nötig, funktionierende Kommunikationsmöglichkeiten zu haben. Hast du ICQ, MSN Messenger, AIM, einen bestimmten Lieblings-IRC-Server, ein Mikrofon für TeamSpeak oder eine andere Art der Direktkommunikation (außer Skype - das funktioniert bei mir nicht mehr), Gu.Ro?

Gruß
Modi
The cake is a lie.
Benutzeravatar
Gu.Ro
Forscher
Beiträge: 217
Registriert: 02.05.2004, 17:37
Wohnort: Zwickau
Alter: 74

Beitrag von Gu.Ro » 15.03.2005, 00:10

The.Modificator hat geschrieben: Wie wärs mit "Letzte Einstellung wiederherstellen"? ;)
:idea: Prima Idee! Extrabreite Monitore musst Du aber liefern! :wink:
The.Modificator hat geschrieben: Ich würde mich in der zweiten Hälfte meiner Ferien gern mit der Programmierung des Lobby-Servers auseinandersetzen. Dazu wäre es aber nötig, funktionierende Kommunikationsmöglichkeiten zu haben. Hast du ICQ, MSN Messenger, AIM, einen bestimmten Lieblings-IRC-Server, ein Mikrofon für TeamSpeak oder eine andere Art der Direktkommunikation (außer Skype - das funktioniert bei mir nicht mehr), Gu.Ro?
Ich habe gerade einen Luftsprung gemacht. :feier:

An der Kommunikation solls nicht fehlen.
Schreib mir 'ne PM oder Mail: dudos@blue-cable.de oder kontaktiere mich im ICQ: 272-437-334. Am besten wäre es aber, wenn wir uns im Teamspeak treffen. Vielleicht gibt es ja auch noch mehr Interessenten für eine Diskussionsrunde. Da können wir anschließend vielleicht sogar mal eine Runde D.U.D.O.S. miteinander spielen.

Ich freu' mich schon darauf
Gu.Ro
Benutzeravatar
Thoro
Forscher
Beiträge: 1494
Registriert: 23.09.2004, 14:43
Geschlecht: männlich
KI-Nummer: 529779
Wohnort: Duisburg
Alter: 42
Kontaktdaten:

Beitrag von Thoro » 15.03.2005, 00:21

Prima Idee! Extrabreite Monitore musst Du aber liefern!
:grins: Wie wär's mit "Reset"?
Benutzeravatar
Gu.Ro
Forscher
Beiträge: 217
Registriert: 02.05.2004, 17:37
Wohnort: Zwickau
Alter: 74

Beitrag von Gu.Ro » 15.03.2005, 00:45

Für Leute, die nix verstehen Deutsch? :aeh:
:abgelehnt:
Benutzeravatar
Thoro
Forscher
Beiträge: 1494
Registriert: 23.09.2004, 14:43
Geschlecht: männlich
KI-Nummer: 529779
Wohnort: Duisburg
Alter: 42
Kontaktdaten:

Beitrag von Thoro » 15.03.2005, 09:43

Also ich finde ebenso wie Modi, dass die Beschriftung "Zurück" verwirrend ist. Unter Zurück stelle ich mir "einen Schritt zurück gehen" vor. Bspw. also ein Fenster zurückgehen oder zur letzten Webseite zurückgehen. Eine bessere Bezeichnung wäre daher "Wiederherstellen" oder "Zurückstellen". Aber das würde ja wiederrum nicht auf die Schaltfläche passen. Da ist mir nur noch "Reset" eingefallen, was eigentlich auch jeder kennen müsste, der 'nen Windows-PC hat. Wenn mein PC abstürzt drücke ich nämlich auf die Reset-Taste. Auf was drückst du? Auf die Zurückstelltaste? :grins:
Benutzeravatar
TheSearcher
Forscher
Beiträge: 753
Registriert: 10.10.2004, 13:21
Wohnort: Magdeburg
Alter: 39

Beitrag von TheSearcher » 15.03.2005, 14:17

Wie wäre es mit "Rücksetzen"?
Ich bin auch der Meinung, dass "Reset" mittlerweile recht üblich unter Computeranwenden ist.
Der Zyklustyp einer Permutation ist konjugationsinvariant.
Benutzeravatar
Gu.Ro
Forscher
Beiträge: 217
Registriert: 02.05.2004, 17:37
Wohnort: Zwickau
Alter: 74

Beitrag von Gu.Ro » 15.03.2005, 21:31

Also mir gefällt "Zurückstellen" am besten. "Reset" finde ich an der Stelle nicht so gut, weil ich darunter ein Rücksetzen auf einen festen Ausgangszustand verstehe. Die "Zurück"-Taste bewirkt aber nur ein Zurückstellen auf den vorherigen Zustand der Einstellungen.
Dass das Wort nicht auf die Taste passt ist nicht so schlimm. Da mach ich einfach die Taste etwas größer.

Viele Grüße
Gu.Ro
Antworten