[Projekt] Zudo's StoneQuest

Hier könnt ihr euch selbst, eure Homepage, euren Entwicklerstammtisch, Termine oder eure Projekte vorstellen.
Forumsregeln
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.

Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.

This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
Seraph
Site Admin
Beiträge: 1184
Registriert: 18.04.2002, 21:53

Re: [Projekt] Zudo's StoneQuest

Beitrag von Seraph »

Artificial Mind hat geschrieben:BTW: es heißt _griefing_ und ist eine falsch gebildete Form von _grief_ (eigentlich müsste es grieving heißen) und kommt von Leid/Entsetzen/Trauer. Zum Nachlesen: http://www.minecraftwiki.net/wiki/Griefing
Ich denke nicht, dass es eine falsch gebildete Form von 'grief' oder 'to grieve for so' ist, da es genau das Umgekehrte des Wortes meint. Waehrend 'to grieve for someone' die Trauer um jemanden ist, meint 'griefing' das Hervorrufen von 'grief'. Wenn dann wuerde ich es eh unter Internet-Wortneubildung ablegen.

@Zudo: Mach man, aber wenn Du nur wegen der MMOG-Serverkomponente ein halbes Jahr oder mehr laenger brauchst oder irgendwann feststellst, dass das MMOG-Prinzip gamedesign-technisch bedeutend mehr Kopfschmerzen bereitet als bisher angenommen (und im Vergleich zu einem normalen MP), dann sag nicht ich haette Dich nicht gewarnt. ;)

Und ich habe bisher noch nichts von deinem Projekt infrage gestellt, da ich es durchaus fuer machbar halte. Nur ist es bisher imho zu ungeplant/undurchdacht. Aber wie gesagt, ich will Dich nicht davon abbringen, ich finde dein Projekt grundsaetzlich gut. :)
gdsWizard
Establishment
Beiträge: 237
Registriert: 04.02.2005, 09:12
Benutzertext: www.gamedevstudio.com
Echter Name: Thomas Mittelsdorf
Wohnort: Meiningen
Kontaktdaten:

Re: [Projekt] Zudo's StoneQuest

Beitrag von gdsWizard »

Es ist schon beachtlich was mit StoneQuest machbar ist. Durch die gemeinsame Welt gehen die Bauwerke und Konstrukte die wir bauen nicht verloren. Schöne neue Welt ... StoneQuest.
Benutzeravatar
The_Real_Black
Establishment
Beiträge: 110
Registriert: 19.01.2008, 19:57
Benutzertext: Happy Coding
Kontaktdaten:

Re: [Projekt] Zudo's StoneQuest

Beitrag von The_Real_Black »

Welt stürtzt ab in 5..4..3..2..1..0
"Unbehandelte Ausnahme bei 0x77732581 in stonequest.exe: 0xC0000005: Zugriffsverletzung beim Schreiben an Position 0x00090fe4."

Tya ^^

Für knappe 10 Sekunden schafft es StoneQuest Daten zu senden danach ist Ende mit der Verbindung.
Happy Coding.
Benutzeravatar
Raidenkk
Beiträge: 64
Registriert: 27.11.2011, 02:32
Echter Name: Kevin
Wohnort: Bergkamen
Kontaktdaten:

Re: [Projekt] Zudo's StoneQuest

Beitrag von Raidenkk »

Mir geht es genauso Zudo ist am schlafen und die StoneQuest süchtigen können nicht Zocken na Toll :D
pUnkOuter
Establishment
Beiträge: 303
Registriert: 15.04.2002, 15:59

Re: [Projekt] Zudo's StoneQuest

Beitrag von pUnkOuter »

Was machst du, wenn jemand einen Bot schreibt, der alles zubaut? Sollte nicht allzu schwer sein, die Blockstrukturen direkt im Memory zu manipulieren und die Welt in 3 Sekunden völlig mit Blöcken zu füllen.
Ein Zeiger ins Blaue ist wie ein Wegweiser nach <SEGFAULT>. Wenn du denkst, mein Name hat was mit abgefuckter Kleidung und bunten Haaren zu tun, dann kehr besser um.
Seraph
Site Admin
Beiträge: 1184
Registriert: 18.04.2002, 21:53

Re: [Projekt] Zudo's StoneQuest

Beitrag von Seraph »

Dann sind zumindest genuegend Rohstoffe fuer alle da. :)

