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

11

12.11.2010, 21:01

Wird denn ein spürbarer Unterschied zwischen C++ und PHP als Backend bei 100 Spielern zu merken sein?

das kann man pauschal nicht sagen. das ist abhängig vom spiel. ein spiel wie WoW benötigt viel mehr berechnung als ein browsergame wie ogame z.b.
ich glaube nicht, dass dein erstes spiel von so vielen spielern genutzt wird. du stellst fragen die mich das vermuten lassen. die entwicklung eines größeres spiels dauert jahre. ich hab die erfahrung gemacht, dass man selbst nach einem jahr programmiererfahrung noch so große schritte macht, dass man innerhalb von einem weiteren jahr große teile des codes ersetzen muss.
hast du schon tetris, snake oder ähnliches geschrieben?

Ja habe ich, aber mit Javascript und Canvas.

Wie gesagt ich habe bereits ein Browsergame programmiert was von 50 Spielern gleichzeitig gespielt wurde, nur die "Branche" Livegame ist mir komplett neu.

12

12.11.2010, 21:01

Weiß nicht genau was du damit meinst?!

Also ich schließe mal aus deinem Anfangspost, dass du eine Tilemap hast... dann gehst du doch auch einfach alle Felder im sichtbaren Ausschnitt der Spielwelt durch (Feld 1,1 - Feld 1,2 - Feld 1,3 ...) und ließt dazu passend aus einer Datei aus, was an die entsprechende Stelle soll. (Baum, Wand, ...)

Oder hab ich das jetzt falsch verstanden?

Gruß
SaRu_

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

13

12.11.2010, 21:05

achja. da du eine tilemap benutzt darf das spiel nicht zu schnell sein(viel langsamer als snake oder tetris) oder die kollision darf nicht so viel ausmachen, weil sich tiles schlecht extra/interpolieren lassen und so jeder client zu anderen ergebnissen kommen könnte, was zu ungerechtigkeiten führt und einem den spass verdirbt.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

14

12.11.2010, 21:08

Weiß nicht genau was du damit meinst?!

Also ich schließe mal aus deinem Anfangspost, dass du eine Tilemap hast... dann gehst du doch auch einfach alle Felder im sichtbaren Ausschnitt der Spielwelt durch (Feld 1,1 - Feld 1,2 - Feld 1,3 ...) und ließt dazu passend aus einer Datei aus, was an die entsprechende Stelle soll. (Baum, Wand, ...)

Oder hab ich das jetzt falsch verstanden?

Gruß
SaRu_

Ich habe im Moment ein Array vorliegen Map[X][Y]. Und auf der Position 50,50 ist ein Objekt, sprich es ist nicht "begehbar", ich könnte jetzt natürlich wenn die Map beim Server Start geladen wird alle Felder 50,50 bis 70,70 (20x20 Objektgröße) auf nicht begehbar setzen, was bestimmt die beste Möglichkeit ist.

So muss ich bei der Bewegung nurnoch prüfen, ob das neue Feld begehbar ist.


Meine Frage ist halt nur, ob es eine bessere Möglichkeit gibt, ich google schon seit gestern aber habe nichts anderes gefunden.


Edith sagt: Ich habe keine Tilemap, war vll. falsch ausgedrückt ich habe wie oben beschrieben X und Y Koordinate und das Tile wird an der X und Y Koordinate gezeichnet, es beginnt praktisch bei X und Y und endet bei X + TILEBREIT und Y + TILEHÖHE.

15

12.11.2010, 21:14

ich habe wie oben beschrieben X und Y Koordinate und das Tile wird an der X und Y Koordinate gezeichnet

Und damit hast du eine Tilemap... vielleicht nicht als Datei vorliegen, aber ich wüsste nicht was das sonst sein sollte?!

Gruß
SaRu_

16

12.11.2010, 21:16

ich habe wie oben beschrieben X und Y Koordinate und das Tile wird an der X und Y Koordinate gezeichnet

Und damit hast du eine Tilemap... vielleicht nicht als Datei vorliegen, aber ich wüsste nicht was das sonst sein sollte?!

Gruß
SaRu_

Was gibt es denn noch für Maparten?

Gibt es denn nun noch eine bessere Möglichkeit als oben beschrieben?

17

12.11.2010, 21:22

Im Grunde funktionierts so ja. In wie fern du das noch optimieren kannst musst du selbst herausfinden, liegt auch n Stück weit daran was genau du da entwickelst.

Gruß
SaRu_

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

18

12.11.2010, 22:04

es ging mir eigentlich nicht darum wie die map gezeichnet wird sondern wie die spieler sich bewegen. sind es eher schachbrettbewegungen wie bei snake(dabei werden die positionen in mit ganzzahlen bespeichert) oder flüssige bewegungen die du in kommazahlen speicherst wie bei GTA oder so?^^
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

19

12.11.2010, 22:09

es ging mir eigentlich nicht darum wie die map gezeichnet wird sondern wie die spieler sich bewegen. sind es eher schachbrettbewegungen wie bei snake(dabei werden die positionen in mit ganzzahlen bespeichert) oder flüssige bewegungen die du in kommazahlen speicherst wie bei GTA oder so?^^

Alle 50 ms verschiebt sich die Position um 5 Pixel, sodass es flüssig ist.

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

20

14.11.2010, 12:09

Nur mal so, bevor du dich an C++ als Backend wagst, nimm lieber Python mit Django. Die Optimierungsrate bei PHP, C++ und Python sieht ca. so aus : php < Python < C++, aber trotzdem vollkommen ausreichend. Wenn du in deinem Browsergame möglichst geschickt cached, sollte sogar php völlig reichen. Schau dir mal http://die-staemme.de an, Das backend beruht fast nur auf PHP (obwohl neuerdings auch Python eine Rolle spielen soll) und Ajax macht das ganze schön Refresh-sparend.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Werbeanzeige