Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

30.09.2009, 12:28

Eine Server/Clientversion für ein RPG erstellen

Hallo erst einmal

da ich neu hier bin, und zur Thematik "Programmierung" eher an den Anfängen stehe, dachte ich mir eh ich jetzt direkt damit beginne hole ich mir mal die ein oder andere Anregung.

Zum besseren Verständnis das Ziel:
Ein Programm zu schreiben welches einen Server für ein Spiel bereitstellt. Hierfür wird in diesem Programm eine Art Chat, eine Serverliste und natürlich die Möglichkeit des hostens eines Servers/des Clientseitigen beitreten auf einem Server benötigt. Am besten mit der Möglichkeit updates zu saugen falls auf diesem Server eine Modifizierte Version zur Verfügung steht.

Ich weisst nicht ob es dahingehend evtl. besser wäre das Ganze zu splitten und eine Server und eine Clientversion getrennt voneinander zu erstellen. Lieber wäre es mir aber wenn man alles in einem Programm vereinen könnte.

Zur Verfügung habe ich:
MV C++ 2008 Express
Raknet
und natürlich die Informationen (Klassenlayout) des Spiels

Kenntnisse: Html, CSS, Php, Java Skript | Serververständnis für Counterstrike, Condition Zero, Source + Mods dieser Spiele

Da jedoch bei diesen Spielen eigentlich nur die Struktur selbst erstellt, Serverdaten gedownloadet werden und am Ende nur noch Einstellungen zur Verbesserung der performance vorgenommen werden ist es im Grunde für mich auch nur eine Installation an sich. Ich kann des weiteren Server für diverse Voicesoftware erstellen (was im Grunde das selbe ist) und Maps erstellen + dementsprechend Models/Texturen/Sprites sowie Sounds verändern usw.

Für das Projekt an sich habe ich mich vor einiger Zeit mal ins Modifizieren eingearbeitet, verstanden wie man bestimmte KI verändert/erstellt, Mapspezifische Veränderungen usw. Im Grunde war das einfach da Kenntnisse aus dem Counterstrike Bereich hierbei sehr halfen. Es geht um ein RPG welches bis dato kein Multiplayer/Coopmodus unterstützt. Möglich ist es!

Nun gut, soviel dazu und ich hoffe das die Informationen Euch ungefähr meinen Kenntnisstand darlegen. Ich möchte möglichst ohne das Dosfenster arbeiten es sollte für den Server eine Grafische Oberfläche geben die jedem ermöglichen soll den Server einigermassen leicht zu managen.

Meine Vorstellung bis dato:
Das Programm selbst geht auf, man sieht in der Übersicht oben die Playerdaten (man sollte sie selbst verändern können), darunter die direct connect Infos (IP:Port) mit Testmöglichkeit (Status) darunter die Serverliste und ganz am Ende dann die Möglichkeit zum Hosten. (Servername/Modname, IP Adresse und Port des Servers)

Sollte man als Client connecten wollen geht einfach nur das Spiel auf und verbindet sich mit dem Server. Bevor man auf den Server gelangt zieht man sich natürlich noch die notwendigen Änderungen um das Spiel für jeden gleich Aktuell zu halten.

Sollte man einen Server stellen wollen würde ich es noch am besten finden wenn es in der Art wie bei Freelancer funktioniert. Hierbei geht ein Serverstatus Fenster auf was den Ping und die Serverinfos anzeigt, des weiteren würde ich es noch gut finden über diese Übersicht gleich noch IP/Userid Kick/Bann Möglichkeiten einzubauen. Dies ist glaube ich jedoch später immer noch möglich, das eigentliche Ziel: Coop/Multiplayer

Ich hoffe das das ungefähr zeigt was ich tun möchte und würde mich freuen hier in diesem Board Kenntnisse zu erlangen das Ziel auch zu erreichen. Mir ist durch einen ersten Versuch sehr wohl klar wie Umfangreich das Ganze ist. Ich würde am Ende meine Erfahrungen hier im Board gesammelt zur Verfügung stellen um auch anderen Usern damit zu helfen. Es wird sozusagen eine Art Rezession: Wie erstelle ich für mein Lieblingsspiel einen Coop/Multiplayer Modus.

