neuer Spieltisch

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

neuer Spieltisch

Beitrag von Gu.Ro » 30.01.2005, 01:44

Heek ist out - D.U.D.O.S. (Das Unter Der Oberfläche Spiel) ist die alternative Herausforderung!

Vor einiger Zeit wurde ich gefragt, ob ich bei der Umsetzung einer Spielidee für den Computer helfen könne.
Ich habe es versucht und nicht bereut.
Das Spiel ist teuflisch schwer aber faszinierend.

Überzeugt Euch selbst:
Der D.U.D.O.S.-Test
Im Moment ist vielleicht noch nicht alles perfekt, aber es ist gut spielbar und es macht eine Menge Spaß.

Ich würde mich freuen, wieder mal mit einigen alten Bekannten aus Uru am Spieltisch zu sitzen. Aber Vorsicht: Das ist nicht Heek. Wenn Ihr einmal an diesem Spieltisch gesessen habt, dann kommt Ihr nicht so leicht wieder davon weg!

Viele Grüße
Gu.Ro
Benutzeravatar
Gu.Ro
Forscher
Beiträge: 217
Registriert: 02.05.2004, 17:37
Wohnort: Zwickau
Alter: 74

Beitrag von Gu.Ro » 09.03.2005, 20:05

Hallo, :zuruf:

Bei D.U.D.O.S. ist einiges neu hinzugekommen. Deshalb möchte ich Euch alle noch einmal einladen.

Schaut doch mal auf den Seiten vorbei. Es gibt jetzt auch ein Gästebuch und ein kleines Forum. Das wichtigste ist aber die neue Version des Spiels. Sie beeinhaltet nun auch einen Computer-Gegner, so dass man auch dann spielen oder trainieren kann, wenn grad mal kein Mitspieler greifbar ist.

Wir wollen demnächst ein erstes Turnier austragen. :duell:
Vielleicht hat ja der eine oder andere von Euch Lust, da mitzumachen.
Und keine Angst wegen der am Anfang etwas kompliziert aussehenden Regeln. :clever: Einfach mal ausprobieren. Ich verspreche Euch: Es macht wirklich Spass. :echtwahr:

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

Beitrag von TheSearcher » 10.03.2005, 12:32

Damit du schonmal ein wenig Feedback bekommst: ich downloade es gerade.
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 » 10.03.2005, 13:14

Also mein erster Eindruck von diesem Spiel: etwas verwirrend, scheint aber durchaus interessant (ich muss es mehr spielen, um einen genaueren Eindruck zu bekommen).

Was ich dir dennoch schon definitiv empfehlen kann, wenn du Lust hast, daran weiterzuprogrammieren:

1. Dokumentation & Spielregelnmüssen dringend auch ins Spielpaket rein (inklusive Erläuterung zum Computergegner). Da gibt es absolut keinen Grund, warum du das nicht machst. Nicht jeder hat eine Flatrate (da die von der Telekom bei mir in der Siedlung bis heute kein DSL hinbekommen :( ) und man will ersteinmal ins Spiel rein schauen, bevor man es im Internet spielt

2. einen Zentralserver schaffen, der die IP-Adressen der einzelnen Leute, die gerade spielen wollen aufnimmt und einander zuweist (Lobby-Server). Wenn man im Netzwerk spielt, kann man IP-Adressen ganz einfach austauschen. Nicht beim Internet-Spiel. Wenn man da mal Lust auf Spielen hat, sollte es echt einen zentralen Server geben, der diese Funktion übernimmt. OK, an Hardware & so mangelt es dir sicher. Vielleicht mal im Uru-RL-Forum oder bei Bekannten fragen, ob es da Leute gibt, die da Möglichkeiten haben (ich könnte dir vielleicht sogar helfen, da ich jemanden kenne, der manchmal solche privaten Spielereien auf seinem selbst zusammengebastelten Internet-Server erlaubt; dann müsstest du jedoch den Server für Linux o. ä. schreiben, da er kein Windows-Freund ist).

P. S.: Ich wäre durchaus offen, einen eigenen Computergegner zu schreiben, um mich mal in den Bereich "genetische Programmierung" einzuarbeiten. Wenn du Interesse hast, melde dich mal bei mir. Ich kann in C, C++ (Gnu-Compiler) & Java coden.
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 » 10.03.2005, 18:23

Hallo Searcher,

danke für das Feedback. So etwas ist immer wichtig und hilfreich.

Das was Du zur Spielanleitung schreibst ist richtig. Es war von mairo und mir auch von Anfang an vorgesehen, die Anleitung ins Spiel zu integrieren. Da aber im Moment noch alles in Bewegung ist, wir auch noch ständig an der Beschreibung arbeiten und auch zum Programm noch Änderungen und Ergänzungen (siehe Computergegner) dazu kommen, haben wir vorerst den Weg gewählt, alles ins Internet zu stellen. Da kann dann jeder den aktuellen Stand sehen.
Aber vielleicht sollten wir mal über eine Kurzanleitung nachdenken, die direkt im Spiel enthalten ist.

Die Idee mit dem Zentralserver hatte ich auch schon. Das finde ich nämlich selbst viel besser, als die jetzige Variante. Leider fühle ich mich nicht in der Lage so etwas zu programmieren. Das übersteigt im Moment noch etwas meine Hobby-Programmierkenntnisse. Ich war schon froh, überhaupt eine Lösung für das Spiel über das Internet gefunden zu haben. Falls sich aber jemand findet, der uns bei der weiteren Entwicklung des Spiels helfen möchte, wäre das eine tolle Sache.

Was den Computergegner betrifft, so ist er im Moment im Programm integriert. Ich kann mir aber sehr gut vorstellen, dass ein eigenständiges anderes Programm die Funktion eines Client im Spiel übernimmt und dabei selbständig spielt. Die erforderliche Kommunikation ist ganz simpel. In dem Fall spielt es ja auch keine Rolle, ob das Programm in C, Java oder VB geschrieben ist. Wenn Du also Lust hast, schreib mir einfach mal an dudos@blue-cable.de.

Ich denke, ich spreche hier auch im Namen von mairo, der das Spiel erfunden hat, wenn ich sage, dass wir für alle Änderungen und Verbesserungen offen sind, die dem Spiel zu einem größeren Freundeskreis verhelfen. Das Programm ist dabei lediglich Mittel zum Zweck. Und je mehr Leute sich mit Ideen und vielleicht auch Programmierung mit einbringen, desto besser wird es sicher.

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

Beitrag von The.Modificator » 10.03.2005, 19:52

@TheSearcher
Also von der technischen Seite würde es mich interessieren, wie du den Computergegner programmieren willst! Den Ausdruck genetische Programmierung kenne ich nicht... ist das sowas wie neuronale Netze?

Ich interessiere mich nämlich schon seit einiger Zeit für neuronale Netze, bin aber leider nie wirklich dazu gekommen, mich näher mit dem Thema auseinanderzusetzen.
Wenn du Interesse hättest, würde ich gerne versuchen, mitzuhelfen. C/C++ ist kein Problem, Java kann ich leider nicht - aber ist ja eigentlich das gleiche wie C#; sollte von der Syntax her also wohl weniger problematisch sein.

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 » 11.03.2005, 14:17

Nein, das hat 0 mit neuronalen Netzen zu tun.

Von diesen halte ich persönlich weniger viel, da es dort zahlreiche Probleme gibt, wie dass sie als "Black Box" fungieren oder dass sie in vielen Fällen in der Lernphase zu einem lokalen (nicht globalen) Fehlerminimum konvergieren.

Genetische Programmierung läuft ganz anders ab:
(erst einmal ganz einfacher Fall): man definiert verschiedene "Eigenschaften" als bits: z. B. wenn ein stein dort steht, so setze deinen an jenen Platz.
Von diesen Variablen, die diese Eigenschaft haben oder nicht (zufällig ausgelost) erstellt man einige tausend (oder noch mehr). Die lässt man dann gegeneinander antreten. Die besten davon nimmt man, lässt sie miteinander "paaren" (d. h. einige Bits bei beiden werden zufällig geändert und vor allem entscheidet man bei jedem Bit per Zufall, von welchem der beiden "Eltern" jedes "Gen" genommen wird).

Die, die schlechter sind, konnten dem "Selektionsdruck" nicht folgen und diese löscht man.

Bei der neuen Generation wiederholt man das ganze und so weiter und so fort.

Zumindest bei einfachen Problemen (z. B. 8 Damen) ist die genetische Programmierung anderen Standardverfahren nach Angaben einer mir bekannten Person, die sich auch damit beschäftigt hat, haushoch überlegen.

Das einzige Problem: eine einfache Einbindung als DLL reicht nicht. Vielmehr muss ich durch ein selbstgeschriebenes Rahmenprogramm automatisch abertauende "Wettkämpfe" austragen können, was eine sehr gute Anbindung an die das Spiel erfordert (meines Erachtens nicht so einfach zu programmieren).

P. S.: Modi, wenn es dich interessiert, kann ich dir gerne einen Artikel dazu aus einem Sonderheft von "Spektrum der Wissenschaft" einscannen und zusenden

PPS: Java ist eiegntlich das gleiche wie C#: Nimm das SOFORT zurück! :wink:
Der Zyklustyp einer Permutation ist konjugationsinvariant.
Benutzeravatar
The.Modificator
Forscher
Beiträge: 2030
Registriert: 06.02.2004, 16:54

Beitrag von The.Modificator » 11.03.2005, 14:47

TheSearcher hat geschrieben:P. S.: Modi, wenn es dich interessiert, kann ich dir gerne einen Artikel dazu aus einem Sonderheft von "Spektrum der Wissenschaft" einscannen und zusenden
Jo - wäre echt super!
TheSearcher hat geschrieben:PPS: Java ist eiegntlich das gleiche wie C#: Nimm das SOFORT zurück! :wink:
:lol: ...nagut! :D Dann erkläre mir die Unterschiede! :P
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 » 11.03.2005, 19:53

@Searcher:
So wie ich das sehe, brauchst Du für die Entwicklung eines Computergegners mit der genetischen Programmierung erst mal gar keine Anbindung an das Spiel. Dein Rahmenprogramm muss nur die Spielregeln berücksichtigen. Ansonsten läuft dann ja erst mal für eine Weile ein interner Ausscheid, der dazu dient, einen bestimmten Algorithmus zu finden.
Natürlich wäre es gut, ein weiteres Programm zu haben, welches wie ein richtiger DUDOS-Client arbeitet und Deinen gefundenen Algorithmus dann im Spiel gegen menschliche Gegner oder andere Computergegner zeigen lässt, was er schon kann.

Allerdings vermute ich, dass die Entwicklung recht lange Testreihen erfordert. Als ich meinen Computergegner geschrieben habe, bin ich nämlich auf zwei Probleme gestoßen, die sehr schwer zu handhaben sind:
1. Die variable Anzahl an Spielern.
2. Der Würfel.
Das macht es bei Tests sehr schwierig, zu entscheiden, welcher Spieler denn nun wirklich besser ist.
Auch eine Vorausberechnung über mehrere Züge, wie sie z.B. beim Schach gut funktioniert, ist hier nicht so einfach.
Das ist auch der Grund dafür, dass mein jetziger Computergegner noch recht einfach bezwingbar ist (außer er hat Glück beim Würfeln :twisted: ).

Es wäre aber sicher sehr interessant, mal auszuprobieren, was diese Art der Programmentwicklung hier an Ergebnissen bringt. Versuche es doch mal. Wenn Du mehr Informationen zu den Spielregeln brauchst, die im Programm berücksichtigt werden müssen, melde Dich einfach bei mir.

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

Beitrag von TheSearcher » 11.03.2005, 19:54

Java nimmt es mit der Plattformunabhängigkeit sehr genau: so läuft es auch unter Linux & Solaris. C# obwohl es auch einen JIT (Just in Time)-Compiler benutzt schon aus ideologischen Gründen (stammt von microsoft) nur unter Windows.

Java ist wirklich erheblich schneller als C# (selbst getestet) -> Hot Spot Technologie sei Dank!

Java ist mittlerweile unter einer sehr liberalen Lizenz verfügbar: jeder darf Einblick in den Quellcode bekommen, nur wer Änderungen machen und veröffentlichen will, muss erst eine aufwändige Überprüfung durch Sun machen lassen (dient dazu, dass sich java nicht in unzählige Dialekte aufspaltet, wie sich Linux in unzählige Distributionen aufgespalten hat). Du glaubst doch nicht im Ernst, dass MS überhaupt Einblick in den Quellcode von C# gibt.

Weiterhin bestimmen bei Java mitllerweile die Nutzer demokratisch durch den Java Community Process (JCP), wie sich die Sprache weiterentwickelt. Bei C# bestimmt allein Microsoft.

Um in C# Zugriff auf native Funktionen zu bekommen, muss man microsoftspezifische Methoden verwenden. Bei Java ist die Schnittstelle (JNI) offen.

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). Jedoch sind die APis sehr unterschiedlich.
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 » 11.03.2005, 22:10

@all:
Nachdem Searcher das Thema hier angesprochen hat, muss ich mich mal mit einer Anfrage an alle wenden. Hätte vielleicht jemand von Euch Zeit und Lust sich mit der Programmierung für einen Lobby-Server für D.U.D.O.S. zu beschäftigen?
Im Moment müssen die Spieler Ihre IP-Adressen austauschen, um sich dann direkt miteinander zu verbinden. Das ist eine Verfahrensweise, die unter Freunden sicher unproblematisch ist. Aber auf diese Weise neue Mitspieler zu finden, ist etwas schwierig. Ein solcher Lobby-Server, wie Searcher ihn erwähnt hat, wäre für das Spiel deshalb ein großer Fortschritt. Ich selbst müsste mich erst mühsam in die Jawa-Programmierung einarbeiten. Ich habe zwar schon mal damit angefangen, aber bis ich in der Lage bin, so ein Programm zu schreiben, wird wohl noch etwas Zeit vergehen. Ich könnte deshalb wirklich etwas Hilfe gebrauchen.
Als ich anfing, mich mit der Programmierung von D.U.D.O.S. zu beschäftigen, wusste ich zuerst auch noch nicht, worauf ich mich da einlasse. Ich habe aber sehr bald gemerkt, das es sich hier um ein Spiel handelt, dass sehr viel Spass macht und die Arbeit auch wert ist.
Bitte denkt mal drüber nach.

D.U.D.O.S.

Viele Grüße
Gu.Ro
Benutzeravatar
KlyX
Forscher
Beiträge: 4445
Registriert: 05.02.2004, 17:37
Wohnort: Langenthal, Schweiz
Alter: 40
Kontaktdaten:

Beitrag von KlyX » 11.03.2005, 22:15

Kann man das nicht einfach machen, mit einer Datenbank?
Sone DB, die aufm Server immer die IPs der Spieler speichert oder so *grübel*

Wirf einen Blick in meinen Blog - und kommetiere :-)
Chris' Weblog
abacado.com - Total neu
Benutzeravatar
susi
Forscher
Beiträge: 1031
Registriert: 06.02.2004, 13:14
Geschlecht: weiblich
Wohnort: NRW
Alter: 51
Kontaktdaten:

Beitrag von susi » 11.03.2005, 23:35

Wirklich tolles Spiel :wink: Habe heute sogar mal gegen drei Leute gewonnen 8) Stolz bin :D

Gruß Susi
Ein neues Abenteuer wartet auf uns. Denn, das Ende ist doch noch nicht geschrieben.Bild
FFA Forum
Susis Blog
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:42

Ja,

das war echt ein starkes Spiel Susi. Und ein harter Kampf mit den D.U.D.O.S.-Profis.

Gu.Ro
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

@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
Antworten