Interessant wird es auch in der Hinsicht, wenn mehr als eine Person an einem 'Projekt' arbeitet. Wenn die Cluster nur alle 30s ausgetauscht werden koennte das sehr... zeitaufwaendig werden.
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] Zudo's StoneQuest

Beitrag von Zudomon »

Huhu! Ich werd mal schauen, was ich tun kann...
Toll, da geht man einmal pennen und schon bricht die Matrix zusammen... *g*

Was Bots usw. angeht wäre es natürlich gut, wenn man dagegen Maßnahmen ergreifen könnte...
Genau für solche Dinge war dieser Thread gedacht
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] Zudo's StoneQuest

Beitrag von Zudomon »

Version 0.0.196

Mal schauen, wie lange es diesmal gut geht...
Die Welt aktualisiert sich nun nach den ersten 10 Sekunden in jeder Minute... wenn jetzt nur wenige testen, sollte das einigermaßen so laufen.
Ich mache mal vorsichtshalber noch ein Backup von der aktuellen Welt.

Neu ist jetzt, dass das aktualisieren auch klappt. Bisher wurde zwar die Welt vom Server geladen, aber nicht aktualisiert.
Außerdem geht das Syncen nun etwas schneller. Zumindest solange die Welt noch so klein ist.
Benutzeravatar
The_Real_Black
Establishment
Beiträge: 110
Registriert: 19.01.2008, 19:57
Benutzertext: Happy Coding
Kontaktdaten:

Re: [Projekt] Zudo's StoneQuest

Beitrag von The_Real_Black »

Zudomon hat geschrieben:Version 0.0.196

Mal schauen, wie lange es diesmal gut geht...
Die Welt aktualisiert sich nun nach den ersten 10 Sekunden in jeder Minute... wenn jetzt nur wenige testen, sollte das einigermaßen so laufen.
Ich mache mal vorsichtshalber noch ein Backup von der aktuellen Welt.

Neu ist jetzt, dass das aktualisieren auch klappt. Bisher wurde zwar die Welt vom Server geladen, aber nicht aktualisiert.
Außerdem geht das Syncen nun etwas schneller. Zumindest solange die Welt noch so klein ist.
Mein haus ist ganz das neue an der Klippe gerade aus zu dem Berg mit der Treppe hinauf.

Aber alle x Sekunden für 45-90 Sekunden nicht spielen können ist Mist, dass macht keinen Spaß da bleibe ich bei Minecraft.
Happy Coding.
Benutzeravatar
FlashbackOwl
Beiträge: 76
Registriert: 13.10.2011, 17:14

Re: [Projekt] Zudo's StoneQuest

Beitrag von FlashbackOwl »

45-90 Sekunden??
Was für eine Leitung hast du :D
Bei mir sind das ca 1-2 Sekunden..
16.000er
Linux wird nie das meistinstallierte Betriebssystem sein, wenn man bedenkt, wie oft man Windows neu installieren muss...
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] Zudo's StoneQuest

Beitrag von Zudomon »

The_Real_Black hat geschrieben:Aber alle x Sekunden für 45-90 Sekunden nicht spielen können ist Mist, dass macht keinen Spaß da bleibe ich bei Minecraft.
Da sparst du wenigstens 5€ im Monat :D
pUnkOuter
Establishment
Beiträge: 303
Registriert: 15.04.2002, 15:59

Re: [Projekt] Zudo's StoneQuest

Beitrag von pUnkOuter »

Um dich vor Cheatern und Griefern zu schützen, solltest du erst mal so viel kritische Gamelogik wie möglich auf dem Server haben. Du solltest also nicht die Blöcke syncen, sondern nur die "baue block an pos 1.2.3" zum Server übertragen, dann auf dem Server den Block setzen, und von da aus die Blöcke an die Clients synchronisieren. So könntest du z.B. schon mal serverseitig ein Delay einbauen, so dass z.B. mehr als 2 "baue block"-Commands pro Sekunde vom selben Client einfach ignoriert werden. Dann kannst du natürlich noch eine Liste auf dem Server führen, welcher Spieler welche Blöcke ab/aufgebaut hat und dann im Notfall wieder rückgängig machen. Irgend eine Form von Backup brauchst du sowieso, warum nicht gleich alle Commands mit der Zeit mitloggen, dann kannst du beliebig zurückspringen.
Ein Zeiger ins Blaue ist wie ein Wegweiser nach <SEGFAULT>. Wenn du denkst, mein Name hat was mit abgefuckter Kleidung und bunten Haaren zu tun, dann kehr besser um.
Benutzeravatar
The_Real_Black
Establishment
Beiträge: 110
Registriert: 19.01.2008, 19:57
Benutzertext: Happy Coding
Kontaktdaten:

Re: [Projekt] Zudo's StoneQuest

Beitrag von The_Real_Black »

FlashbackOwl hat geschrieben:45-90 Sekunden??
Was für eine Leitung hast du :D
Bei mir sind das ca 1-2 Sekunden..
16.000er
16000 / 45 = ... kommt gut ran..
Zudomon hat geschrieben:
The_Real_Black hat geschrieben:Aber alle x Sekunden für 45-90 Sekunden nicht spielen können ist Mist, dass macht keinen Spaß da bleibe ich bei Minecraft.
Da sparst du wenigstens 5€ im Monat :D
5€ im Monat wäre es mir soweiso nicht wert. ;-P
Happy Coding.
Jofarin
Beiträge: 49
Registriert: 08.11.2011, 13:48

Re: [Projekt] Zudo's StoneQuest

Beitrag von Jofarin »

pUnkOuter hat geschrieben:Um dich vor Cheatern und Griefern zu schützen, solltest du erst mal so viel kritische Gamelogik wie möglich auf dem Server haben. Du solltest also nicht die Blöcke syncen, sondern nur die "baue block an pos 1.2.3" zum Server übertragen, dann auf dem Server den Block setzen, und von da aus die Blöcke an die Clients synchronisieren. So könntest du z.B. schon mal serverseitig ein Delay einbauen, so dass z.B. mehr als 2 "baue block"-Commands pro Sekunde vom selben Client einfach ignoriert werden. Dann kannst du natürlich noch eine Liste auf dem Server führen, welcher Spieler welche Blöcke ab/aufgebaut hat und dann im Notfall wieder rückgängig machen. Irgend eine Form von Backup brauchst du sowieso, warum nicht gleich alle Commands mit der Zeit mitloggen, dann kannst du beliebig zurückspringen.
Bei nem Spiel wie StoneQuest könnte man auch problemlos auf 1 Block pro Sekunde runtergehen, dann müssen schon dutzende Leute in einem Sektor bauen oder man muß Mordslag haben, bevor das mit der Synchro schwierig wird. Und wie schonmal vorgeschlagen gegen Griefing: Gesetzte Blöcke abbauen dauert 10s statt 1s, dann ist Sachen zerstören schon recht zeitaufwändig, aber immernoch möglich (falls man sich mal verbaut hat oder jemand aus Griefing einem ne Wand ins Haus baut). Das mit der Schutzzone könnte später dann noch hinzukommen, allerdings muß man Schutzzonen regelmäßig erneuern bzw. im Vorfeld aufladen (wenn einer für 2 Jahre Ressourcen ranschafft...ok, dann steht da halt was 2 Jahre rum, selbst wenn er in der Zeit nicht mehr zockt).
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Zudo's StoneQuest

Beitrag von LONy »

Ich bin gestern beim Spielen (ich wollte auf einem Abhang einen Turm bauen) in ein Tal gefallen... ok hab ich mir gedacht, ich bau einen schönen breiten Aufstieg (3m breit) in den Fels und wenn ich oben am Berg wieder raus komm setz ich da direkt meinen Turm drauf... nach 120m graben hatte ich keine lust mehr. Ich hab mir gedacht... ich muss doch langsam oben sein. Der einstieg im Tal ist auf 20m und ich war dann bei 140m oben... ok F10 -> Startposition... auf den Berg gestiegen, wo ich meinen Turm baun wollte (an der selben Stelle, wo ich ihn schonmal gebaut hatte (siehe screenshots ein paar Seiten vorher)) so ok, der blöde Berg ist halt einfach mal > 300m hoch... obwohl ich schon recht lang gegraben hatte, hab ich noch nichtmal 1/3 geschafft...

Lange Rede, kurzer Sinn: wenn man z.B. 10s bräuchte um einen Würfel wegzugraben ist es schon fast eine Lebensaufgabe so einen Aufstieg zu graben. Auch 1s ist noch sehr lang beim graben (ich denk mal ich werd so 3-4 Blöcke pro Sekunde gegraben haben).

Momentan sind wir ja alles Alphatester die spielen... ich glaub da wird keiner böswillig die Burg eines anderen zerstören... außerdem ist die Welt soooo rießig groß, dass man sich in irgend ein endlegenes Eck verziehen kann und da dann in aller Ruhe sich aufbaut.

Die Idee mit dem "Schutzschild" hingegen finde ich gut :) Also Blöcke die durch einen Spieler gesetzt werden, werden mit SpielerID gespeichert... man selbst kann seine Blöcke schnell entfernen. Andere Spieler brauchen dann je nach der Erfahrung des Spielers, der die Blöcke gesetzt hat, (und nach der eigenen Erfahrung?) unterschiedlich lang einen Spielerblock zu entfernen. <--- versteht ihr den Satz? :D

SQ wird richtig richtig cool :) wenn ich nur mehr Zeit hätte SQ zu spielen oder selbst weng zu Proggen^^

Was ich als nächstes wichtig finde ist, die Syncronisation abzustellen und gleichzeitig die Sicherheit zu erhöhen -> dem Server nur noch die Bewegungsdaten und Clicks übertragen und der verteilt es dann weiter an alle anderen Clients. Somit fällt die Sync flach und der Server kann die clicks gleich noch validieren... :)
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] Zudo's StoneQuest

Beitrag von Zudomon »

Huhu!
Im Moment bin ich sowas von unzufrieden mit SQ...
Ich möchte ja Serverseitig kein Programm laufen lassen... und mein jetziger Ansatz war ja einfach per ftp verbinden und die daten hoch und runter zu laden.
Nun dachte ich mir ja, einfach statt eine fette Welt nur die einzelnen Cluster zu schicken. Das ist auch ein wenig schneller... aaaaaber, es entstehen hunderte Dateien... und auch wenn dann nur noch ein Cluster vielleicht ne halbe Sekunde braucht, dann brauchen alle runter und hochladen jetzt schon gut ne Minute oder so... also wenn ich die Cluster mit dem TotalCommander hochlade sind es sogar etliche Minuten.
Mist... ich brauche eine bessere Lösung... eine einfache, weil ich bin Noob, wisst ihr ja!
Änderungen übertragen, tja, wenn da ein echter Server laufen würde, und nicht nur Webspace und ne Datenbank drauf wäre, dann wäre das schon eine Lösung. Aber gefallen tut mir das nicht. Das sollte lieber so gehen.
Ich bin noch am hadern... die Frage ist, ob so ne 100 MB MySQL Datenbank schnell genug ist... da müsste ich dann die Einzelnen Voxel speichern... komisch, irgendwie kommt mir gerade der Name LONy in den Sinn... das Problem an den kompletten Clustern wäre nämlich, dass sie verschieden groß sind. Ein Voxel braucht bei mir zur Zeit 7 Byte. Allerdings nur, wenn das Cluster bekannt ist. 2 Byte Word Position im Cluster. 1 Byte Voxeltyp. 4 Byte Zeitstempel.
Die Frage ist einfach, ob man Millionen Datensätze relativ schnell verwalten kann damit.
Ich hätte ja die aktuelle Version schon heute Mittag hochgeladen, aber dann kommen hier ja noch mehr Posts, wie scheiße das läuft... und das ertrage ich nicht. Reicht schon, dass ich weiß, wie scheiße es ist. Und als ich nicht mehr ertragen habe, wach zu bleiben, weil mir mein ganzer Plan zunichte gegangen ist, und man dann noch von SQ träumt und das da gefühlte 1000x besser ist und man dann so im Traum denkt, och... so schlecht ist es ja dann doch nicht, was man bisher gemacht hat... und wieder aufwacht und mit der harten Realität konfrontiert wird, da würde ich am liebsten SQ einstellen. Aber das kann ich natürlich nicht tun... denn weiter leben wollte ich dann auch nicht mehr! Und mal ehrlich, wer würde dann hier das Forum vollspammen?
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: [Projekt] Zudo's StoneQuest

Beitrag von Aramis »

Ehrlich gesagt hoert sich das fuer mich nicht unbedingt nach einem Fall fuer MySQL an ... wirkliche 'Queries' hast du ja nicht, sondern musst eigentlich nur Daten ausliefern und blockweise aktualisieren. Kannst du nicht die ohnehin bereits existente Cluster-IO-verwaltung des Clients aufbohren, ein Frontend davorhaengen und dann cachen soweit es dein Server-RAM zulaesst? (oder ggf. einfach den OS Page-Cache 'nutzen'!) Fuer den Anfang sollte das doch langen.
antisteo
Establishment
Beiträge: 928
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: [Projekt] Zudo's StoneQuest

Beitrag von antisteo »

Du speicherst pro Voxel die Position im Cluster mit?
Also in gwX werden immer komplette Cluster zur Laufzeit gzip-komprimiert, bevor sie geschicht werden.
Im Prinzip musst du eine Form finden, wie du die Cluster serialisierst. Je "langweiliger" die Daten sind, desto weniger Übertragungsdaten macht gzip dann draus. Für gzip hab ich nen simplen Header geschrieben, der gegen die zlib.dll linkt und mir gleichzeitig noch die Möglichkeit bietet, Pascal-Strings zu zippen/entzippen. Kompressionsfaktor ist ziemlich groß, solltest du also auf alle Fälle machen.
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] Zudo's StoneQuest

Beitrag von Zudomon »

antisteo hat geschrieben:Du speicherst pro Voxel die Position im Cluster mit?
Also in gwX werden immer komplette Cluster zur Laufzeit gzip-komprimiert, bevor sie geschicht werden.
Im Prinzip musst du eine Form finden, wie du die Cluster serialisierst. Je "langweiliger" die Daten sind, desto weniger Übertragungsdaten macht gzip dann draus. Für gzip hab ich nen simplen Header geschrieben, der gegen die zlib.dll linkt und mir gleichzeitig noch die Möglichkeit bietet, Pascal-Strings zu zippen/entzippen. Kompressionsfaktor ist ziemlich groß, solltest du also auf alle Fälle machen.
Danke... aber ich packe schon seit Jahren meine Daten.
Und ja, ich speichere pro Voxel die Position.
Die Frage dabei ist eigentlich nur, ab wann lohnt sich dafür ein Octree... wenn man in einem Cluster nur 10 Voxel ändert, dann ist der Overhead wohl zu extrem.
Aber mal schauen, das hat eh alles noch Zeit. (Also ich meine, optimieren kann man später noch, wenn die Basis steht)
Sleepy
Beiträge: 35
Registriert: 22.03.2010, 18:25

Re: [Projekt] Zudo's StoneQuest

Beitrag von Sleepy »

LONy hat geschrieben:Ich bin gestern beim Spielen (ich wollte auf einem Abhang einen Turm bauen) in ein Tal gefallen... ok hab ich mir gedacht, ich bau einen schönen breiten Aufstieg (3m breit) in den Fels und wenn ich oben am Berg wieder raus komm setz ich da direkt meinen Turm drauf... nach 120m graben hatte ich keine lust mehr. Ich hab mir gedacht... ich muss doch langsam oben sein. Der einstieg im Tal ist auf 20m und ich war dann bei 140m oben... ok F10 -> Startposition... auf den Berg gestiegen, wo ich meinen Turm baun wollte (an der selben Stelle, wo ich ihn schonmal gebaut hatte (siehe screenshots ein paar Seiten vorher)) so ok, der blöde Berg ist halt einfach mal > 300m hoch... obwohl ich schon recht lang gegraben hatte, hab ich noch nichtmal 1/3 geschafft...

Lange Rede, kurzer Sinn: wenn man z.B. 10s bräuchte um einen Würfel wegzugraben ist es schon fast eine Lebensaufgabe so einen Aufstieg zu graben. Auch 1s ist noch sehr lang beim graben (ich denk mal ich werd so 3-4 Blöcke pro Sekunde gegraben haben).

Momentan sind wir ja alles Alphatester die spielen... ich glaub da wird keiner böswillig die Burg eines anderen zerstören... außerdem ist die Welt soooo rießig groß, dass man sich in irgend ein endlegenes Eck verziehen kann und da dann in aller Ruhe sich aufbaut.

Die Idee mit dem "Schutzschild" hingegen finde ich gut :) Also Blöcke die durch einen Spieler gesetzt werden, werden mit SpielerID gespeichert... man selbst kann seine Blöcke schnell entfernen. Andere Spieler brauchen dann je nach der Erfahrung des Spielers, der die Blöcke gesetzt hat, (und nach der eigenen Erfahrung?) unterschiedlich lang einen Spielerblock zu entfernen. <--- versteht ihr den Satz? :D

SQ wird richtig richtig cool :) wenn ich nur mehr Zeit hätte SQ zu spielen oder selbst weng zu Proggen^^

Was ich als nächstes wichtig finde ist, die Syncronisation abzustellen und gleichzeitig die Sicherheit zu erhöhen -> dem Server nur noch die Bewegungsdaten und Clicks übertragen und der verteilt es dann weiter an alle anderen Clients. Somit fällt die Sync flach und der Server kann die clicks gleich noch validieren... :)
Ich finde das ist doch wie im echten Leben auch steigt man einen Hohen Berg hinauf und fällt runter braucht man lange um wieder nach oben zu kommen :)
Reden wir hier davon die Berge nicht mehr so hoch zu machen ?
Ich finde man muss einfach aufpassen das man nicht hinunter fällt meine Idee wäre dazu wenn man sich anseilen könnte zb an ein Gummi Seil man kann dann immer wieder Anker in den Bergsetzen und sich sichern.

Cool wäre auch wenn man sich zb bei einem Überhang abseilen könnte oder auf einen anderen weiter untengelegener Bereich hinschwingen könnte. Somit müsste man sich zb Seile Karabiner und Anker Craften.

Das wäre meine Idee dazu.
Jofarin
Beiträge: 49
Registriert: 08.11.2011, 13:48

Re: [Projekt] Zudo's StoneQuest

Beitrag von Jofarin »

Mußt du nicht nur die Cluster hochladen, die vom Benutzer verändert wurden und nur die runterladen, die der Benutzer gerade/ggf. bald sieht?
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] Zudo's StoneQuest

Beitrag von Zudomon »

Jofarin hat geschrieben:Mußt du nicht nur die Cluster hochladen, die vom Benutzer verändert wurden und nur die runterladen, die der Benutzer gerade/ggf. bald sieht?
Ja, aber mit FTP hat das wohl zu großen Overhead.
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Zudo's StoneQuest

Beitrag von LONy »

Sleepy hat geschrieben: Ich finde das ist doch wie im echten Leben auch steigt man einen Hohen Berg hinauf und fällt runter braucht man lange um wieder nach oben zu kommen :)
Reden wir hier davon die Berge nicht mehr so hoch zu machen ?
nein, keinesfalls... ich finde es cool, dass die welt so groß ist :) ich hab nur gemeint, dass es jetzt schon lang dauert sich hoch zu graben, wenn man so 3-4 Blöcke pro Sekunde abbaut... und wenn man da erstmal eine Begrenzung von 10s einbaun würde, es keinen Spaß mehr macht, weil man einfach nicht mehr vorran kommt...

@Zudo: ich bin ja leider bei meinem spiel die letzten paar wochen überhaupt nicht weiter gekommen, hab mich aber weiter in die Theorie eingearbeitet... ich denke so ein Websocketserver wäre vielleicht genau das richtige für dich (kA wie es andere Spiele wie WoW machen, aber sicherlich auch mit einer direkten socket verbindung und nicht irgendwie über datein die per FTP up- und down- geladen werden...)

können uns ja morgen mal im ICQ weng unterhalten :) allerdings hast du bei deinem Server wenn ichs richtig in Erinnerung hab nur Webspace, somit fallen Websockets erstmal flach... ich schlaf mal ne nacht über dein Problem, vielleicht kommt mir ja ne idee :) und ich kenn das, wenn man vom perfekten spiel träumt^^
Jofarin
Beiträge: 49
Registriert: 08.11.2011, 13:48

Re: [Projekt] Zudo's StoneQuest

Beitrag von Jofarin »

LONy hat geschrieben:
Sleepy hat geschrieben: Ich finde das ist doch wie im echten Leben auch steigt man einen Hohen Berg hinauf und fällt runter braucht man lange um wieder nach oben zu kommen :)
Reden wir hier davon die Berge nicht mehr so hoch zu machen ?
nein, keinesfalls... ich finde es cool, dass die welt so groß ist :) ich hab nur gemeint, dass es jetzt schon lang dauert sich hoch zu graben, wenn man so 3-4 Blöcke pro Sekunde abbaut... und wenn man da erstmal eine Begrenzung von 10s einbaun würde, es keinen Spaß mehr macht, weil man einfach nicht mehr vorran kommt...
Die 10s in meinem Vorschlag gelten ausschließlich für spielergebauten Kram. D.h. jemand müßte da erstmal nen 300m hohen Berg selbst hinbauen bevor du dich nicht durchgraben kannst. Und dafür braucht er erstmal selber jede Menge Zeit.
Man könnte die "Grabgeschwindigkeit" auch vom Blocktyp abhängig machen. Spielergebauter Sand dauert nur 2s, spielergebaute "verstärkte Mauer" ne Minute.
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] Zudo's StoneQuest

Beitrag von Zudomon »

LONy hat geschrieben:ich schlaf mal ne nacht über dein Problem, vielleicht kommt mir ja ne idee :) und ich kenn das, wenn man vom perfekten spiel träumt^^
Und ich arbeite mal ne Nacht an dem Problem... morgen früh soll es alles laufen! wohl eher doch nicht... bin zu müdi... muss gleich nochmal schlafen...

Achso ja: Ich finde die Idee gut, das die Wände so massiv wie die Spielererfahrung sind...
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Zudo's StoneQuest

Beitrag von LONy »

Jo, dann frohes schaffen @Zudo :D
Für mein Spiel hab ich mir des inzwischen so gedacht... die ganze Spielewelt liegt im Server RAM und wird auch da bearbeitet, gelesen... geschrieben... was halt zu machen ist. Gleichzeitig wird im Hintergrund alles in einer Datenbank gespeichert (wie die in deinem Fall aussehen muss, müsste man sich gedanken machen) und falls der Server mal abschmiert wird beim neustart des Servers alles nötige aus der DB in den RAM geladen. Das ganze dürfte sehr sehr schnell sein.

Das ganze wäre vielleicht sogar auf deinem einfachen "Webspace Server" realisierbar :) Wenn ein client connectet ruft er eine URL auf ...connect.php?userid=123 das php script erstellt eine world_userid.dat welche alle informationen enthält die der spieler für seine startposition und die cluster außen rum benötigt (um den traffic gering zu halten). Wenn ein spieler jetzt einen Block setzt rufst du einfach vom client aus eine andere datei auf ...updateBlock.php?userid=...cluser=...block=...typ=... du hast also pro userclick einen webseitenaufruf... der webserver muss nichtmal eine anzuzeigende webseite zusammenbasteln und er ist ja eh auf viele seitenaufrufe ausgelegt, dürfte also auch kein performance problem sein. jetzt musst du nur noch die neuen daten vom server (die ja immer im RAM aktuell sind und in einer Datenbank als backup vorgehalten werden) aus dem RAM auslesen und irgendwie zum client schaufeln. Hier könntest du vielleicht Zyklisch 1x pro sekunde eine updateWorld_userid.dat vom server per ftp abrufen. Der Server erstellt die für jeden user mit den relevanten änderungen individuell... oder besser noch wäre vielleicht ein zyklischer aufruf von einer updateWorld.php?userid=... und so stellt der server immer die neuen aktuellen informationen parat, die dann der client durch aufruf der seite erhält und der server weiß dadurch auch genau welche infos der client schon hat und stellt die beim nächstn aufruf natürlich nicht mehr parrat...

ich denk so könnte das funktionieren.. sogar mit 1000-10000 spielern auf einmal (der aufwand für den server ist denke ich sogar geringer als bei einem normalen browsergame) zumindest so lange er nur die welt aktuell halten muss

sobald eine echtzeitbewegung von spielerkoodinaten dazu kommt (man die anderen spieler anzeigt) wird es schon komplizierter.. da wirst du mit normalem webspace nicht mehr hin kommen, da ist dann eine socketverbindung nötig (über die dann vieles einfacher und mit weniger traffic zu realisieren ist). wo es dann wirklich schwierig wird ist, wenn du die ganzen tiere bei allen clients syncron laufen lassen willst. dafür hab ich momentan noch keine wirkliche idee.