Ich wäre Dankbar wenn Ihr bestimmte Fachbegriffe etwas erläutern würdet solltet Ihr mir mit Infos zur Seite stehen. Des weiteren mag ich keine Tutorials ala „Hallo Welt“ sie sind nicht Produktiv und der Lerneffekt ziemlich mässig. Dies zumindest ist meine Erfahrung da Html/Php sicherlich auch Tausende hiervon zur Verfügung stellte, es jedoch auch Ohne diese ging.

Roland

ChrisJ

Alter Hase

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

2

30.09.2009, 12:35

Re: Eine Server/Clientversion für ein RPG erstellen

ist alles tagträumerei.

Zitat von »"CSARoland"«

Des weiteren mag ich keine Tutorials ala „Hallo Welt“ sie sind nicht Produktiv und der Lerneffekt ziemlich mässig. Dies zumindest ist meine Erfahrung da Html/Php sicherlich auch Tausende hiervon zur Verfügung stellte, es jedoch auch Ohne diese ging.


lern die grundlagen, dann wirst du sehen, dass deine vorstellung utopisch ist
"Don't trust your eyes: They are a hell of a lot smarter than you are"

3

30.09.2009, 13:02

Seh ich das richtig, dass du einen Multiplayerserver + Spiel schreiben willst und kein C/C++ kannst?

Das funktioniert nicht wie modden, das ist doch etwas komplexer.
Sicher das du das alleine machen willst? Die meisten suchen sich für soetwas mehrere Teammitglieder und selbst dann bekommen sie oft zu hören, dass sie das sehr wahrscheinlich nicht schaffen werden.

Schau dich lieber nach einem entsprechenden Game Maker um.

Wenn es dir um das Programmieren geht, kommst du um die Basics nciht herum.

Btw. Hello World ist das erste Beispiel, dass ich bei einer neuen Programmiersprache als erstes duchnehme.

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

4

30.09.2009, 13:03

Re: Eine Server/Clientversion für ein RPG erstellen

Zitat von »"CSARoland"«

Es geht um ein RPG welches bis dato kein Multiplayer/Coopmodus unterstützt. Möglich ist es!


Versteh ich das richtig? Du willst einen Multiplayer für ein Spiel schreiben, das von sich aus nicht multiplayer-fähig ist??
Es tut mir leid, aber ich muss da schon sagen, dass du KEINE AHNUNG von der Thematik hast, und nicht mal weißt was möglich und was unmöglich ist.
Wenn dich Spieleprogrammierung interessiert, lerns erstmal, bevor du mit solchen Ideen anrückst.
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

5

30.09.2009, 13:05

Kannst dir ja mal die Quake3 Engine anschauen, wie da das Server-Client Modell aufgebaut ist.
Willst ja keine Tutorials, also kannste gleich da voll durchstarten, is ja total einfach ...

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

6

30.09.2009, 13:11

Multiplayermodi für Spiele zu schreiben die von sich aus nicht Multiplayertauglich sind ist eine unheimlich komplizierte Sache.

Es erfordert zum einen sehr viel
- Erfahrung in Hardwarenahen Sprachen inkl Assembler
- Erfahrungen im Reverse Engineering
- Erfahrungen in der Netzwerktechnik
- Erfahrungen in der Serverentwicklung
- Erfahrung in der Parallelen Programmierung
- und vermutlich auch Erfahrung in vielen Themen die ich jetzt vergessen habe...

Und zuletzt brauchst du einen riesen Haufen Glück, dass das mit deinem Lieblingsspiel überhaupt möglich ist, davon gibt es nur sehr, sehr wenige.

GTA SA z.B. hat ein Community Mod der Multiplayerunterstützung hinzufügt, aber selbst dieser hat erst nach Jahren wirklich gut funktioniert. Andere sind mir nicht bekannt.

