Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 28

Thema: Onlinegame Frage

  1. #1

    Onlinegame Frage

    Wie macht man das eigentlich in onlinegames (Mit C++ z.B.) das die Member sich bewegen können und alle das sehen usw? Ich versteh das net. Lässt man jede Sekunde oder so etwa die Koordinaten in ne DB eintragen oder wie??

    Wäert dankbar wenn mir das mal jemand erklären könnte, ich rätsel schon als rum!^^

  2. #2
    falls du so etwas selbst alleine machen willst lass die finger davon.
    ich wollte das auch mal machen aber hab nachher die finger davon gelassen !

  3. #3
    Ich wil was machen, aber net alleine!^^

    ich hab einen der mir die Welten macht, einen der mir beim proggen hilft und zwei Communitys bei denen ich knifflige fragen lösen kann!^^

  4. #4
    Also vom Prinzip gbt es da 2 Möglichkeiten

    1,1 Mainserver + Client
    2,Mainclient

    Also entweder gitb es einen master Server das geht so :

    Spieler X geht einen schritt nach vorne
    Spieler X PC sended diese Aktion dem master Server
    Der Master server macht auf dem Server Spiler X geht einen nach Vorne

    Die Koordinaten aller anderren Spieler empängst du vom Master server.

    Das ist eine Belibte Methode bei MMORPGs aber es gibt noch eine weiter


    undzwar wenn der Spieler Server und Client ist dahh siht das so aus

    Spieler X geht einen schritt nach vorne
    Spieler X PC sended diese Aktion an ALLE anderren Clients

    was man nun nimmt ist eine sache des games bei wennigen usern ist Server Client nüzlich da es Server Resurcen spart.Bei Vielen spieler ist aber ein Master Server fällig da es sonst Extrem Lagged.


    Soviel zur Übermittlungs Teorie geht wir weiter mit der Grafik

    Das einfachste währe das du zu anfang ein Consolen Code bastels.

    Wenn man sich einlogt ist man Y = 0 X = 0 bei hoch geht bei X +1 bei runter X - 1 usw.
    Das läst du in einer Hauptconsole darstellen.

    Sobald das Klappt sage ich Gratz du hast ne billige Online engine geschrieben.

    nun solltest du etwas wichtiges machen ! befor du nun an die Grafik gehst bau Funktionen per Console z.B. eine user Login , chat etz. alle diese wichtigen sachen und Debug diese bis sie alle perfekt funzen.Den was nütz einem grafik wenn die Engine nett klappt

    Wenn du damit fertig bist hast du eine Simple Online Engine geschreiben die , die grundlegen eigenschafften hat.

    Nun geh auf die Engine ein.hierbei stell dir die wahl 2D oder 3D zu Empfehlen ist 2D für anfänger wobei es auch schone Fertige 3D engines gibt jedoch sind diese komplexer und nur mit Vorsicht zu genissen als anfänger.

    Wenn das alles fertig ist sage ich "GRATZ" its done.Über die Console logt man sich ein und mit der 2/3d engine sihst man seine bewegungen die vorher nur X und Y ns waren.

    Geändert von dadie (24.06.2005 um 14:21 Uhr)

  5. #5
    Hmm...geht das auch mit der DB?^^

    Das klingt für mich einfacher... und...joa!^^
    *idee*
    Wenn man sich ausloggt werden die Achsen gespeichert. Jede map hat ne ID. z.B. a1 oder so!^^

    Dann ist oben links 0/0 wie bei einem Koordinatensystem nur mit anderem Startpunkt, die wird dann per Server (wie du es gesagt hast) weitergeleitet. Allerdings muss das dann... alle paar sekunden getan werden. Und wie macht man das mit C++ =?
    ( =? is absicht^^ Fragendes gesicht^^)


    Nunja... auf jedenfall hilft mir das hscnmal sehr weiter, danke Dadie!!!

  6. #6
    Zitat Zitat von raian
    Wenn man sich ausloggt werden die Achsen gespeichert. Jede map hat ne ID. z.B. a1 oder
    Das mit der Map ist ne tolle idee ^^ so musst du nciht 1 Riessige map machen sondern kannst viele einzelln machen und kannst somit Updates der Maps schneller und kleiner machen tolle idee ^^

    das mit X/Y Speichern würe ich erweitern in dem man Jegliche änderung speichert.
    gehe ich X +1 wird das Direkt im server gespeichert als neue X/Y koordinate.Wenn ich dann einen PC absturz habe verlihre ich nicht alles erarbeitete ^^

  7. #7

    Users Awaiting Email Confirmation

    Genau, Dadie. Alles keine grosse Sache, was? In vier Wochen zum WoW-Ableger. Und dann wird endlich die grosse Kohle wie bei Blizzard gescheffelt.

    Ich persönlich halte es da lieber mit gamedev's Mcconnichie, der dazu einen sehr passenden Comic gestrickt hat: Klick mich!

    Zitat Zitat von raian
    ich hab einen der mir die Welten macht, einen der mir beim proggen hilft und zwei Communitys bei denen ich knifflige fragen lösen kann!
    Werden dir die beiden Communities auch die folgenden "kniffligen Fragen" beantworten: Nehmen wir TCP oder UDP? Welche Scriptsprache eignet sich und wie binden wir sie ein? Was unternehmen wir gegen Cheatin? Bauen wir auf OpenGL oder DirectX? Wo kommt der Sound her? Die Musik? Wer macht das alles? Wie weise ich die Effekte den Ereignissen zu? Wie dynamisch ist meine Welt? Welche Art von Terrain werde ich implementieren? Octree, BSP oder was ganz Neues? Sind Häuser statische Modelle oder mit den Terraintiles verknüpft? Oder allein der 3D-Modelbereich: Wie wollen wir die Animationen verpacken? Bones oder Frames? Wie können wir dafür sorgen, dass Sachen zum Anziehen sind, Schwerter zum Tragen, Ziehen und Zuschlagen. Wer macht die Kampfanimationen? Wie bleibt dabei das Schwert in der Hand? . . . UND SO WEITER

    Du bist momentan 13 einhalb Jahre alt, raian. Und es gibt wahrlich noch vieles da draussen zu entdecken. Wenn du tatsächlich programmieren lernen willst ... und später einmal Spiele entwickeln, dann würde ich dir zu folgendem raten:
    • Fange an, nicht nur zu spielen, sondern dich in den Developer dahinter zu versetzen. Schau dir die grossen Vorbilder und ihre Werke an (Miyamoto, Molyneux, Wright oder Meier). Versuche die dahinterliegende Motivation zu erkennen, und warum ihre Spiele immer wieder Millionen fasziniert haben.
    • Fange mit einer einfachen Programmiersprache an. Basic oder Pascal. Finde einen Computerclub/Arbeitsgemeinschaft, wo du dich mit anderen, die ähnliche Interessen haben, treffen und austauschen kannst.
    • Fange klein an. Versuche, einen Tetris- oder Breakout-Clone auf die Beine zu stellen (daran scheitern bereits die meisten).
    • Verbringe nicht zu viel Zeit am PC (mag' jetzt ein wenig belehrend wirken, aber es ist Tatsache, dass die Jugend (meine beiden Jungs eingeschlossen) viel zu viel vor Glotze, Video/PC-Spiel verbringt). Wenn die Kommunikation auf das Tippen von SMS-Nachrichten beschränkt ist... wird dich nie auch nur ein Spieleentwickler einstellen. Denn grade im SE-Bereich ist eine gesunde verbale Austauschmöglichkeit oberstes Gebot.


    Küsschen,
    Feenstaub.

  8. #8
    Zitat Zitat
    Wenn man sich einlogt ist man Y = 0 X = 0 bei hoch geht bei X +1 bei runter X - 1 usw.
    X ist aber horizontal, Y ist vertikal.

    Zitat Zitat
    Wenn man sich einlogt ist man Y = 0 X = 0 bei hoch geht bei X +1 bei runter X - 1 usw.
    Das läst du in einer Hauptconsole darstellen.

    Sobald das Klappt sage ich Gratz du hast ne billige Online engine geschrieben.
    Cool, doch so einfach? Wie war das mit dem eigenen OS gleich wieder? Lade dein OS ein, siehst du es auf dem Bildschirm und kannst die Maus bewegen, bist du fertig, perfekt!
    ( )

    Sorry aber mit so einer theoretischen und allgemeinen Beschreibung, ohne Konzept (warum kommt nach Server direkt Grafik, dann erst Engine, dann fertig?) und ohne Nähe zum Code kann nun wirklich niemand was anfangen. Nicht, dass ich vor habe, hier jetzt großartig was zu schreiben, viel zu viel Arbeit, da muss man die menschliche Logik einfach spielen lassen und dann kommt schon was bei raus, aber bevor ich so was schreiben würd' wär' ich lieber still.

  9. #9
    Zitat Zitat
    Genau, Dadie. Alles keine grosse Sache, was? In vier Wochen zum WoW-Ableger. Und dann wird endlich die grosse Kohle wie bei Blizzard gescheffelt.
    o.O habe ich irgentwo gesagt das es einfach ist oder so ?
    Ich habe nur aufgezählt wie ich das ganze Angehn/Lösen würde.

    jeder weiss das der Netcode nicht in 2 Minuten gecoded ist ein Guter Netcode kann schonmal mehrere Jahre dauern ! Wobei die arbeit beim netcode eigentlich nur ist

    netcode Bauen , Netcode erweitern , Netcode debuggen , netcode Optimieren.

    sind alles SEHR SEHR schwere sachen wenn ich das sagen darf.Aber mit einem starken team
    lässt sich ein Unausgereiffter einfach X/Y Übertragungs Code schnell bauen.

    Wie gesagt ist nur ne Lösung wie ich sie anstrehben würde.
    Wobei ein netcode auch einfach sien kann Sihe Online Ptach für den RPGMK XP
    es kommt halt darauf an WAS SOLL ER MACHEN.Der WoW netcode muss jahre gebraucht haben tausende von Parametern zu geringt zu übermiteln etz. das dauert würklich lange bis man das raus hat.Das Zweigel ich ja nicht an !

    Lange rede kurzer sinn ich schrieb nur nen wedergang hin


    Zitat Zitat
    Cool, doch so einfach? Wie war das mit dem eigenen OS gleich wieder? Lade dein OS ein, siehst du es auf dem Bildschirm und kannst die Maus bewegen, bist du fertig, perfekt!
    o.Ô? das ist ein netcode ein billige aber es müsste ein nettcode sein.
    Ein Script was permanente Übertragung zwischen den Members durchfürht / auflistet/berechnet ?

    Was soll ein nett code sons machen ? er dient nur zur Übermittlung von Paramettern an den Server und und an die Grafikengine

    Geändert von dadie (24.06.2005 um 15:36 Uhr)

  10. #10
    Zitat Zitat von Feenstaub
    Ich persönlich halte es da lieber mit gamedev's Mcconnichie, der dazu einen sehr passenden Comic gestrickt hat: Klick mich!
    Sollte ohne zögern irgendwo angepinnt werden.

  11. #11
    Chm, chm...

    Also. Ich habe nur mal vor etwas zu probieren. Ich weiß selber das es nicht leicht ist usw! Außerdem muss ich Dadie mal in Schutz nehmen! Dadie hat recht! Im prinzip muss man das machen was er sagt. Man kann es noch ausführlciher machen, aber was solls? Das Prinzip ist RICHTIG!

    Is klar. Das mit dem programmieren ist auch net leicht und man sollte leicht anfangen. Gecheckt und schon lange ausgeführt!

    Ich habe Erfahrung in
    -VisualBasic(Etwas ausfürhlicher müsste es noch werden, aber für ein einfachen Klon müsstes reichen^^)
    -JS (Aber da nur sehr wenig!!!)

    Ich kann:
    -HTML^^
    -PHP
    -Blitz Basic (Obwohl ich das seid 2 Jahren net mehr geproggt habe^^)


    Nunja, da sich die meisten Sprachen äheln wird es auch nicht sehr schwer andere Sprachen zu erlernen. Außerdem habe ich mir sonst immer alles selbst beigebracht (Durch Tutorials und größtenteils rum Experimentieren!^^) und diesmal werde ich mit jemandm zusammenlernen!^^

    Außerdem liegt das proggen irgendwie in der famielie gleub ich... Mein Onkel is au Programmierer^^

    Nun, is klar! Tütlich treff ich mich acuh mit Freunden und hock net den ganzen tag am PC! Außerdem muss ich auch zu Chor und Konfer usw...^^
    Also wird die Kommunikation auch net zu kurz kommen! Eine Wpche vor den ferien fahr ich auch mit Chor auf Sylt, und so Reisen kommen öfters. Also kann ich gar net so lange vor dem PC hocken! Zu dem muss ich acuh noch jeden Donnerstag für 2 Stunden zum Artzt (Halbe Stunde warten, Spritze bekommen, nochmal halbe stunde warten weil Chance auf nen Allergischen schoock groß ist).

    Hmm...was noch? *überleg*

    @Freezy: Dein Beitrag ist völliger Spamm.


    Die Koordinaten...Okay... dann halt unten links ist 0/0 ^^


    Zitat Zitat
    Werden dir die beiden Communities auch die folgenden "kniffligen Fragen" beantworten: Nehmen wir TCP oder UDP? Welche Scriptsprache eignet sich und wie binden wir sie ein? Was unternehmen wir gegen Cheatin? Bauen wir auf OpenGL oder DirectX? Wo kommt der Sound her? Die Musik? Wer macht das alles? Wie weise ich die Effekte den Ereignissen zu? Wie dynamisch ist meine Welt? Welche Art von Terrain werde ich implementieren? Octree, BSP oder was ganz Neues? Sind Häuser statische Modelle oder mit den Terraintiles verknüpft? Oder allein der 3D-Modelbereich: Wie wollen wir die Animationen verpacken? Bones oder Frames? Wie können wir dafür sorgen, dass Sachen zum Anziehen sind, Schwerter zum Tragen, Ziehen und Zuschlagen. Wer macht die Kampfanimationen? Wie bleibt dabei das Schwert in der Hand? . . . UND SO WEITER
    Schwere Fragen, schwere Antworten.
    TCP oder UDP ? Mal sehen, was ist vorteilhafter... *nachdenk*
    Ich denke du meinst die Ports... welcher ist denn vorteilhafter? Mit sowas befasse ich mich erst Später, das Projekt steht noch in planung.
    (Schritt1: Gutes Planen erspart Arbeit beim umschreiben wenn einam auffält das man was gehörig falsch gemacht hat!)

    Welche Scriptsprache? Ich denke wir nehmen C++. Ein Programm startet die Engine. Man registriert sich Online oder Offline (wird noch geplant) und kann sich dann Einlogen. So wirds eingebunden, denke ich!

    Tja, Cheating ist imer ein RIESEN Problem. Was man gegen tun kann. SAGS mir! Einen 100% Schutz gibts nie!

    OpenGL, DirectX... Das ist eine SEHR wichtige Frage auf die ich so schnell keine Antwort finden werde muss ich gestehen!

    Musik und Sound? Hmm... da wird sich noch wer finden müssen. Wie gesagt: Das Projekt steckt noch in nde Kinderschuhen!

    Effekte Eriegnissen zu teilen??? Wie meinste dat? Das kann man auf 1000 verschiedene Arten implementerien (Oder wie das heißt^^)!

    Terrain Arten: Nunja. In Arbeit!

    Zu der Grafik: Das soll net gleich ein grafisch Perfektes Ding werden das sich jeder downloaded!

    Die Grafischen Spielerein wie Waffe zeihen usw: Nunja. Gute Frage. Der der die Charakter zeichnet usw wird das wohl machen!^^
    Das wird dann wohl Ansgars Freundin machen... (müsst ihr net kennen xD)

    Wie bleibt das Schwert in der Hand? -Kompliziert. Weiß ich nicht. Muss ich zu geben!


    So, jetz hab ich erstmal genug vom schreiben und warte eure Antworten ab. Ich denke mal ich hab alle Fragen an mich beanwortet? GUT!

    Außerdem weiß ich nciht was mein Alter mit der Sache tzu tun haben soll! Mag sein das ich noch sehr jung bin, aber das tut nichts zur Sache! Manchmal können 4 Jjährige auch schon schreiben!


    Greetz: Raian

  12. #12
    Zitat Zitat von raian
    TCP oder UDP ? Mal sehen, was ist vorteilhafter... *nachdenk*

    Ich denke du meinst die Ports... welcher ist denn vorteilhafter?
    Hat nix mit Ports zu tun, es gibt sowohl TCP Ports als auch UPD. Die Frage ist ob ihr ein Verbindungsorientiertes oder Verbindungsloses Protokoll wollt. Bei den Ports da ist eher die Frage welche ihr nützen dürft.

    Zitat Zitat von raian
    Mit sowas befasse ich mich erst Später, das Projekt steht noch in planung.

    (Schritt1: Gutes Planen erspart Arbeit beim umschreiben wenn einam auffält das man was gehörig falsch gemacht hat!)
    Da stimm ich dir natürlich zu, deswegen würde ich gerne wissen wie ihr das Programm plant. Was für ein Softwareentwicklungsmodell wählt ihr denn? Das Prototypen Modell, das V-Modell oder doch ein anderes?? Und wie siehts mit UML aus? Werdet ihr auch Use-Case Diagramme machen oder euch nur auf Klassendiagramme beschränken? Oder wollt ihr da auch ein anderes Modell wählen um euer Programm zu modellieren?

  13. #13
    Zitat Zitat
    @Freezy: Dein Beitrag ist völliger Spamm.
    Ich finde, es passt zum Thema und möchte das nochmal unterstreichen. Das Comic zeigt eindrucksvoll wie einfach es doch ist, MMORPGs zu erstellen.

  14. #14
    So nicht desdo trotz gebe ich noch einen Tip ^^

    Befor du anfängt mit dem netcode macht erstmal KLEINE Projekte z.B. einen Dos Messanger.
    Wo man über (für C++) cin was eingeben kann und es beim gegen überliegenden mit (lass es richtig sein für C) cout ausgeben.

    Das währe eine Tolle übung für um das netcode Programmieren zu testen.

    Auserdem würde ich mich was interessieren ^^

    Unzwar gibt es noch ne 3 Möglichkeit ?

    Also Neben Master server und Server Client ?

  15. #15
    Ich schätze es gibt noch etliche Methoden, wie es auch etliche Methoden für Netzwerktransfer gibt. Etwa eine Art token passing, wo die Daten wie in einem Ring von einem User zum nächsten gehen usw. Eignet sich aber für Onlinegames nicht.

  16. #16
    Ich suche noch eine Enwicklungsumgebung... Ein Freund hatte mal eine die ich eigentlich haben wollte, aber die hat er net mehr... *frustriert ist*

    protokolllos oder mit protokoll.... was is sicherer? Das sichere is mir leiber..

  17. #17
    TCP/IP ist meines wissens das besste für MMORPGS da die verbdinugn Stabiler ist zumindest laut Wiki ^^

    Aus eigener efahrung kann ich da leider nicht reden -.-

    UDP soll schneller sein aber dafür etwas instabiller (alle infos von Wiki)

    vondaher ist es woll ehr eine Game Frage bzw. eine frage des Netcodes.Ein schlechter netcode wird durch UDP annehbarer wobei er dann Super instabil wird aber wennigstens die übertragung lagg frei geht.Ein guter netcode mit TCP/Ip müsste Perfekt sein schnell und Stabil ^^

  18. #18
    TCP/IP sorgt dafür, dass die Verbindung steht, gesendet wird, dann geprüft wird, ob die Packete alle angekommen sind (Entsprechende Prüfsummen werden dem Packet beigefügt). Das kostet Zeit, ist aber sicher, dass die Daten ankommen, ansonsten werden diese neu angefordert bis sie da sind. (gibt aber sicher auch ein Timeout wann nicht mehr angefordert wird).
    Bei UDP wird losgeschickt, wenn's ankommt ist gut, wenn nicht, auch egal. Weil hier nicht geprüft oder nachgeschickt wird, obs angekommen ist bzw. was nicht angekommen ist.
    Für Videostreams etwa ist UDP geeignet, da man kaum verlorenen Frames nachholen muss. Bei Onlinegames würd ich aber auch zu UDP raten. Wofür brauch ich die Daten der letzten 10 Frames wenn es bereits weiter geht? Der eigene Rechner kann das doch nicht mal eben aufholen und dann die alten Daten an den Server senden. Und was interessiert die alte Position der Party von vor 10 Frames wenn diese jetzt nicht mehr aktuell ist?
    Was vorbei ist ist vorbei, da wird nix mehr nachgesendet, also UDP.
    Beispiel für TCP/IP ist ein Datentransfer der unbedingt vollständig sein muss. Wäre dumm, wenn da mal eben bei 700 MB ein paar Byte nicht korrekt angekommen sind und die Datei damit futsch.

    Geändert von Ynnus (24.06.2005 um 22:38 Uhr)

  19. #19
    Hmm...wo du recht hast ast du recht...

    UDP dürfte hier wohl wirklich bessern sein... Aber geht das über C++ überhaupt?^^

  20. #20
    Zitat Zitat von raian
    Hmm...wo du recht hast ast du recht...

    UDP dürfte hier wohl wirklich bessern sein... Aber geht das über C++ überhaupt?^^
    Ja. Lesen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •