|
Gibt es irgentein 3dgs multiplayerspiel dass....
#165350
11/02/07 21:29
11/02/07 21:29
|
Joined: Jan 2007
Posts: 2,247 Deutsch Niedersachsen
Puppeteer
OP
Expert
|
OP
Expert
Joined: Jan 2007
Posts: 2,247
Deutsch Niedersachsen
|
... über internet funktioniert? Ich würd mir gern mal die command lines ansehen. weil ichs einfach nicht hinbekomme.
Thx Omega
Last edited by DerOmega; 11/02/07 22:20.
|
|
|
Re: Gibt es irgentein 3dgs multiplayerspiel dass..
[Re: Puppeteer]
#165351
11/02/07 21:38
11/02/07 21:38
|
Anonymous
Unregistered
|
Anonymous
Unregistered
|
Frag mal thorsten(tsgames). der hat schon 2 oder mehr mp games gemacht
|
|
|
Re: Gibt es irgentein 3dgs multiplayerspiel dass..
[Re: Damocles]
#165353
11/04/07 14:59
11/04/07 14:59
|
Joined: Nov 2002
Posts: 913 Berlin, Germany
SchokoKeks
User
|
User
Joined: Nov 2002
Posts: 913
Berlin, Germany
|
Es gibt viele 3dgs Multiplayerspiele, die über das Internet funktionieren. Vor 2 Jahren hab ich "Space Dogfights Online" hier ins Forum gestellt, leider hab ich alle Daten davon verloren, und der Server-Browser ist auch offline. Mein momentanes Projekt habe ich aber schon über 10 mal problemlos mit Freunden über das Internet getestet. Die "command lines" funktionieren genauso wie im Netzwerk. Es gibt jedoch ein Problem: Die meisten Internetbenutzer sitzen heute hinter einem Router (NAT). Deswegen muss derjenige, der den Server startet (Host), zwei Sachen machen: 1. Die "echte" IP herausfinden, hinter der der Router sitzt. Am einfachsten geht das, indem man mal schnell die Seite http://www.wieistmeineip.de/ aufruft. 2. Er muss mehrere Ports vom Router zu seinem PC durchschalten. Wenn nämlich ein Mitspieler aus dem Internet auf den eröffneten Server beitreten will, kommt seine Anfrage zuerst beim Router an. Der muss entscheiden, an welchen Computer im lokalen Netzwerk (also z.b. beim Host zuhause) er die Anfrage weiterleiten muss. Aus Sicherheitsgründen macht der Router mit der Anfrage aber gar nichts, solange niemand per Hand eingestellt hat, wohin (Ports) die Anfrage soll. Das ist gar nicht einfach, weil fast jeder Router n anderes Menü für diese Einstellung hat... Das 3D-Gamestudio nutzt die Ports 6073 und 2302 bis 2400, UDP und TCP. Möglicherweise muss man nicht immer alle von denen weiterleiten, aber um Frust zu vermeiden, ist es besser das gleich zu tun. Und wie leitet man die Ports nun weiter? Wer Englisch kann, dem empfehle ich diese Seite: http://www.portforward.com/ . Ob man das richtig gemacht hat, kann man leider nicht ohne weiteres testen. Meistens liegen die Probleme, wenn die Verbindung im Netzwerk aber nicht im Internet klappt, in diesem Schritt. Nachdem der Host dies gemacht hat, startet er das Spiel mit der "command line" spiel.exe -sv [-diag] bzw spiel.exe -sv -cl wenn er selber mitspielen will Die Mitspieler (Clients) starten das Spiel wie folgt: spiel.exe -cl -ip xxx.xxx.xxx.xxx [-pl meinname] Die Befehle in [ ] sind hilfreich, aber nicht notwendig. Einfach mal im Handbuch nachschlagen, was sie bringen. xxx.xxx.xxx.xxx ist die IP, die in Schritt 1 herausgefunden wurde. Der Host muss sie irgendwie an die Mitspieler weitergeben, z.b. über Email oder Instant Messaging. Die Mitspieler müssen nichts in ihrem Router einstellen, da sie nur ausgehende Verbindungen aufbauen. Möglicherweise haben Host und Mitspieler noch eine (Software-)Firewall. Hier müssen sie natürlich auch noch dem spiel.exe den Zugriff aufs Internet erlauben. Meistens wird man dazu beim ersten Starten des spiel.exe aufgefordert. Viel Erfolg beim ausprobieren, wenn was nich klappt frag am besten nochmal nach! Gruß, SchokoKeks
|
|
|
Re: Gibt es irgentein 3dgs multiplayerspiel dass..
[Re: SchokoKeks]
#165354
11/07/07 19:34
11/07/07 19:34
|
Joined: Mar 2005
Posts: 564 /www/europe/ germany/index.php
TSG_Torsten
User
|
User
Joined: Mar 2005
Posts: 564
/www/europe/ germany/index.php
|
Grüße, SchokoKeks hat eigentlich schon viel erzählt. Da ich jedoch nicht empfehlen würde (vorallendingen aus sicherheitsgründen), soviele Ports zu öffnen, habe ich hier eine garantiert funktionierende Technik: (lief mit bisher über 30 Leuten problemlos ) Eigentlich ist es nicht wirklich schwer. Der Server wird wie gewohnt mit -sv gestartet. Wichtig ist jedoch, dass bei Server sowie Client dahinter noch ein Port zwischen 2300 und 2400 angegeben wird, also z.b. -port 2300 Diese Angabe muss bei Server und Client logischerweise identisch sein. Bei demjenigen, der den Server hostet, muss dieser Port geöffnet werden (UDP-Protokoll!) und an den entsprechenden Netzwerkrechner (genauer gesagt die LAN-IP dieses Netzwerkrechners) weitergeleitet werden. Hier nochmal die Command-Line (Ohne Port-Angabe geht es nicht!): -sv -cl -port 2300 -cl -port 2300 -ip [Internet-IP, z.b. 89.145.23.16] Denk auch dran, dass das Internet keine so hohe Transferrate wie das Netzwerk hat . Falls du noch Fragen hast, icq, ansonsten viel Spaß und Erfolg Gruß TSGames
Last edited by TSG_Torsten; 11/07/07 19:37.
|
|
|
Re: Gibt es irgentein 3dgs multiplayerspiel dass..
[Re: TSG_Torsten]
#165355
11/21/07 17:50
11/21/07 17:50
|
Joined: Jul 2007
Posts: 16
_eq
Newbie
|
Newbie
Joined: Jul 2007
Posts: 16
|
darf ich an der stelle ein paar zusätzliche fragen anbringen? ich denke darüber nach, mittelfristig aus meinen levels eine art multiplayer'game' zu machen, jedoch nicht als shooter etc, sondern: eigentlich male ich bilder, hm, und möchte diese in 3d räumen an die wand hängen und also sozusagen virtuelle ausstellungen abhalten...für viele besucher. es gab dafür mal aus frankreich ne javabasierte internet lösung, cryonics, die firma hat wohl nur leider pleite gemacht, hm, und es gäbe da natürlich second live. das ist mir zu ruckelig und zu schlecht designt, jetzt mal im vergleich zu der 3dgamestudioengine und ich denke eh, dass wie in modernen consolenspielen bezüglich der qualität der texturen usw spiele sich durchsetzen werden, die nicht auf einem zentralen server ablaufen (wie bei second live) meine fragen also: 1 gibt es eigentlich schon ein chat-script für 3dgs-multiplayers? 2 lassen sich die port probleme irgendwie so lösen, dass die endkunden am ende ohne probleme sich in das spiel einloggen können? 3. hätte vielleicht jemand lust, irgendwann (in ein paar jahren *g) sich um solche multiplayer-programmierfragen zu kümmern. ok, soweit wäre ich mit meinen projekten eh noch lange nicht, ist nicht allzuernst gemeint... trotzdem, thx a lot.
|
|
|
Re: Gibt es irgentein 3dgs multiplayerspiel dass..
[Re: _eq]
#165356
02/15/08 20:56
02/15/08 20:56
|
Joined: Aug 2002
Posts: 1,096 germany/Schleßwig-Holstein
PAS
Serious User
|
Serious User
Joined: Aug 2002
Posts: 1,096
germany/Schleßwig-Holstein
|
Quote:
1 gibt es eigentlich schon ein chat-script für 3dgs-multiplayers?
Klar gibt es die, allerdings weiß ich nicht ob jemand die frei rausgibt.
Quote:
2 lassen sich die port probleme irgendwie so lösen, dass die endkunden am ende ohne probleme sich in das spiel einloggen können?
Vor dem selben Problem stehe ich auch gerade. Allerding besteht das Problem nicht beim EINLOGGEN wie du sagst. Einloggen ging auch mit Router etc. Allerdings besteht diese Problem beim öffnen eines Servers.
Quote:
3. hätte vielleicht jemand lust, irgendwann (in ein paar jahren *g) sich um solche multiplayer-programmierfragen zu kümmern. ok, soweit wäre ich mit meinen projekten eh noch lange nicht, ist nicht allzuernst gemeint... trotzdem, thx a lot.
Unser Team entwickelt gerade ein Multiplayerspiel über das Internet. Wir suchen auch noch dringend Leute. Also wenn du interesse hast, schreib mich einfach an.
PAS
|
|
|
Re: Gibt es irgentein 3dgs multiplayerspiel dass..
[Re: PAS]
#165357
02/16/08 17:50
02/16/08 17:50
|
Joined: Aug 2003
Posts: 7,439 Red Dwarf
Michael_Schwarz
Senior Expert
|
Senior Expert
Joined: Aug 2003
Posts: 7,439
Red Dwarf
|
Quote:
Quote:
1 gibt es eigentlich schon ein chat-script für 3dgs-multiplayers?
Klar gibt es die, allerdings weiß ich nicht ob jemand die frei rausgibt.
ich hab vor längerem mal ein chatscript veröffentlicht. Vollkommen dokumentiert. Die suchfunktion ist dein freund
Code:
font blub ="arial",0,12;
string received_str="#100"; string sent_str="#100"; string input_str="#100";
string chat_line1="#100"; string chat_line2="#100"; string chat_line3="#100"; string chat_line4="#100"; string chat_line5="#100";
text chat_fenster // Das íst das "chatfenster" { strings=5; string=chat_line1,chat_line2,chat_line3,chat_line4,chat_line5; pos_x=10; pos_y=10; font=blub; }
text chat_input // Das textobjekt damit wir text eingeben können { string=input_str; pos_x=10; pos_y=100; font=blub; }
function chat_initialisieren // diese function in eurer MAIN function aufrufen! { chat_fenster.visible=on; chat_input.visible=on; }
function NachrichtAnServerSenden // Da man als client strings NUR an den server schicken kann müssen wir erst an den server schicken { // String Vorbereiten str_cpy(sent_str,player_name); // Zuerst hängen wir den playernamen an den zu sendenen string dran str_cat(sent_str,": "); // und ein : str_cat(sent_str,input_str); // und schlussendlich die eigentliche nachricht // Senden send_string(sent_str); // Nun senden wir den String mit unserer Mitteilung an den server wait(1); // Kurz warten // Leeren str_cpy(sent_str,""); // Und machen den Sende string sicherheitshalber leer str_cpy(input_str,""); // genauso den input string, aber das wegen dem komfort }
function TextEingeben { if(inkey_active){return;} // Wenn schon aktiv, dann return! inkey(input_str); // text eingeben if(result==13) // Wenn die eingabe mit enter beendet wurde { NachrichtAnServerSenden(); // nachricht senden } }
on_enter = TextEingeben; // Wir legen die chat funktion auf die enter-taste
function NachrichtEmpfangen // die function wenn daten vom server an den client reinkommen { wait(1); // warten damit die nachricht empfangen werden kann sonst ist received_str = LEER ifndef server; // damit der server die nachricht nicht doppelt bekommt if(str_len(received_str)>0) // wenn wir eine chat nachricht bekommen haben { // Chat Ordnen str_cpy(chat_line1,chat_line2); // 2 > 1 str_cpy(chat_line2,chat_line3); // 3 > 2 str_cpy(chat_line3,chat_line4); // 4 > 3 str_cpy(chat_line4,chat_line5); // 5 > 4 str_cpy(chat_line5,received_str); // Neue nachricht > 5 wait(1); // Kurz warten str_cpy(received_str,""); // den string leeren, damit die nachricht nicht wiederholt wird // wenn ein anderer string event auftritt } endif; // Nicht vergessen die ifndef/ifdef zu schliessen ifdef server; wait(1); // Da es sonst eine "empty" function wäre, muss der client-server auch was zu tun bekommen endif; }
on_client = NachrichtEmpfangen; // wenn daten vom server zum client reinkommen > checken ob es chat ist
function NachrichtEmpfangen_Server // Die gleiche function wie oben, nur für den server, damit alle clients die nachricht bekommen { wait(1); // warten damit die nachricht empfangen werden kann sonst ist sent_str = LEER if(str_len(sent_str)>0) // wenn wir eine chat nachricht bekommen haben -> da der client mit sent_str schickt, benutzen wir das als server { // Kopieren: str_cpy(received_str,sent_str); // Erstmal selber die nachricht einordnen: // Chat Ordnen str_cpy(chat_line1,chat_line2); // 2 > 1 str_cpy(chat_line2,chat_line3); // 3 > 2 str_cpy(chat_line3,chat_line4); // 4 > 3 str_cpy(chat_line4,chat_line5); // 5 > 4 str_cpy(chat_line5,received_str); // Neue nachricht > 5 // Diesmal löschen wir NOCH NICHT // An Clients senden send_string(received_str); // Da dieser befehl als server ausgeführt wird, wird der string an ALLE clients gesendet wait(1); // Kurz warten str_cpy(received_str,""); // JETZT löschen wir die strings str_cpy(sent_str,""); } }
on_server = NachrichtEmpfangen_Server; // wenn daten von clients zum server kommen > checken ob chat ist
Last edited by Michael_Schwarz; 02/16/08 17:51.
"Sometimes JCL reminds me of Notch, but more competent" ~ Kiyaku
|
|
|
|