Viele bunte Fragen!



  • Hallo, ich schon wieder!
    Ich hab mal wieder tolle Fragen:

    Netzwerk: Server
    Geht die gesamte Kommunikation über den "Server"? Gibt es auch direkte Kommunikation?
    Netzwerk: Preproc.
    Werden/Können Ruckler durch berechnen des Objektes vermieden werden? (Wann) ist sowas sinnvoll?

    Graphik: Menubar
    Besser ein Menü mit dem jew. Toolkit schreiben, oder alles via graphikapi?
    Threads: Wann?
    Wann sollte man Threads benutzen?
    Sound, Nachladen, aber auch Graphikschleife oder Physik/Netzwerk?
    ingame-console?
    Alles über eine Console steuern? Wie implementieren?

    Game
    Suche: groben Funktions, Thread/Klassenaufbau... (vllt. ein minimalbeispiel?🤡)

    Physik
    Wie implementiert man das am Besten? Also z.B. ein Auto: Reibung, Beschleunigung, ... (Formeln krieg ich wohl hin...):
    -Listen mit vorher berechneten Werten? [Ja/Nein]
    -In Klasse? (denke mal das ja...;))
    -Wie bei Netzwerk? Alle Clients rechnen "pre" mit, bekommen die Bestätigung? Oder nur die Positionsdaten?

    So, hoffe jemand liest das... 🕶



  • Kopf anmachen und selbst nachdenken? Alternativvorschlag: Google?


  • Mod

    -star@home- schrieb:

    Hallo, ich schon wieder!
    Ich hab mal wieder tolle Fragen:

    Netzwerk: Server
    Geht die gesamte Kommunikation über den "Server"? Gibt es auch direkte

    manchmal das eine, manchmal das andere.
    wenn viele leute zusammen spielen, gibt es meist einen zentralen server. wenn zwei spielen kann es einen lobbyserver geben der den leuten hilft in kontakt zu treten und dann bauen die untereinander die verbindung auf. jedoch hab ich noch nie gehoert dass es ein netzwerkspiel gebe bei dem jeder mit jedem verbunden waere.

    Netzwerk: Preproc.
    Werden/Können Ruckler durch berechnen des Objektes vermieden werden? (Wann) ist sowas sinnvoll?

    meinst du interlpolation/extrapolation? ja, oft gibt es das.

    Graphik: Menubar
    Besser ein Menü mit dem jew. Toolkit schreiben, oder alles via graphikapi?

    das haengt meist vom coder ab. manche haben entsprechend auch eigene gui toolkits die sie immer verwenden.

    Threads: Wann?
    Wann sollte man Threads benutzen?

    entweder von anfang an oder garnicht;). im nachinein fertigen code threadsafe zu bekommen kann sonst sehr schwer werden.

    Sound, Nachladen, aber auch Graphikschleife oder Physik/Netzwerk?

    sound wird vom treiber meist aynchron gemacht, da muss man sich nicht drum kuemmern.
    es gibt nur eine graphikkarte, entsprechend sollte auch nur ein thread darauf arbeiten, natuerlich kann der komplett vom rest entkoppelt sein.
    physic ist ein guter kandidat fuer threading.
    netzwerk macht zumeist wenig sinn dafuer einen eigenen thread zu machen, genausowenig wie input. beides ist ja sogesehen input, aber trotzdem ist das gaengig.

    ingame-console?
    Alles über eine Console steuern? Wie implementieren?

    schau dir fertige engines/spiele an die du ueber google findest, eine recht stumpfe sache die nur in implementationsdetails anders ist. manche haben ne simple std::map mit strings die sie mit dem konsolenkommando absuchen und entsprechende variablen setzen. manche haben lua/js/perl/python als interpreter hinter einer multi-line konsole.

    Game
    Suche: groben Funktions, Thread/Klassenaufbau... (vllt. ein minimalbeispiel?🤡)

    empfehlung: google

    Physik
    Wie implementiert man das am Besten? Also z.B. ein Auto: Reibung, Beschleunigung, ... (Formeln krieg ich wohl hin...):
    -Listen mit vorher berechneten Werten? [Ja/Nein]
    -In Klasse? (denke mal das ja...;))
    -Wie bei Netzwerk? Alle Clients rechnen "pre" mit, bekommen die Bestätigung? Oder nur die Positionsdaten?

    -was will man da vorberechnen?
    -wenn du klassen moechtest
    -im netzwerk gibt es in den meisten spielen keine physic.ein paar grosse/wichtige objekte sind sowas wie 'player' aus sicht der engines. das allermeiste aber was physic angeht ist komplett spielunrelevant und deswegen laeuft es bei jedem anders (asynchron).



  • Danke rapso, das beantwortet das meiste!

    Aber: 😃
    -Toolkits: Also Performance gleich/ähnlich? Oder grobe Unterschiede? (gtk, wx vs. ogl?)

    Joa, wenn jemand noch ein _kleines_ Beispiel kennt, ist er willkommen! 🙄



  • Memphis hat aber recht, googel lieber -.-.


  • Mod

    -star@home- schrieb:

    Aber: 😃
    -Toolkits: Also Performance gleich/ähnlich? Oder grobe Unterschiede? (gtk, wx vs. ogl?)

    eine gui sollte eigentlich keine peroformanceansprueche haben, wenn doch, ist es die falsch 😉

    Joa, wenn jemand noch ein _kleines_ Beispiel kennt, ist er willkommen! 🙄

    kleines beispiel? kannst dir komplette guis als source ziehen, z.b. http://www.cegui.org.uk/wiki/index.php/Main_Page



  • threading macht bei netzwerk schon sinn aber dann halt server seitig

    es gibt verschiedene ansätze wie man einen spieleserver implementieren kann und jeden client als eigenen thread zu handeln ist einer davon

    ehrlich gesagt physik... ja du kannst dir selbst eine physik engine schreiben aber sowas kann sehr kompliziert und mühsam werden
    wenn du etwas einfaches machen willst wie BSP levels und AABB kollision oder normale bounding box kollision + bounding spheres dann ok, geht kann man sowas auch wenn man keine allzugroße erfahrung hat in angriff nehmen da es nicht so schwer ist

    allerdings wenn du sowas hast wie autos die irgendwie über nen hügel drüberfahren sollen und sich dann überschlagen können usw behaupte ich mal du wirst das nicht einfach so schaffen und ich würde in dem fall eher auf eine physik engine zurückgreifen die das alles für dich macht, physX von AGEIA ist zb sehr beliebt und wenn man sich auf ihrer seite registriert bekommt man innerhalb von 1-2 tagen einen account und kann sich das sdk runterladen
    havok soll soweit ich gehört habe auch demnächst free for all gemacht werden (dauert aber glaub ich noch nen paar monate?)

    das sind die 2 großen physik engines soweit ich weiss

    und gui.. ich kenne mich nicht so mit guis aus aber wx und diese guis diese ganzen cross plattform guis sind halt buttons, combo boxen, drop down boxen, tabs und dieses ganze zeug was man in nem fenster halt hat
    ich weiss nicht ob das für ein spiel so geeignet ist um die hud zu erstellen

    beispielsweise sowas wie bei all den strategiespielen wo du unten die hud hast mit buttons rechts und links und der minimap etc lässt sich vermutlich nur sperrlich mit einer dieser guis in einem spiel realisieren

    ich würde eher ne eigene sehr simple gui programmieren die einfach bilder anzeigen kann und auf deiner grafik aufbaut (einfach pretransformed texture quads die fix aufm bildschirm positioniert werden), und mehr als buttons, eventuell textfelder/checkboxen/drop down boxen brauchst du eh nicht für so ne spiele UI und die sind nicht allzu schwer zu programmieren (bzw gibts eh sicher genug tuts für sowas)

    //edit
    achja nochwas, wenn du dir vornimmst ein netzwerk basierendes spiel zu machen aber noch nicht so viel erfahrung hast würde ich mich erstmal sehr sehr gründlich einlesen und mit prototypen rumspielen bevor ich das richtige programm versuchen würde
    netzwerk einzubinden ist sehr mühsam und weniger iterativ als die üblichen grafik engine selber programmier spielereien weil man bereits eine wirklich gründliche vorstellung davon haben muss wie die architektur von deinem programm aussehen soll

    du musst halt im auge behalten dass eben jede kleinigkeit in ein protokoll reingepackt werden muss und dauernd zwischen dem server und client hin und her gesendet wird


Log in to reply