Benutzer mit den meisten Antworten
Programmierung eines Simplen Spiels

Frage
-
Hallo werte Community,
Nach langen Überlegen, bin ich nun Entschlossen ein kleines Spiel zu programmieren. Ich habe mich Entschieden mein Eigenes "Mafia" zu programmieren. Wer Knuddels de kennt, kennt ebenfalls das Spiel. Es gibt bei diesen Spiel 3 Rassen. Das Böse, die Mafia und die Bürger. Das Ziel jeder Klasse ist es, alle andere Klassen durch Tipps am Tag zu erhängen und durch Mafia Angriffen am Abend zu vernichten. Nur habe ich noch keinerlei Ahnung wie ich anfangen soll und mit was. Das Spiel würde ich vorerst in Forms schreiben, da ich mit WPF nicht viel Erfahrung besitze.
Dadurch, da ja das Spiel Online laufen soll, wäre dies mein erster Gedanke, ein Programm zu starten das dann über einen Server läuft, wo auch ein Server reichen würde, der nur dann Online ist, wenn ich persönlich ihn starte (Art TCP Server).
Die Leute, können dann wenn der Server gestartet ist einfach mit dem Clienten das Spiel starten können, und dann dorten per Button Klick eine neue Runde beginnen. Wie ich den Spielablauf machen werde habe ich bereits geplant.
Nun zu den Problemen:
1.) Ich habe keinerlei Ahnung wie ich das Spiel " Online " bringen kann, sodass alles über einen Server läuft, der dann Online ist, wenn ich selbst ihn gestartet habe.
2.) Wie können User dann auf diesen Server connecten um gemeinsam das Spiel spielen zu können?
- Wäre wirklich sehr dankbar für einige Tipps und Tricks wie ich das ganze Gestalten und schreiben kann.
- Gegenfragen werden gerne angenommen. :)
Mit freundlichen Grüßen.
Antworten
-
Hi,
ob TCP in deinem Fall die beste Wahl ist, hängt von deinen Anforderungen ab. Ob Du UDP oder TCP nehmen solltest, kann ich dir daher nicht beantworten (ich würde aber wohl TCP vorziehen). Einige Hinweise und Erklärungen findest Du hier:
http://stackoverflow.com/questions/5594180/udpclient-vs-tcpclient
Ich denke nicht, dass es in deinem Fall auf Milisekunden ankommt. Daher wäre TCP IMHO die bessere Wahl.
Was meinst Du mit "können andere User direkt connecten ohne Probleme"? Die Clients bauen ihre Verbindung ja zum Server auf. Wenn dein Server jetzt bspw. auf Port 12345 läuft, müssen die Clients diesen erreichen können. Das kann sowohl beim Client unterbunden werden (bspw. durch eine Firewall, die nur bestimmte Ports erlaubt) als auch beim Server (ebenfalls eine Firewall, ggfs. auch ein Router, bei dem ein Portforwarding fehlt), ...
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Marcel RomaModerator Dienstag, 11. Juni 2013 08:48
Alle Antworten
-
Hi,
ein paar Gegenfragen hätte ich :)
1. Wie kann man deine Programmierkenntnisse generell einschätzen? Sehr gut, gut, ...?
2. Du weißt, dass Du dir da ziemlich viel vorgenommen hast?
Ein paar Beispiele für einen TcpServer findest Du hier:
http://www.codeproject.com/Articles/488668/Csharp-NET-TCP-Server
http://dotnet-snippets.de/snippet/tcp-server-mit-einer-zeile-code/511
http://stackoverflow.com/questions/9821677/is-tcp-listener-and-tcp-server-same-thing-in-c
Die "User" bzw. eher deine Clientanwendung verbinden sich auf eine bestimmte IP Adresse und einen bestimmten Port. Je nachdem, wo dein Server dann laufen soll, muss man dann evtl. noch Firewalls, Router, ... konfigurieren, damit der Zugriff funktioniert.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo Stefan,
also zu Punkt 1)
- Ich bin kein Profi im Programmieren aber auch nicht unbedingt schlecht. Ich sage es mal so, wenn ich etwas erschaffen möchte, dann schaffe ich es auch, und da komme ich auch gleich zu Punkt 2, denn ich habe einfach die Geduld dazu etwas zu schaffen das dann auch wirklich funktioniert. Ich weiß auch, dass es sehr viel Arbeit kostet, aber ich möchte einfach nicht nur kleines Zeugs programmieren wie Snake oder der gleichen sondern auch ein Projekt, welches mal länger dauert. :)
Deine Links werde ich mir dann eben einmal ansehen und mich danach wieder melden.
- Eine Frage habe ich dazu: Ist dir das Spiel zufälliger weiße bekannt?
Mit freundlichen Grüßen.
-
Hi,
ich finde es prima, dass Du trotz (oder gerade wegen) der Erkenntnis, dass das sehr viel Arbeit sein wird, den Elan aufbringst, das durchzuziehen.
Das Spiel kenne ich nicht. Für Spiele fehlt mir zum einen die Zeit, zum anderen würde ich, wenn ich die Zeit hätte, eine anderes Genre bevorzugen :)
Bei Fragen einfach nochmal hier melden. Hierzu noch ein kleiner Tipp: Fragen, die mit deinen beiden Ursprungsfragen nicht wirklich was zu tun haben, sind in einem neuen Thread besser aufgehoben, da man dann jeweils kürzere Threads und damit eine bessere Übersicht hat. Zudem finden sich für neue(re) Threads meist mehr Leute, die helfen wollen.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo,
Danke :)
Nochmals danke für die oben angeführten Links, werde sie mal durchgehen und herum probieren, denn wenn ich die Verbindung zwischen Client und Server herstellen kann wird es auch für mich um einiges leichter. :)
Aber eine Frage noch zu deinen TCP Posts: Ist es am besten wenn ich TCP benutze, und können dort auch andere User direkt connecten ohne Probleme?
Mit freundlichen Grüßen.
- Bearbeitet MrBlubb Dienstag, 28. Mai 2013 22:14
-
Hi,
ob TCP in deinem Fall die beste Wahl ist, hängt von deinen Anforderungen ab. Ob Du UDP oder TCP nehmen solltest, kann ich dir daher nicht beantworten (ich würde aber wohl TCP vorziehen). Einige Hinweise und Erklärungen findest Du hier:
http://stackoverflow.com/questions/5594180/udpclient-vs-tcpclient
Ich denke nicht, dass es in deinem Fall auf Milisekunden ankommt. Daher wäre TCP IMHO die bessere Wahl.
Was meinst Du mit "können andere User direkt connecten ohne Probleme"? Die Clients bauen ihre Verbindung ja zum Server auf. Wenn dein Server jetzt bspw. auf Port 12345 läuft, müssen die Clients diesen erreichen können. Das kann sowohl beim Client unterbunden werden (bspw. durch eine Firewall, die nur bestimmte Ports erlaubt) als auch beim Server (ebenfalls eine Firewall, ggfs. auch ein Router, bei dem ein Portforwarding fehlt), ...
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Marcel RomaModerator Dienstag, 11. Juni 2013 08:48
-
Hallo,
Nein, also es kommt nicht auf Millisekunden an. :) Das wäre meiner Meinung auch übertrieben.
Deine Links werde ich mir anschließend auch noch ansehen und nochmals danke darüber.
Dadurch das ich mich nie richtig mit TCP beschäftigt habe kenne ich mich nicht darüber aus, aber werde mir wie oben geschrieben erstmal alles durchlesen.
Mit freundlichen Grüßen.