Spielidee!
-
Chickenman schrieb:
schon klar dass das kein browserspiel wird, wär ja mit 3d ein bisschen schwierig
Mit Java3D?
ChrisM schrieb:
Wenn ich jetzt noch das schwerste aller Probleme lösen kann, kann das Programmieren ja sofort losgehen, aber das Problem ist: Der Server.
[...]
Eine andere Idee wäre eine komplizierte Peer2Peer-Strategie, bei der User mit hoher Bandbreite (ab DSL) automatisch zu Subservern "befördert" werden und somit 5-10 User über einen Subserver verwaltet werden.Das wär' natürlich mal 'ne Hammer-Idee! N Online-Spiel mit P2P-Funktionalität verknüpft! Crank. Aber tatsächlich, falls einer off geht etc. muß sich das Netzwerk dynamisch umgestalten. Das ist sicher alles andere als trivial...
ChrisM schrieb:
ne, wie gesagt, eine Flatrate hab ich ja und immer online sein mit dyndns wäre auch kein Problem, nur mein Problem ist die extrem beschränkte Bandbreite bei DSL (14kb/s up, 96kb/s down). Deswegen könnte ich damit allein maximal 10-20 Spieler oder so bedienen, was natürlich viel, viel, viel zu wenig ist (man stelle sich 10 Spieler in einem riesigen Universum vor).
Sind's nicht 16 kB/s (Byte!!) up?
Naja, ob in einem riesigen Universum oder nicht spielt ja überhaupt keine Rolle. Von den 10 Spielern müsstest Du ja nur Koordinaten übertragen...
Aber ich würd's auf jeden Fall erstmal als DSL-Server implementieren, die P2P-Sache ist zwar geil, aber nicht simpel. Ggf. sponsern dann andere User ihre Flatrate auch schonmal, wenn Du Deine server.exe zur Verfügung stellst. Du müsstest dann halt als nächsten Schritt die Server-Verbindungen dynamisch aufbauen, mit Dir als Master-Server.
Im Übrigen glaube ich eh kaum, daß sich bei Dir anfangs mehr als 10 Leute tummeln. Das Projekt durch die Alpha- und Betaphase begleiten tun eh nur ein paar Freaks...
Und 10 (verschiedene!) Leute haben hier ja noch nicht gepostet, und die müssten dann auch gleichzeitig online sein!
Also würde ich auch erstmal mit 'nem kleinen Universum und 2 Planeten oder so anfangen.Deswegen suche ich halt ein Konzept, wie ich das vermeiden kann und nicht mehr Bandbreite brauche oder sonstwie.
Nun, mit 'ner FastDistance-Funktion solltest Du schonmal checken, ob andere Schiffe nicht ewig weit weg sind. Der Server müsste Dir für diese Schiffe nur alle 5 Sekunden mal ein Update-Päckchen schicken...
Wichtig sind nur die in nächster Nähe...
Wobei man FrustrumCulling ja auch verwenden könnte: Schiffe hinter Dir werden nur alle 3 Server-Frames wieder angefordert, o. etwas ä. ...
-
Hi,
@scrontch: Natürlich treibt man nicht herrenlos im Weltall rum, wenn man sich ausloggt, sondern ist halt an irgendeiner Station angedockt und wird dort in der Liste (jede Station hat einen Chat und da stehen alle Leute, die angedockt sind und online sind grün drin, und die, die offline sind, rot) angezeigt.
Natürlich werden nie alle online sein, aber es gibt viele Leute, die wesentlich mehr als 2 Stunden online sind und die auch spätestens dann online gehen, wenn sie über IRC/ICQ oder sonstwo von Allianzmitgliedern erfahren, dass ein Krieg bevorsteht.
@Sgt. Nukem:
Das wär' natürlich mal 'ne Hammer-Idee! N Online-Spiel mit P2P-Funktionalität verknüpft! Crank. Aber tatsächlich, falls einer off geht etc. muß sich das Netzwerk dynamisch umgestalten. Das ist sicher alles andere als trivial...
Eben. Vor allem ist meine größte Sorge, dass das Spiel dann unsynchron wird, weil es ja keinen Masterserver in dem Sinne gibt, der festlegt, wie welcher Schuss usw. ausgeht.
Sind's nicht 16 kB/s (Byte!!) up?
Doch, aber dann kann ich ja nicht mehr hier im Forum rumsurfen während der Server läuft.
Also würde ich auch erstmal mit 'nem kleinen Universum und 2 Planeten oder so anfangen.
So hab ich mir das auch vorgestellt, am Anfang mehrere Sternensysteme mit Nebeln zum Verstecken usw. ist wohl etwas zu viel des Guten...
Nun, mit 'ner FastDistance-Funktion solltest Du schonmal checken, ob andere Schiffe nicht ewig weit weg sind. Der Server müsste Dir für diese Schiffe nur alle 5 Sekunden mal ein Update-Päckchen schicken...
Wichtig sind nur die in nächster Nähe...
Wobei man FrustrumCulling ja auch verwenden könnte: Schiffe hinter Dir werden nur alle 3 Server-Frames wieder angefordert, o. etwas ä. ...Das ist schon klar, deswegen muss aber trotzdem jeder Spieler für einen optimalen Spielgenuss zigmal die Sekunde seine Position und seinen Status mitgeteilt bekommen. Die Positionen der anderen Spieler rückt der Server sowieso nur wenn benötigt raus, allein schon, um Cheats zu vermeiden!
Jetzt brauche ich nur noch eine Inspiration, wie das mit den Planeten geht. Drehen sie sich um die Sonne? Um sich selbst? Ziehen sie sich gegenseitig an? Wie soll man landen, wenn sie sich bewegen?
ChrisM
-
Also für den Anfang würd ich das mal ganz einfach machen. Planeten brauchen sich net um sich selbst zu drehen, das hat eigentlich keinen einfluss auf das spiel, oder? Planeten drehen sich um die Sonne ... Hm, wieso nicht, aber dann in realistischer Geschwindigkeit. Die Sonnen sollten aber Fixe positionen haben, sonst wirds zu kompliziert
-
Noch was: Mit dem Landen auf Planeten ... Willst du das so machen, wie bei Freelancer? Oder willst du den Leuten erlauben durch die atmosphäre zu fliegen?
-
mal ne Idee für Werbung.
Eigentlich hasse ich diese Werbebanner wie die Pest!
Bei deinem Spiel würde die Werbung nur beim ein/ ausloggen auftauchen, also nicht recht effektiv.
Wie wäre es, wenn du z.B Raumstationen mit Reklametafeln versiehst? Oder auch die Einflugschneise. Werbung die immer präsent ist
-
Hi,
danke für eure Antworten
Das mit dem Landen habe ich mir so vorgestellt, dass man richtig durch die Atmosphäre fliegen kann. Ab einer gewissen Nähe kommt dann eben eine Wolkendecke sprich man sieht nichts mehr und in der Zeit wird das Terrain in seinem niedrigsten LOD generiert. Fliegt man weiter runter, werden die entsprechenden Ausschnitte in jeweils ansteigenden LODs erzeugt.
Aber das mit den Planeten wird erst später gemacht, wenn Stationen bauen und verwendet und allein mal das connecten zum Server, Anzeigen der MOTD usw. funktioniert.
ChrisM
-
/me is schon mal hammergespannt
-
Hi,
so jetzt fehlt nur noch ein guter Name. Erst hatte ich sowas wie "New Origin" im Sinne (deswegen, weil in der Geschichte der Teil der Galaxie, wo das Spiel spielt, halt durch ein Wurmloch von der Erde aus erreicht und wird und jeder neue Spieler quasi dort reinkommt), aber das klingt ja bescheuert.
Hat jemand eine bessere Idee?
ChrisM
-
ChrisM schrieb:
Doch, aber dann kann ich ja nicht mehr hier im Forum rumsurfen während der Server läuft.
Kannst Du wenn der DL-Stream voll ist auch nicht!
Jaja, ich weiß, das wird nicht passieren... :pDas ist schon klar, deswegen muss aber trotzdem jeder Spieler für einen optimalen Spielgenuss zigmal die Sekunde seine Position und seinen Status mitgeteilt bekommen.
Soenke schrieb:
mal ne Idee für Werbung.
Eigentlich hasse ich diese Werbebanner wie die Pest!
Bei deinem Spiel würde die Werbung nur beim ein/ ausloggen auftauchen, also nicht recht effektiv.
Wie wäre es, wenn du z.B Raumstationen mit Reklametafeln versiehst? Oder auch die Einflugschneise. Werbung die immer präsent istWird früher oder später eh kommen. Beschämend daß sich das immer noch kein Werbe-Fuzzi bedacht hat. Ich als Rockstar Chef hätte GTA lang mit McDonald's Restaurants und BP-Tankstellen zugekleistert, und mit Plakatwänden von Quelle...
ChrisM schrieb:
Erst hatte ich sowas wie "New Origin" im Sinne (deswegen, weil in der Geschichte der Teil der Galaxie, wo das Spiel spielt, halt durch ein Wurmloch von der Erde aus erreicht und wird und jeder neue Spieler quasi dort reinkommt), aber das klingt ja bescheuert.
Origin - we create universums ... naja...
-
Hi,
Das ist schon klar, deswegen muss aber trotzdem jeder Spieler für einen optimalen Spielgenuss zigmal die Sekunde seine Position und seinen Status mitgeteilt bekommen.
Damit meinte ich, dass ja trotzdem, wenn 20 Spieler auf dem Server sind, auch mindestens 20 jeden Frame ihre aktuelle Position mitgeteilt werden muss, wenn ich das nämlich sonst nur alle paar Sekunden mache, gibt es immer dann einen kleinen Sprung vom Schiff, weil Server und Client nie 100% synchron vorausberechnen.
Origin - we create universums ... naja...
Dann mach einen besseren Vorschlag...
ChrisM
-
ich denke mal das der sever nicht so das problem sein wird
wenn du mir sagen kannst, wieviel traffic du ca. verbrauchen wirst, kann ich dir sagen ob ich da evtl. was für dich hätte...
-
Das Spiel wird auch realistischer, d.h. keine Kommunikation ohne Verzögerung durch das ganze Universum, sehr hohe Flugzeiten, Planeten drehen sich um Stern und um sich selbst (<- ob ich das umsetze, weiß ich nicht, weil dann würde das das Landen ja verkomplizieren).
Wenn ich vier Jahre Spielen muss, um ins nächste Sonnensystem zu kommen, dann wirds aber langweilig. Und Startrek hat das mit der Komunikation durch Subraumübertagungen gelöst
-
also wenn das universum wirklich gross ist, hast du kaum bandbreite sofern sich die leute nicht begegnen.. du mußt nicht für jede kleine bewegung die position und sonstiges übertragen, lediglich vorberechnen, in welchem radius sich jemand in 10sek befinden könnte und welche daten er bis dahin haben könnte (also max resourcen zuwachs, max geschwindigkeit, max... ) und dann könntest du die spieler ihren ping in 10sek abständen abschicken lassen sofern sie die anderen nicht treffen.
zudem könnte man so einen weltraum in ein paar sectors zerstückeln und auf mehreren dsl leitungen laufen lassen... naja jedenfalls falls du etwas in der art von eve machen möchtest:
rapso->greets();
-
Wie gesagt, wenn man mir sagt wieviel Traffic das dingt verbraucht (en soll) kann ich schauen ob ich da nicht evtl. was hätte ...
-
Hi,
viele Antworten... danke!
@Commander: Das Problem ist, dass ich wirklich noch gar keine Ahnung hab, ich muss jetzt erstmal das Spiel machen und dann werd' ich sehen, wie viel Traffic das verbraucht. Ich hab ja auch keine Ahnung, ob am Ende 10, 100 oder 1000 Spieler mitspielen wollen. (oder noch mehr :D)
@Helium: Vier Jahre wird die Zeit nicht brauchen, ich meinte halt nur, dass es auch schon Transportwege gibt, die länger dauern und man nicht in einer Minute überall sein kann. Das ganze Universum wird vielleicht so 2 Stunden groß gemacht.
Und wegen der Kommunikation: Ich dachte auch an sowas, dass wenn man aus sehr großer Entfernung irgendwohin eine Meldung schickt, diese Meldung auch alle Schiffe um diese Position herum empfangen können und die Meldung halt einige Sekunden zum Senden braucht (steht dann halt "Transmitting..." da und das geht erst weg, wenn der Server das Versendet-Bit bei einem "Standard-Frameinfopaket" setzt.@rapso: Jo, so werd ich das auch machen, nur muss jeder Spieler trotzdem oft genug seine eigene Position mitgeteilt kriegen, weil sonst durch Rundungsfehler immer dann ein Sprung zustandekommt, wenn ein Paket ankommt, weil Server und Client ja nie exakt gleich runden. Zum Timing werde ich aber vermutlich mit Time Frames arbeiten, damit der Effekt wenigstens auch bei geringen Update Intervallen verringert wird.
Jetzt bleiben nur noch drei Fragen:
1. Klar: Der Name
2. Ich nehme mal an, dass das Weltall realistisch sein soll, d.h. nicht flach wie z.B. in Freelancer, sondern wirklich annähernd gleich groß auf der x-, y- und z-Achse. (irgendwo im Cockpit kriegt man dann auch immer seine aktuellen Koordinaten angezeigt, falls man die jemand mitteilen will)
3. Gibt es auch Windowsserver oder soll ich den Server auch für Linux portabel halten (würde dann heißen, dass ich kein D3DX für die Mathematik verwenden kann)?ChrisM
-
also ne eigene mathlib solltest du schon zustande brigen falls das project einigermassen ernst sein soll, falls es wirklich nur komplett "fun" ist kannst du sicherlich den dx-stuff nutzen, also dann auch effects und x-files und DirectPlay und... halt alles was dazu gehört.
falls du das ausbaubar machen möchtest, müßtest du sehr viel beachten, es ist alles eben eine abwegung von aufwand, nutzen und ziel.
ich würde dir grundsätzlich vorschlagen, dass du für den server einen gekapselten schönen code bastellst, sodass das portieren von einem system aufs andere minimalen austausch von klassen mit sich bringt. dazu würde ich auch vorschlagen, dass du das normale matrizensystem nutzt und nicht das von dx, nicht weil ich was gegen dx habe ;D, sondern weil viele andere libs auch das normale nutzen und falls du mit vertexshadern was berechnen möchtest, du das auch nutzen wirst. falls, dann mußt du nur am ende beim setzen in dx das matritzenformat transponieren und das ist wenig arbeit verglichen mit den libs die du nutzen kannst z.B. für collision und physics.
aber das kapseln des servers ist wohl das wichtigste, denn zum testen sind windowssysteme die man selbst nutzt ja wirklich super, aber wenn du mal einen server im netzt nutzen darfst wird er mit hocher wahrscheinlichkeit kein windows und dx haben, vielleicht nichtmal x86 ;), somit ist in solchen fällen ein portierbarer code sehr wichtig. man muss ja nicht die ganze zeit alle versionen fahren, aber man sollte sich den umstieg auch nicht behindern!
du solltest auch nicht versuchen zuviel zeit in eine sache zu stecken, denn das ganze spiel wird nur so weit sein wie die schlechteste komponente, wenn du also viel nur an einer engine zur darstellung, am servercode oder an der gui arbeitest, wird das ganze ding nichts neues nutzen... gibt ja soviele spiele die fast nur an einer engine basteln und am ende nichts von der arbeit haben..
das sind aber alles nur tips und keine anweisungen...
mein namenstip wäre:
"Driteria - beyond imaginations"rapso->greets();
-
HI,
na, gut, selbst eine Mathebibliothek zu schreiben, ist ja nicht schwierig, die ganzen Operationen hab ich ja auch alle schon implementiert, nur halt nicht optimiert, während D3DX ja MMX, 3DNow usw. benutzt. Aber für mein Spiel brauch ich das ja auch nicht, wenn ich daran denke, dass der Weltraum ja jetzt doch eher nicht von Vertices strotzt und auch jeder Spieler mindestens 1-2 Ghz hat...
Linux werd ich mir dann natürlich auch auf jeden Fall offen halten, würd ich sogar für den Client machen, wenn ich mehr Ahnung von OpenGL hätte, aber in OpenGL hab ich nur Grundkenntnisse und das Extensionsystem gefällt mir auch nicht so arg wie das "Alles im Interface drin"-System von DirectX.
Wegen deinem Namen: Hat Driteria irgendeine Bedeutung?
Ansonsten sind natürlich noch Namensvorschläge gesucht und auch noch Ideen zum Thema flacher Weltraum... weil grade das ist ja ein Aspekt, der vor allem in Star Trek & co oft vernachlässigt wird.
ChrisM
PS: Brauch ich überhaupt TCP für das Spiel? Eigentlich nur UDP, oder?
-
Also ein 3D-Weltraum wär natürlich geil. Bei Freelancer konnte man zwar überall hinfliegen, die Planeten lagen aber iirc alle auf einer Ebene.
-
Driteria hat meines wissens nach keine bedeutung, ich war mal so frei
soweit ich weiß benutzen die meißtens clients tcp udn udp, für chat und um texturen nachzuladen tcp, für zeitkritische sachen deren ankunft nicht wichtig ist dann udp (also z.B. positionsdaten).
das hat zudem den vorteil, dass du irgendwo nen irc, http oder ftp hinstellen könntest zum nachladen der z.B. texturen,objeckte... oder zum chatten. und nur udp spieledaten zum eigentlich spieleserver schicken mußt.
rapso->greets();
-
Wie wärs mit :
- Galaxy Empire
- Mission Earth
- Univers of Darknessoder
- Commanders Intergalatic Empire :p