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

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

11

23.09.2011, 18:50

Macht ja nix, ich wollt ja nur drauf hinweisen, dass es da ein Problem geben wird ;)
Heißt ja nicht, dass man es nicht lösen kann. Man muss sich nur eben was überlegen. Vielleicht hat er das ja auch schon...

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

12

23.09.2011, 19:37

Der größte bekannte Stern hat einen Radius von 150 Lichtjahren

Welcher wäre das? Laut Wikipedia ist der grösste (bekannte) ~2000x grösser als die Sonne..
Kann mir auch nur sehr schwer vorstellen, dass ein Stern einen Radius von 150 Lichtjahren hat.
Ich nehme mal an du meinst die Entfernung von uns. Das wären dann aber 13.5 Miliarden Lichtjahre.

13

23.09.2011, 19:42

Ich finde diesen Ansatz ganz interessant.
fka tm

14

23.09.2011, 19:44

0.00015442465085 Lichtjahre Radius sind das meinen Berechnungen nach... (bei 2100 Sonnenradien)

DarioFrodo

Treue Seele

  • »DarioFrodo« ist der Autor dieses Themas

Beiträge: 349

Wohnort: Kerkau, 100km nördlich von Magdeburg

Beruf: Selbstständig

  • Private Nachricht senden

15

23.09.2011, 19:56

Jo das mit den Koordinaten haben ich schon.
Ich verwende eine Klasse Namens Unit die nicht nur den Wert speichert (double) sondern auch eine Maßeinheit dazu (m, km, AE, Lichtjahr) und auch dazwischen umrechnen kann.
Außerdem wird sehr viel relativ zu einander abgebildet.
Es gibt im Prinzip keinen aktuellen Nullpunkt. Der ist immer verschieden.
Wenn ich mich in einem Sonnensystem bewege, ist der Nullpunkt beim lokalen Stern und es wird mit AE gerechnet. Für den Flug von Planet zu Planet reicht es. Falls ich z.B. andere Schiffe treffe, wird an dieser Stelle der Nullpunkt für die Schiffe gesetzt, damit z.B. ein Kampf korrekt abläuft.
Wenn ich mich auf einem Planeten befinde, wird mit m gerechnet und der Nullpunkt ist immer in Spielernähe.
Wenn ich von Sonnensystem zu Sonnensystem reise, wird mit Lichtjahren gerechnet und der Nullpunkt ist das Zentrum der Galaxie.
Das Koordinatensystem wird also immer angepasst an die aktuelle Geschwindigkeit und alle Daten die gespeichert werden (z.B. vom Spieler veränderte Geometrie) werden im Verhältnis zueinander gespeichert.
Die Super Galaxiehaufen speichern ihren Galaxien, die wiederum kennen jeweils ihre Nachbar-Galaxien.
Galxien speichern ihre Sonnensystem und Sternenhaufen. Sonnensysteme ihre Planeten.. usw.
Es wird nur gespeichert was vom Spieler verändert wurde, der rest wird generiert.
Es werden auch Daten gespeichert welche lange in der Berechnung benötigen aber deren Ergebnis wenig Speicher benötigt.

Die Schwierigkeit ist im Augenblick das variable Koordinatensystem mit der Geometrie in Einklang zu bringen.
Ich habe mir gedacht das ferne Himmelskörper als ganze Kugel gerendert werden. Dann, wenn man sich ihnen nährt, wird nur noch ein Kugelausschnitt angezeigt. Denn ab einer bestimmten Größe reicht ja float nicht mehr um die Vektoren der Vertices darzustellen, die ja immer die Länge des Planetenradius haben.

Im Augenblick habe ich eine einfache manuelle Umrechnung (Strahlensätze) von Absoluter Planetenentfernung und Radius hin zu einer festen Entfernung und der entsprechenden Relativen Größe, in der die Kugel zu sehen ist.
Aber mir fehlt jetzt noch der Übergang zum Kugelausschnitt (und die Umsetzung dessen) sowie die Terrain Generierung.
Die muss nicht perfekt sein, das stimmt schon.
Aber ich will erreichen das Es jedes mal ein Erlebnis für den Spieler ist, wenn er auf einen neuen Planeten landet.
Wenn er von der ferne grob die Kontinente sieht und beim drauf zu steuern und durch die Wolkendecke tauchen, sich dann einzelne Details herausschälen.

