Registriert: Di Nov 29, 2005 21:11 Beiträge: 88 Wohnort: Bonn
Moin moin!
Ich habe mir größenwahnsinnigerweise in den Kopf besetzt, ein Multi-User-Online-Spiel zu programmieren...
Nun bin ich soweit, dass man sich mit einem Client einloggen kann und die Server-Anwendung schickt die Landschaftsdaten und man kann sich bewegen und die Kollision funktioniert und außerdem wird aus Ressourcen geladen...
Aber sobald ich den Client auf einem anderen als meinem Rechner teste, läuft das ganze Spiel mächtig langsam.
Könnte das ein einfaches Problem sein (irgendeine Einstellung vergessen) oder hab ich einfach bloß scheiße programmiert (das befürchte ich)?
Registriert: Mi Jul 17, 2002 12:07 Beiträge: 976 Wohnort: Tübingen
Zitat:
Könnte das ein einfaches Problem sein (irgendeine Einstellung vergessen) oder hab ich einfach bloß scheiße programmiert (das befürchte ich)?
Das ist ziemlich offen. Inwiefern unterscheidet sich denn die Rechner voneinander (Hardware, Software)? Auf welche Komponenten greifst du zurück?
_________________ "Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0." - Hal Faber Meine Homepage: http://laboda.delphigl.com
Registriert: Di Nov 29, 2005 21:11 Beiträge: 88 Wohnort: Bonn
Hardware ist nah beieinander, beide Rechner etwa 2GhZ und RAM, keine Ahnung, mehr als 256MB, aber daran kann es doch nicht scheitern, bei so einem kleinen Spiel
Es ist 2D und außer OpenGl kommen noch Indy Netzwerkkomponenten zum Einsatz, damit Server und Client kommunizieren können...
Figur bewegt sich langsam - das ist das einzige, was sich bis jetzt bewegen kann
Keine Ahnung, ich glaub, ich habs einfach scheiße programmiert - ist ja auch erst ein paar Wochen alt und nicht bis zum Ende durchdacht
Hier ist der mal der Client... Funktioniert solange, bis ich ne neue IP bekomme Username: a
Passwort: a
Naja, egal, hatte ein kleines bisschen Hoffnung, dass es irgendwas allgemeines ist...[/url]
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2068
Programmiersprache: C++
Ok, abgesehen davon, dass das Programm abstürzt wenn ich irgendwo anders hinklicke als aufs vorgesehene und dass es auch beim Beenden eine Fehlermeldung kommt sieht es gut aus.
Das ist die Weiterentwicklung des Programmes das du im IRC gepostet hast oder?
Zu deinem Problem:
So etwas in der Art habe ich gerade auch erlebt:
Die Figur stockt ab und zu beim loslaufen. Vermute das da dein Netzwerkcodeprobleme macht.
Registriert: Di Nov 29, 2005 21:11 Beiträge: 88 Wohnort: Bonn
das programm beendet sich, wenn man auf das holz klickt, das ist so gewollt
der fehler beim beenden: keine ahnung was das soll
ich hab nie ein program im irc gepostet, ich hab nichtmal irc
abgesehen von dem stocken, läuft die figur sonst annehmbar durch die welt?
@Frase: was hat es mit TimeBased Movements auf sich?
Na jeder Rechner ist unterschiedlich schnell. Daher läuft auch dein Programm unterschiedlich schnell ab. Um den entgegenzuwirken, bedient man sich timebased movements. Da wird die Zeit gemessen, die zum Rendern eines frames benötigt wird und alle Bewegungen werden dann damit multipliziert. Dadurch läuft ein Programm dann auf allen Rechner gleichschnell aber unterschiedlich flüssig ab Siehe auch Bomberman Tutorials
_________________ "Für kein Tier wird so viel gearbeitet wie für die Katz'."
Registriert: Di Nov 29, 2005 21:11 Beiträge: 88 Wohnort: Bonn
okay, werd mir timebased movements zu herzen nehmen
obwohl ich meine zweifel hab... wenn das spiel schon bei nur zwei texturen und einem sich bewegendem char ruckelt, wie soll es dann aussehen wenns fertig ist (wenns jemals fertig werden sollte)
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Kann es sein, dass bei dem einen Rechner Server und Client auf zusammen ausgeführt werden, und der 2. Rechner über Inet oder LAN angebunden wurde? Dann ist dein Netzwerkcode einfach nur Mist, und es ist nix spezielles;)
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Di Nov 29, 2005 21:11 Beiträge: 88 Wohnort: Bonn
ja, bei mir laufen server und client auf einem rechner gleichzeitig, bei dem anderen testrechner über lan
allerdings wird die netzwerkverbindung nur vor dem starten des spiels benötigt, um das savegame zu laden
und während des spiels nur, wenn man an den bildschirmrand läuft, um den nächsten screen zu übertragen.
das erklärt inmeinem augen nicht, warum das spiel an sich sehr lahm läuft...
wenn ich timebased movements einbaue würde das doch alle client-systeme "synchronisieren", aber es würde auf dem anderen rechner doch dann trotzdem nicht flüssig laufen - oder versteh ich da was falsch?
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Nun ich denke dein Programm lädt etwas mehr über das LAN. Aber versuch einfach mal den Server auch auf dem anderen Rechner zu starten. Mal sehn obs dann plötzlich dort auch flüssig läuft.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Di Nov 29, 2005 21:11 Beiträge: 88 Wohnort: Bonn
Flash hat geschrieben:
Nun ich denke dein Programm lädt etwas mehr über das LAN. Aber versuch einfach mal den Server auch auf dem anderen Rechner zu starten. Mal sehn obs dann plötzlich dort auch flüssig läuft.
nee, zeigt keine verbesserung.
ich gucke mal, ob ich eine version schreiben kann, die kein lan benötigt...
aber ich muss mir glaub ich trotzdem nen haufen gedanken machen, wie ich die kommunikation zwischen server und clients optimiere und vor allem minimiere...
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.