Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

21

08.07.2012, 14:41

Gut. So wie ich verstanden habe heißt es nur:
ClientXY > Server: Möchte Fire1 ausführen
Server > ClientXY: Du darfst ausführen.
Server > alle Clients: ClientXY führt Fire1 aus.
Alle Clients: Führe Animation zu Fire1 bei ClientXY aus

Und wer die Animation "manipuliert" hat selbst schuld, da es clientseitig ist :P
so ungefähr??

2. Sache.. ich habe immernoch keine Idee wie der Server die physkalischen Dinge wie zum Beispiel beim Schusstreffer der Spieler machen soll. Ich kann es mir nur bildlich vorstellen und dazu gehört nun mal eine Map und die Objekte :hmm:

Außerdem hab ich nun ein Denkansatz aufgebaut und wollte Fragen ob es sich so korrekt anhört:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
06.07.12
Everything with RPC calls

C = Client
S = Server

C > S: Hello Server. I want to connect your server. (Just normal connect).
S > C: I want know your nickname if available.
C > S: Hello Server, my name is Max.
S: Checking the Nickname. Nickname already in use.
S > C: Hello Client you can connect continue and load the map XY, but ur Nickname will change to Max (2) You can change it later
"The change will be send to all clients inclusive himself"

C: Loadsmap. If mapIsLoaded
C > S: Hello Server, can you send me the data about player and objects.
S > C: Hello Client yes, I can. Here: (Playerpos, Playerstats(Health...), Objectpos and co);
C > S: Hello Server, I want to spawn.
S > C: You can spawn have fun.
C > S: I want to move.
S > C: You can move
C > S: I want to shoot
S > C: Yes u can shoot.

S > C: You got hit 10 Damage.
C: Removing 10 Damage from my current health
S > C: You are dead, please play deadscene
C: Ok, playing deadscene.
Nichts ist unmöglich.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

22

08.07.2012, 18:55

"Server > ClientXY: Du darfst ausführen." - brauchst du meist nicht da der server ja alle clients die es wissen müssen über die Aktion ehe informiert. Welche Art von Spiel willst du eigentlich entwickeln?
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

FSA

Community-Fossil

  • Private Nachricht senden

23

08.07.2012, 22:58

Ich muss ja mal grinsen wie S&C sich unterhalten :D Das ist schon geil wenn man das so schreibt und im Spiel als Zusatz anzeigt :thumbup:

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

24

09.07.2012, 06:36

Ja, schon amüsant. :) Aber anzeigen sollte man das nicht, weil im Normalfall vom Server schnell mal 10 bis 1000 Pakete pro Sekunde rein kommen können, gerade bei Multiplayer-Games.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

25

10.07.2012, 02:32

@Nox
Ach noch habe ich nicht angefangen, aber habe vor eine Stadt mit NPCs Autos usw. zu machen und wo andere Spieler ebenfalls rum "chillen" können. Sowas wie freeroam. Hatte es "Free Roam City" zu benennen.

Ich habe eine Frage aber ein programmiertechnisches Problem. Also eher gesagt 2 Probleme in ein Problem ^^, wobei das eine mir immer Probleme bereitet hat. Ich dachte ich poste mal hier.
Ich habe eine Player struct. Ein Player wird erst beim Connecten eines Servers erstellt und in eine Arrayliste hinzugefügt. Sagen wir mal "ConnectedPlayer" Nun z. B. weiß ich nicht wie ich verwalten soll, wenn ich mal ein Spieler ansprechen will. Was zusätzlich dazu kommt ist NetworkPlayer. Dort sind daten wie IPadresse, guid usw enthalten.

Hm wie soll ich das erklären. Spontan fällt mir Ingamename ein. Z. B. möchte der Client Ingamename ändern. Wenn da eine Funktion OnRename oder sowas ein internal Function(NetworkPlayer plyr) aufruft habe ich hier keine Player struct sonder Network struct ( der ebenfallsin Player struct mit enthalten ist). Mir persönlich fällt nur eine schleife ein, der abgleicht wann Player.networkplayer mit plyr übereinstimmt was ich ehrlich gesagt doof finde. Geht doch nach bestimmten Spieleranzahl voll auf die perfomance oder?? WIrd ja nicht die einzige funktion sein.
Nichts ist unmöglich.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

26

10.07.2012, 07:04

Wie wär's mit einer Map und Unique-IDs als Key für jedes Objekt? Besser als das wird nur direkter Array-Zugriff (auch das ließe sich machen bei einem Array von z.B. Max 10.000 Spielern, wobei jeder eine ID im Intervall (0,10000] bekommt. Verglichen mit dem Aufwand des Parsens der Daten halte ich aber eine Map für ausreichend performant.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

27

10.07.2012, 12:36

Prinzipiell klingt das etwas komisch für mich. In meinen Netzwerkspielen verbindet sich eignetlich immer ein Client und fordert dann eine Spielerinstanz (z.B. per Namen) an. Somit hält der Client einen Verweis auf die Spielerinstanz und nicht andersrum, so wie es bei dir der Fall zu sein scheint. Weil ein Client soll ja mit seinen Eingaben die ihm zugehörige Spielerinstanz manipulieren können und nicht andersrum.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

28

10.07.2012, 13:14

Client ja, aber der Server muss die ja verwalten.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

29

10.07.2012, 19:22

Danke für die Tipps. Ich habe zufällig Dictionary gefunden. Das hilt mir sehr. Dort kann beliebiges schlüssel und wert eintragen. In meinem Fall Liste(Networkplayer, Player)
Nichts ist unmöglich.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

30

10.07.2012, 19:25

Ja, das Konstrukt dahinter nennt sich allgemein Map.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige