Ich wollte zusammen mit ein paar Freunde ein Internetspiel machen also Client herunterladen aber wie bei WOW das man gegeneinander spielt.
Für den Client wollte ich PyGame nehmen.
Aber wie geht das mit dem Server, ich hatte mir das so überlegt das es auf dem Server ein spezielles File hat mit den Informationen über die Spielwelt und das dann der Client dieses sieht und verarbeiten kann und dann die Veränderungen die der Spieler an der Spielwelt gemacht hat schickt. Stimmt das so vom Konzept?
Internet Game
@fail: Du brauchst auf dem Server (Rechner) einen Server (Programm), den den Zustand der Spielwelt kennt und Veränderungen die Clients an der Spielwelt vornehmen entgegennimmt und den neuen Zustand an die Clients verteilt. Wie man das konkret macht, hängt unter anderem von der Art des Spiels ab. Ein rundenbasiertes ”Brettspiel” hat zum Beispiel andere Anforderungen als ein Ballerspiel.
Du könntest dir mal die Funktionen innerhalb des Moduls "socket" ansehen. Damit kannst du eine Netzwerkverbindung aufbauen.
Wenn du eine Netzwerkverbindung hast, kannst du Daten durch die Gegend schieben, bei denen es egal ist, ob es sich um einen Chat oder um Spieldaten handelt.
Wenn du beispielsweise ein TicTacToe-Netzwerkspiel bastelst, dann muss der Server das Spielfeld verwalten und sich um die Computerzüge kümmern. Der Client, also der menschliche Spieler, macht dann lediglich die Eingaben, schickt sie an den Server, der wertet diese aus und bestimmt, ob sie gültig sind und schickt dann ein gültiges Spielbrett zurück.
Probiere für den Anfang mal etwas leichtes aus und sammel so Erfahrung. Ein Chat ist schon schwer, wenn man gerade anfängt, aber leicht, wenn man sich ein wenig auskennt.
Kannst dir auch SocketServer (http://docs.python.org/3/library/socketserver.html) anschauen. Socket (http://docs.python.org/3/library/socket ... t-families) sollte aber auch erst einmal genügen.
Xe
Wenn du eine Netzwerkverbindung hast, kannst du Daten durch die Gegend schieben, bei denen es egal ist, ob es sich um einen Chat oder um Spieldaten handelt.
Wenn du beispielsweise ein TicTacToe-Netzwerkspiel bastelst, dann muss der Server das Spielfeld verwalten und sich um die Computerzüge kümmern. Der Client, also der menschliche Spieler, macht dann lediglich die Eingaben, schickt sie an den Server, der wertet diese aus und bestimmt, ob sie gültig sind und schickt dann ein gültiges Spielbrett zurück.
Probiere für den Anfang mal etwas leichtes aus und sammel so Erfahrung. Ein Chat ist schon schwer, wenn man gerade anfängt, aber leicht, wenn man sich ein wenig auskennt.
Kannst dir auch SocketServer (http://docs.python.org/3/library/socketserver.html) anschauen. Socket (http://docs.python.org/3/library/socket ... t-families) sollte aber auch erst einmal genügen.
Xe
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Es kommt drauf an!fail hat geschrieben:Kann ich mit tkinter das game machen oder sollte ich pygame nehmen
Ich vermute ehrlich gesagt, dass es Dir noch stark an den Grundlagen von Python und der Programmierung an sich fehlt... da würde ich mich erst einmal auf das wesentliche beschränken. GUIs erfordern *immer* das Wissen über Nebenläufigkeit - ein fertiges GUI-Toolkit erleichert es einem insofern, als dass man keine eigene Eventloop bauen muss, wie z.B. bei PyGame. Andererseits erfordern sie quasi immer das Beherrschen von OOP, was einem Anfänger auch oftmals fehlt.
Da Du ja ein online Spiel erstellen willst, vermutlich auch noch "Echtzeit" fähig, kommen da dann noch komplexe Anforderungen an Netzwerkkommunikation und mögliche Protokolle hinzu.
Ziemlich viel für jemanden, der - pardon - seine Fragen in einer eher unbedarften Manier äußert
Vielleicht irre ich mich ja auch, aber wenn Du wirklich ein Anfänger bist, dann übernimmst Du Dich bei einem solchen Projekt vermutlich. Evtl. wäre es klüger, die Anforderungen ein wenig runter zu schrauben und ggf. ein Konsolenspielchen zu erstellen. Für dieses kannst Du Dir ja vornehmen, später Netzwerkfähigkeit dazu zu packen. Wenn das dann läuft, spendierst Du dem ganzen eine GUI, usw. Also Schritt für Schritt und nicht alles auf einmal
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Ich würde mich da Hyperions letzten Absatz anschliessen. Implementiere ein „Nicht-Echtzeitspiel”, zum Beispiel ein Karten- oder Brettspiel, und zwar mit einer möglichst sauberen Trennung zwischen Spiellogik und Benutzerinteraktion. Da kann man dann eine GUI drauf setzen. Und wenn das läuft, kann man eine Netzwerkschicht zwischen Anzeige — dann Client — und Spiellogik — dann Server — einziehen. Das alles gleich von Anfang an und als Anfänger wäre schon ziemlich heftig.