ich will ja bei mir auch tiere. meine workarround idee ist, dass der server zwar eine koordinate für jedes tier hat... diese koordinate auch immer mal ändert wenn er gerade rechenzeit übrig hat, aber beim client sich dann das tier in einem radius von x feldern in dem kreis (bei dir wärs ne kugel, da 3D :D) frei bewegen kann... wenn ein jäger ein tier scheißt, schau ich nach ob abs(position client - position server) > delta x ist... wenn dies der fall ist war da wirklich ein tier irgendwo und es kann erschossen werden^^ wenn man natürlich zwei clients nebeneinander offen hat kann ein und das selbe tier an zwei verschiedenen positionen auftauchen.

bei dir ist halt dann noch die schwierigkeit, dass deine welt fast unendlich groß ist...


ich hoff ich konnte dich (oder vielleicht jemand anderes) mit meinen ideen hier auf eine richtige idee bringne ;) hab ja von dem ganzen zeug keine ahnung und nur so halbwissen mit dem ich es so wie oben beschrieben irgendwie lösen würde^^

gute nacht :lol:
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] Zudo's StoneQuest

Beitrag von Zudomon »

LONy hat geschrieben:sobald eine echtzeitbewegung von spielerkoodinaten dazu kommt (man die anderen spieler anzeigt) wird es schon komplizierter.. da wirst du mit normalem webspace nicht mehr hin kommen, da ist dann eine socketverbindung nötig (über die dann vieles einfacher und mit weniger traffic zu realisieren ist). wo es dann wirklich schwierig wird ist, wenn du die ganzen tiere bei allen clients syncron laufen lassen willst. dafür hab ich momentan noch keine wirkliche idee.
Solche Sachen würde ich per p2p direkt an die anderen Clients schicken. Da später nur die Clients in Betracht kommen, die in der Nähe sind, schätze ich, dass ich ein wirkliches MMO mit tausenden Spielern realisieren kann... ich bin mal echt gespannt, wo das ganze hingeht. Und da später dann auch RPG Elemente reinkommen, wärs dann ein echtes MMORPG und das ohne Serverfarm.
Zur Not könnte man den Webspace hinterher auch noch auf verschiedenen Servern verteilen...
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] Zudo's StoneQuest

Beitrag von Zudomon »

Version 0.0.201

Es klappt schon immer besser... könnte sein, dass es wegen zu viel Memory noch abstürzt...
Aktualisiert wird auch erst, sobald man im selben Cluster gebaut hat und das dann ein oder zweimal upgeloaded wird...
Dafür wird nun auch direkt nochmal beim speichern geuploaded...
Die Welt wird nun auch direkt immer vom Server geladen, deswegen ruckelt es auch noch beim erzeugen der Cluster so stark, weil das nicht asynchron läuft.
TheBenji
Establishment
Beiträge: 129
Registriert: 07.01.2011, 17:59

Re: [Projekt] Zudo's StoneQuest

Beitrag von TheBenji »

Hmm...
...was du vorhast klingt ein wenig nach dem dezentralen ansatz ..so in der art wie bitcoin...
Das ist aber relativ blöd für dein spiel weil es relativ lange dauert bis die änderungen wirklich "valide" sind.

Bleibt eig. nur der zentrale ansatz mit einem eigenem server...
...und vServer gibt es schon für wenige euro im monat (<10€).

Ich weiß nicht inwieweit das mit sockets in deiner komischen sprache funktioniert aber das wäre eig. das einzig sinnvolle weil da der overhead relativ gering ist....
(natürlich ist es trotzdem wichtig die Datenmenge gering zu halten^^)
Benutzeravatar
Zudomon
Establishment
Beiträge: 2259
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] Zudo's StoneQuest

Beitrag von Zudomon »

Guten Morgen! :D

Warum... ja warum wird eigentlich immer permanent gegen meine Vorhaben geredet... ich mach das alles schon so lange und würde es nicht ertragen, wenn das was ich sage nicht zutrifft. Also könnt ihr davon ausgehen, dass das alles nicht einfach so dahergesagt ist... ich habe in dem alten StoneQuest auch schon funktionierendes Multiplayer drin gehabt... allerdings war es dort ausschließlich über p2p. Jetzt in der neuen Version, wo der Webspace dazu kommt, wird die Welt wesentlich solider, weil es einen zentralen Anlaufpunkt gibt.

Gib mir mal einfach noch bis nach dem Wochenende Zeit und wir wollen schauen, was ich in meiner komischen Sprache so zaubern kann in Bezug auf Multiplayer. :D

Achso, ja für die UDP Geschichte werde ich WinSockets nehmen.
Antworten