Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 08:15

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Theorie][Online Game] Gegner/Mob Synchronisation auf 3D Maps

Discussion on [Theorie][Online Game] Gegner/Mob Synchronisation auf 3D Maps within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jul 2013
Posts: 3
Received Thanks: 0
[Theorie][Online Game] Gegner/Mob Synchronisation auf 3D Maps

Schönen guten Tag,


Ich programmiere seit ein paar Wochen an einem kleinen Online-Game.
Ich verwende die Blender Game Engine und programmiere darin in Python.
Das Game soll eine Art Deathmatch in 3D werden.
Der Server ist ein von mir kleines Programmiertes Python Script, welches mit UDP Sockets (sowie der Client) kommuniziert.


Die Spieler können sich bis jetzt einloggen(Username/Password), spawnen und können sich bewegen.
Die Player Synchronisation ist fertig. (Location + Rotation) ( Animation Sync fehlt noch )

Mein Problem jetzt ist das ich gerne einen Gegner im Form eines Bäres auf die Karte setzen möchte.
=> Der Bär soll bei allen Spieler auf der GENAU GLEICHEN POSITION sein und GENAU DAS GLEICHE TUN.

Sprich also eine "NPC Synchronisation".

Mein Problem ist jetzt das ich theoretisch im Serverscript erkennen könne wenn jetzt z.B ein Spieler zu nah am Bär ist
dementsprechend den Bär langsam zu der X / Y / Z Achse des Spielers zu bewegen.

Das Problem ist das mein Serverskript nicht weiss wo die Erhöhungen sich auf der 3D Map befinden (Der Bär "schwebt" also durch z.B Bäume und Berge)

Wie lösen das Games wie WoW / Rift / Tera usw. ?
Diese Games sind ja MMORPGS und übertragen anmassen an Mobs!


Meine Ideen wären dazu:



1.) Das Serverskript in Form einer Blender Executable zu erstellen die genau die gleiche Map enthält wie die Clienten.


Vorteile:

- Sicherer gegen Cheats (Teleport Hacks) X/Y/Z Achse wird selb berechnet! ( der Player sendet nurnoch in welche Richtung er läuft)

Nachteile:

- Performance!
- Verschiedene Games gleichzeitig sind schwer umsetztbar.

2.) Einen zufälligen Clienten bestimmen der den Bär steuert und die Logik behandelt.

Vorteile:

- Einfach programmiertechnisch durchsetztbar

Nachteile:

- Disconnect?
- Cheat?


Was würdet Ihr mir vorschlagen? Bin sehr begeistert von dieser Thematik und freue mich auf JEDE Antwort! =)

Ich bedanke mich im Voraus für alle Antworten. =)

Mit freundlichen Grüssen,

the greedy Pancake-Cat aka. _Pancakes_ ^^

Eine neue Idee meinerseits:

3.) Server vergibt Spawnpoint des Bärens und schickt dann einfach nurnoch in welche Richtung er läuft.

Vorteil:

- X/Y/Z Achse vollkommen richtig.
- Programmiertechnisch einfach

Nachteil:

- Bär hat eine sehr sehr geringe Logik ( Da ich nicht mit Blender arbeite sondern nur per Skript ) ( -> Blender kann Steering, Distance usw -> kleine KI möglich)
- Cheats?


Mit freundlichen Grüssen,

_Pancakes_
_Pancakes_ is offline  
Old 07/22/2013, 15:03   #2
 
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
Gelöst wird es normalerweise dadurch das der Server die Karte kennt und das Pathfinding der Mobs diese mit einbezieht.

zu 2. Niemals Logic gehört nicht auf die Clientseite, im Idealfall macht der Client nichts anderes als Darstellen. Sollte nicht Perfomancentechnische Gründe verhindern das es auf dem Server läuft hat es auf dem Client nie etwas zu suchen. Du würdest dich wundern wieschnell Leute dahinerkommen
Immer an den obersten Grundsatz bei sowas halten:
Der Client ist in Feindeshand und wird NIE verlässliche Werte übergeben. Sollte tatsächlich Berechnungen von ihm kommen sollte man sie Checken.
dready is offline  
Thanks
2 Users
Old 07/22/2013, 22:29   #3
 
elite*gold: 0
Join Date: Jul 2013
Posts: 3
Received Thanks: 0
Super Antwort!
Hab mich richtig darauf gefreut sie zu lesen!

Ich werde also auf meine erste Methode zurückgreifen.
Also wird der Server eine Blender Executable sein die über die exakt gleiche Karte wie der Client verfügt. Client sendet nurnoch z.b "bewege_nach_vorne" und der Server berechnet die X/Y/Z und Rotation selber.
Der Client stellt nurnoch dar.


Mit freundlichen Grüssen,

_Pancakes_
_Pancakes_ is offline  
Old 07/23/2013, 21:20   #4
 
_Roman_'s Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 1,620
Received Thanks: 237
Richtig. Denn wenn diese wichtigen Sachen wie die Berechnungen im Client gemacht werden, kommt natürlich irgendeiner auf die Idee Cheatengine zu benutzen und dann haste ganz schnell nen Hack zusammen.
_Roman_ is offline  
Reply


Similar Threads Similar Threads
The Elder Scrolls Online - Verhalten der Gegner
07/02/2013 - User Submitted News - 0 Replies
http://communityhub.de/wcf/images/elder/logo.png Das bald erscheinende Online-Rollenspiel "The Elder Scrolls Online" (kurz ESO genannt) lockt nun auch mit vielen gefährlichen Dungeons, die in Gruppen erkundet werden sollen. Die verschiedenen Instanzen sind für Vier-Spieler-Gruppen ausgelegt und zählen als einer der schwierigsten Herausforderungen im Spiel. Für das Abenteuer müssen die Spieler verschiedenste Rollen in den Gruppe einnehmen um bestehen zu können. Allerdings ist man nicht nur...
Synchronisation nicht möglich ?
08/16/2012 - Smartphones - 1 Replies
Hey, Ich habe seit heute auf meinem Handy eine Internetflat von o² und es funktioniert auch alles wunderbar außer der Android Store. Sobald ich mich anmelden möchte läd er entweder bis in alle ewigkeit oder er sagt mir das ich keine netzwerk verbindung habe.. Accountdaten usw. stimmen alles, was kann ich machen ?
Synchronisation von Computern
07/06/2012 - Web Development - 1 Replies
Moin, folgende Ausgangssituation: ich bin gerade dabei, ein kleines browserbasiertes-multiplayer-onlinegame zu programmieren. Auf der Startseite kann Player1 ein neues Spiel eröffnen, dazu wird ihm eine spezielle url zugewiesen (bsp: index.php?gameId=12345). Über diese Url kann sich Player2 ebenfalls in das Spiel einwählen, indem er seinen Spielernamen angibt. Wenn beide Spieler einen haken bei "bereit" gemacht haben, soll das Spiel in genau 5 Sekunden (countdown wird angezeigt) bei jedem...
Welche maps in filezilla sind welche maps in game?
01/11/2011 - Metin2 Private Server - 5 Replies
heyhey ich hab jetzt eine frage, ich brauch serverfiles von computercrank und ich woll am der neuen maps , mobs implantieren aber ich weiss net welche maps in filezilla dieser maps sinds : Ebenen von Cidios Anfangerwiese Halle der Krieger Zombiewiese NewMap
[Problem] KI-Gegner maps werden nicht angezeigt
11/19/2010 - Starcraft 2 - 3 Replies
hey, nach langem hab ich mir StarCraft 2 geholt. Alles toll und super ;) nur das problem, ich will die Erfolge von den KI gegner machen. Das problem, keine map wird bei mir angezeigt... Also es läd ca. 1 minute dann leer keine maps nix... Würde mich echt freuen, wenn mir irgendjemand hilft, denn alleine will ich auch mal playen :p Mit freundlichen Grüßen



All times are GMT +1. The time now is 08:16.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.