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

14.11.2010, 12:17

Wer hat denn gesagt dass ich ein "klassisches" Browsergame programmieren möchte?

Ich möchte ein Gameserver programmieren (while (true)) auf den man via Sockets connected.
Das funktioniert auch soweit, Frage war nur, ob ich das ganze lieber mit C++ machen sollte.

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

22

14.11.2010, 12:24

Würde ich nicht zu raten und wie mehrfach angesprochen, wäre das reinfrimmeln in eine Sprache wie C++ auch mühevoller als wenn du leichtere oder für dich bekanntere Dinge nimmst.
Also, wie ich schon angesprochen habe, Python mit Django oder bleib einfach bei PHP.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

23

14.11.2010, 17:34

Hallo,
ist zwar nur ein sehr kurzer Artikel, aber vielleicht trotzdem interessant:
http://www.evergore.de/v2rebirth.php

Die Entwickler(bzw. der Entwickler leider mittlerweile :/) ist auch sehr kontaktfreudig, heißt er beantwortet wohl gerne Fragen, wenn man dem Forum Glauben schenken darf.
WIP Website: kevinheese.de

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

24

01.01.2011, 19:49

Das Problem mit den Spielern und dem Senden von Daten kannst du Lösen indem du deine Welt in Bereiche einteilst. Immer wenn sich ein Spieler bewegt wird danach geprüft, ob er im selben Bereich bleibt oder einen neuen Betritt. Diese Bereiche werden auch im Code als eigene Liste oder Array behandelt. Diese kannst du dir dann zurückgeben lassen. Quasi Bereich::GibtAlleSpielerDiesesBereichs. Du Schickst dann jedem Spieler nur die Koordinaten der Spieler die im selben Bereich sind. Dein Kollisionsproblem ist auch relativ simpel zu Lösen. Du solltest das nicht Pixel für Pixel lösen, sondern Tile für Tile. Du hast ja dein Array mit Tiles. Tile[5][5] ist ein Baum mit Kollision(das 5te Tile von links und das 5te von oben). Die Tiles haben feste Länge(von mir aus 32x32 Pixel) beim Zeichnen kannst du nun einfach multiplizieren. Heisst Tile[5][5] wird nicht an Position[5][5] gezeichnet, sondern an Position[5*32][5*32]. Die Kollision kannst du Abfragen, indem du nun einfach überprüfst auf welchen Tiles sich dein Spieler befindet. Befindet er sich Teilweise( ;) ) auf Tile[5][5] dann ist eine Kollision da. Hoffe ich konnte es einigermaßen erklären;) Du kannst für die Spielerpositionen natürlich auch einfach Gleitkommawerte benutzen. Wie du es löst ist relativ egal. Aber ich denke eine Pixelgenaue Kollision ist für dein Problem quatsch und wenn du schon TileMaps benutzt, bietet sich eine Tilekollision ja auch an;)
An deiner Stelle würde ich auch nicht unbedingt zu c++ für den Server greifen. Wenn du dort noch keine Programmierkenntnisse besitzt, wird das zu lange dauern;) Ich würde auch bei php bleiben. Sollte für das Problem reichen. Ansonsten Java oder so benutzen, da es schneller zu lernen ist und im Vergleich auch immer noch über genug Performance verfügt;)


Grüße
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Werbeanzeige