7

30.09.2009, 13:42

Ui ... böses Blut?

@ ChrisJ
Thx 4 Help!

@ Chriss
Nein, ich möchte für ein vorhandenes Spiel einen Coop/Multiplayer ;) Sinnvoll ist warscheinlich erst einmal 2 Personen miteinander zu koordinieren ect. pp. dabei lernt man sicher schon ein grosses Stück dazu. Game Maker wird mir da nicht helfen, hab mich schon im Vorfeld informiert was was kann, was macht ect. pp.
Von der Theorie her bräuchte ich ja nicht mal Raknet, wenn ich nicht gehört/gelesen hätte das es wohl das beste/einfachste/stabilste wäre obwohl sich da die Geister scheiden.
Klar sind Basics wichtig, aber wenn man ein einfaches Mailto baut hat man das Hallowelt schon übersprungen und arbeitet mit weit aus mehr Basics und das im Verlauf einer Website nach und nach ja immer mehr. Datenbanken, register, Login ect. pp. Hoffe du verstehst was ich meine ein Beispiel wäre zb die Lobby welche defintiv benötigt wird. Aber das ist ja hier nicht das Thema, sondern eher die Logische Reihenfolge. Für mich ist diese: Benutzeroberfläche (easy weil mans sieht) das weitaus schwierigere das diese ja Funktionen Beiinhaltet, so nimmt man jetzt als bsp. eine Lobby Was für "Teile würde ich dort benötigen" "welche Funktionen müssten diese mitbringen" (Connect=geh da und da hin) Eingabe und übergabe der dementsprechenden Infos. Wo wir beim Thema Raknet wären wo ich mir absolut nicht vorstellen kann wie ich es verbinde (BSP: Funktionen in php Schreiben die erstens eine Formatierung, anordnungen/Farben ect., und natürlich daten verarbeitet also übergibt an skript B)

@ Black-Panther
Thx 4 Help!

@ xardias
Das weiss ich, IDA Pro Free sagt denke ich genug aus, ich muss zugeben einiges dort ist für mich zu hoch, aber das wird mit der Zeit Schritt für Schritt verstänndlicher. Ich weiss auch das einfach Werte verändern es zb. nicht Bringt habs mal ein paar Tage versucht. Dennoch verfüge ich über die Genutzten Meshes/Texturen/Animationen ect. pp. und "kann" diese hierfür nutzen, auch einige schon vorhandene Versionen die mit Positionssynchronisierung mittels Speichermanipulation arbeiten habe ich mal auseinandergenommen, jedoch weiss ich zb dort nicht wie ich zb. die IP finde welche atm. localhost(127.0.0.1) verwendet welchen ich aber nicht in meinem Netzwerk angepeilt bekomme um zumindest zu verstehen was er da genau treibt. Versuche ich also mit Pc2 mit dem clienttool zu connecten findet er den erstellten Server unter 127.0.0.1 nicht das es ja der "localhost PC2" wäre der angepeilt würde. Ändere ich die Ips in Netzwerkips funzt das zb. auch nicht da der Server sich selbst nur auf dieser localhost ip erstellen lässt.

Fangen wir mal klein an: Wie schaffe ich jetzt eine Verbindung von Pc2 auf den Server von Pc2? Das würde mir zb schon Helfen erst einmal an den Punkt zu kommen beide in ein Spiel zu bringen. Hiernach könnte ich zum besseren verstänndniss anfangen weitere Animationen hinzuzufügen, da dies anscheinend noch nicht getan wurde. Das würde mir dann später als Hilfestellung für das eigendliche Projekt dienen, denn auf diesem Weg wird das Projekt in dieser Form nicht gelingen.

Roland

goldfisch007

Alter Hase

Beiträge: 446

Wohnort: Süden von Berlin

  • Private Nachricht senden

8

30.09.2009, 14:02

nur nochmal so für mich:

du kannst einen haufen websprachen (php etc.)
und willst jetzt nen client (+den multiplayer part ?) mit c++
schreiben?


denn dann würde auch ich dir empfehlen, erstma von grundauf
die grundlagen zu lernen wenn du die kannst wäre es eine idee
über ein "konsolenchatprogramm" die grundlagen einer beliebigen
netzwerklib anzueignen und dann könnte man bestimmt auch an 2d rangehen...

wenn du das aba auf basis einer anderen sprache machen willst (oder einer die du schon gut kannst) dann mach das und zieh dir ma nen tut über raknet rein (glaube nox ist da ganz bewandert....)

viel erfolg

ZUSATZ: das soll in keinster weise arrogant rüber kommen aba wie oben schon geschrieben du keinen gamemaker verwenden willst und die sprache (c++) nicht beherrschst dann kann das einfach verdammt lange dauern und frustierend sein
Wir bauen auf und reißen nieder, so ham wir Arbeit ima wieder...
--------------------
http://www.piratenpartei.de/tmp/images/Slogans_5_0.png
--------------------
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender, geklaut von Helmut xD)

9

30.09.2009, 15:59

Re: Ui ... böses Blut?

Zitat von »"CSARoland"«

Nein, ich möchte für ein vorhandenes Spiel einen Coop/Multiplayer ;)

Du willst in ein Spiel eine grundlegende Funktionlität verpassen, die niemals vorgesehen war. Und zudem hast du keinen Source Code.

Wie stellst du dir das vor?

Das einzige was ich mir vorstellen könnte, wäre es ein Mod für ein Spiel zu erstellen, welches Multiplayer unterstüzt und für Modding vorgesehen ist. Beispielsweise Half Life oder Unreal Tournament

10

30.09.2009, 16:05

Herzlichen Dank!

@Chriss
Genau das, und nein ich möchte das für eines deiner genannten Spiele nicht tun, sie schaffen diese Grössen der Welten garnicht! Aber danke die Idee kam mir auch mal, doch schon die erste Karte kam schon mit nichtmal 1% der eigendlichen Kartengrösse schon an Ihre Grenzen.

Ich stelle es mir nicht nur vor ich habe es schon gesehn, aber es geht mir zu langsam und den Sourcecode will man wie immer nicht rausrücken (ohne viele Leute wirds aber zu lang dauern meiner Meinung nach da Animationen, KI, ect. ja angepasst werden müssen), eine Karte von der Grösse(1%) baue ich in einer Woche, mit Schwierigkeiten beim comilieren zwechs des vis ect. pp. ich denke schon das ich wenn ich dran bleibe erste erfolge in einem Monat erzielen "kann" +- 1-2 Wochen bei heftigen Schwierigkeiten.

Ich wende mich hier an dieses Board auch nur nach endosen Versuchen ohne Erfolge, würde es voran gehen und ich hätte noch "Ansätze zum verfolgen" hätte ich nicht nach einem geeigneten Board gesucht wo man ggf helfen könnte. Ich möchte ja einfach nur verstehen was denn die Fehler sein könnten und schauen ob andere Wege funktionieren. Aber ich werde schon noch datailierter wie man inerhalb der posts sieht.

Problem: UDP!

http://msdn.microsoft.com/ war ganz hilfreich da ich mich nochmal an das source des Programmes welches ich in meinem letzten Post erwähnte ranwagte, wie beschrieben behandelt es die Verbindung mit einer Positionssynchronisierung mittels Speichermanipulation. Evtl. könntet Ihr mir jedoch hierbei helfen, denn es arbeitet mit Net.Sockets.TcpClient ich möchte gern UDP verwenden da es im allgemeinen(zumindest las ich das) für solche Projekte weitaus besser wäre. Müsste ich jetzt dementsprechend alles am Skript umschreiben unter verwendung von Net.Sockets.UdpClient? Also somit natürlich alles was verarbeitet wird anpassen und fertig? Oder käme dort auf mich eine "Hürde" zu die etwas hier am Netzwerk/Pc kaputtmachen könnte?

Roland

Werbeanzeige