Mir ist klar das das ganze ein gigantisches Projekt ist... aber dafür plane ich auch entsprechend Zeit ein.
Seit dem ich begonnen habe zu Programmieren (ca. 8. Klasse), mache ich mir Gedanken darüber. Nun habe ich mein Informatikstudium abgeschlossen, also seit 8 Jahren. Fertig sein soll das Projekt vor meinem Lebensende.. also so in spätestens 70-80 Jahren.
Von daher will ich auch möglichst viel konzeptionell machen und vom Code her auslagern um dann gegen Ende eine aktuelle Grafikengine verwenden zu können.
Allerdings spalte ich das in Subprojekte auf, die vorher schon lauffähige Prototypen hervorbringen sollen.
Einer davon ist SpaceCraft an dem ich grade arbeite.
Hier wird es nur bis zur Galaxieebene gehen und sich Grafisch in Grenzen halten.
Der Hauptaugenmerk wird sein, sich selbst ein Raumschiff auf dem Planeten zu bauen.
Und zwar nach dem Vorbild von Minecraft. Welches dann entsprechend auch fliegen kann, logisch.. daher brauche ich schonmal zumindest einen Teil der Universums-Engine.

In einem Projekt habe ich schon den Generator für die Super-Galaxiehaufen verteilung geschrieben, die um große Leere Löcher im All angeordnet sind (so stehts in meinem Astronomie-Buch). Dafür habe ich Splines verwendet.. wenn es interessiert, kann ich ja mal Screenshots posten.
Erst wenn der letzte Fluss vergiftet,
der letzte Baum gefällt,
der letzte Fisch gefangen,
dann werdet ihr merken, dass man Geld nicht essen kann

Man verkauft die Erde nicht, auf der die Menschen wandeln.

- Indianerweisheiten

Ich bin auch ein einhornimmond ;)

DarioFrodo

Treue Seele

  • »DarioFrodo« ist der Autor dieses Themas

Beiträge: 349

Wohnort: Kerkau, 100km nördlich von Magdeburg

Beruf: Selbstständig

  • Private Nachricht senden

16

23.09.2011, 20:05

@ #Sound~Wave#
VY Canis Majoris: 2.100 mal Sonnenradius
Radius Sonne: 695.997 km
2.100*695.997 km = 1461593700 km
1 Ly = 9460500000000 km

Oh du hast recht.. dann habe ich mich wohl irgendwo verrechnet.. nein..
Ich habe einen Haufen Berechnungen in einer Excel-Tabelle angestellt.. kann schonmal
sein das sich da Fehler einschleichen... wenn die sich zum Teil auf einander beziehen und zum Teil wieder nicht..
Danke für den Hinweis..
Erst wenn der letzte Fluss vergiftet,
der letzte Baum gefällt,
der letzte Fisch gefangen,
dann werdet ihr merken, dass man Geld nicht essen kann

Man verkauft die Erde nicht, auf der die Menschen wandeln.

- Indianerweisheiten

Ich bin auch ein einhornimmond ;)

17

23.09.2011, 20:07

Ach, wofür... ;)

DarioFrodo

Treue Seele

  • »DarioFrodo« ist der Autor dieses Themas

Beiträge: 349

Wohnort: Kerkau, 100km nördlich von Magdeburg

Beruf: Selbstständig

  • Private Nachricht senden

18

23.09.2011, 20:09

wooow das ist ja coool.. da ist ein Super Link, vielen Dank TrikkieMikkie.
Das schaue ich mir sofort mal an :)
Erst wenn der letzte Fluss vergiftet,
der letzte Baum gefällt,
der letzte Fisch gefangen,
dann werdet ihr merken, dass man Geld nicht essen kann

Man verkauft die Erde nicht, auf der die Menschen wandeln.

- Indianerweisheiten

Ich bin auch ein einhornimmond ;)

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

19

23.09.2011, 20:42

Vielleicht findest du auch hier was: http://vterrain.org/Elevation/Artificial/
@D13_Dreinig

DarioFrodo

Treue Seele

  • »DarioFrodo« ist der Autor dieses Themas

Beiträge: 349

Wohnort: Kerkau, 100km nördlich von Magdeburg

Beruf: Selbstständig

  • Private Nachricht senden

20

23.09.2011, 21:08

Ja da habe ich schon gestöbert und meine ersten Ansätze her...
trotzdem danke für den Tipp :)
Erst wenn der letzte Fluss vergiftet,
der letzte Baum gefällt,
der letzte Fisch gefangen,
dann werdet ihr merken, dass man Geld nicht essen kann

Man verkauft die Erde nicht, auf der die Menschen wandeln.

- Indianerweisheiten

Ich bin auch ein einhornimmond ;)

Werbeanzeige

Ähnliche Themen