[Projekt] Weltenmotor

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.
Antworten
dronus
Establishment
Beiträge: 114
Registriert: 11.01.2010, 01:53

[Projekt] Weltenmotor

Beitrag von dronus »

Hi,

da ich vermutlich bei meiner weiteren Arbeit das Forum öfters beanspruchen werde, eine Beschreibung was ich mache:

Eine Renderengine mit ausschliesslich programmiertem Inhalt, ein paar kleine Spiele damit und vielleicht irgendwann ein großes :-)
Normalerweise bastel ich schlecht oder nicht dokumentierte Programme, in diesem Fall ist die Dokumentation wesentlich weiter als der Code, der bisher nur einige Prinzipien testet. Der (tw. pseudo)wissenschaftlicher Doku-Text dazu findet sich hier: http://www.hirnsohle.de/mathe/weltenmotor.pdf

Das ganze ist seit einigen Jahren sporadisch in Arbeit. Die Testsoftware implementiert schon etliche Prinzipien, sieht aber grausam aus. Sobald man sie Demo nennen kann lad ich sie hoch.

Im Prinzip sind die Einzelteile nicht neu (zb. Elite II - Frontier) aber eine konsequente Umsetzung habe ich noch nicht gesehen. Auch hier im Forum findet man einige ähnliche Ansätze :)

Zur Zeit ist das ein Einzelarbeits-, Hobbyprojekt, aber langsam brauch ich mehr Wissen wie man Echtzeitdinge so macht. Insbesondere mit der Performance habe ich Probleme, da die Bücher immer predigen möglichst viel Kram in die Graka zu laden und ihn nicht wieder anzufassen, was ich nicht hinbekomme da permanent einzigartige, neue Dinge den Sichtbereich oder LOD erreichen.
Ich vermute dass wohl ein Teil der Geometriegestaltung in die GPU wandern muss, habe aber keinen Plan den ganzen Welt-Erfindungscode dann doppelt für CPU und GPU zu pflegen.

Ich freue mich natürlich über Anregungen, Beileidsbekundungen

alles Gute euch!



Merkmale:
  • Rein Code-generierter Inhalt
  • Möglichst konsistent mit bekannten Naturgesetzen
  • Möglichst konsistent in Raum und Zeit
  • Große Ausmaße der Welt
  • Lange Zeitskala
  • Ort und Zeit frei wählbar
  • Details entsprechend der alltäglichen Wahrnehmung (Milchstraße, Monduntergang, Europäische Unionen und Bleistifte...)
  • Maximaler Formenreichtum
  • Theoretische Möglichkeit, irgendwo ein Abbild der Erde zu finden wie wir sie kennen
Daraus ergibt sich:
  • Landschaften die erodieren
  • Städte die entstehen und vergehen
  • Kleines Krabbelgetier unter einer Straßenlaterne
Technisches:
  • Scenegraph mit bidirektionalem Rendering, damit kann der Root in jedes Objekt verlegt werden.
  • Große Tiefe des Scenegraphs (~50 Level)
  • Realtime Erzeugung und Bereinigung des Scenegraphs
  • Wahlfreies Renderig von Objekten zu jedem Ort und jeder Zeit
  • Suchmechanismen, um Szenerien zu finden (da ohne gespeicherten Content ja keine gestaltet werden können)
  • Überlagertes Simulationssystem um die "View-Only"-Welt interaktiv zu ergänzen.
  • Überlagertes "Frontend", das ein Spiel daraus macht (Spielziele / GUI)
  • Environment z.Z. Java, OpenGL
  • Platformen Windows, Linux, MacOS X
  • Z.z. Größtenteils Fixed Function Grafikcode
  • Z.z. Niedrigerer Detailgrad als klassische Engines
erste Anwendungen:
  • einfach pur als Kunstwerk
  • Autorennen in den Straßen einer Alienstadt
Bild Bild
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 577
Registriert: 05.07.2003, 11:17

Re: [Projekt] Weltenmotor

Beitrag von Lord Delvin »

dronus hat geschrieben:Ich freue mich natürlich über ... Beileidsbekundungen
Seh ich überhaupt kein Grund für. Ist n gutes Projekt. Gefällt mir echt:)
XML/JSON/EMF in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4260
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] Weltenmotor

Beitrag von Chromanoid »

das pdf dokument (Doku Text) ist echt amüsant geschrieben. ich musste oft schmunzeln :). sehr gut gelungen.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4859
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: [Projekt] Weltenmotor

Beitrag von Schrompf »

Wenn ich nur das PDF gelesen hätte, würde ich mir denken "Och, noch ein utopischer Gesamtentwurf". Aber Du hast eine lauffähige Umsetzung begonnen. Dafür gebührt Dir ein engagiertes Schulterklopfen! Weiter so!
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Stefan Zerbst
Moderator
Beiträge: 189
Registriert: 25.02.2009, 19:54

Re: [Projekt] Weltenmotor

Beitrag von Stefan Zerbst »

Hi,

ich habe das PDF noch nicht gelesen, aber das letzte Bild hat mich direkt an Frontier: First Encounters erinnert. Schwärm ... das waren noch Zeiten. Allein deswegen hoffe ich, dass wir von dem Projekt mal was spielbares sehen werden :D

Trotz des Charmes der konservativen visuellen Umsetzung ist das GameDev.net Journal von Ysaneya und dem Infinity Projekt immer lesenswert was prozedurale Content-Generierung und die grafische Umsetzung einer epischen Weltraum-Umgebung angeht.

Ciao,
Stefan
Benutzeravatar
Schrompf
Moderator
Beiträge: 4859
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: [Projekt] Weltenmotor

Beitrag von Schrompf »

Ohja, Ysenaja... den hatte ich zu verlinken vergessen. Was der Mann auf die Beine stellt, ist im besten Sinne des Wortes astronomisch!
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Stefan Zerbst
Moderator
Beiträge: 189
Registriert: 25.02.2009, 19:54

Re: [Projekt] Weltenmotor

Beitrag von Stefan Zerbst »

Schrompf hat geschrieben:... ist im besten Sinne des Wortes astronomisch!
:mrgreen:

Aber ich finde so etwas immer deprimierend, mein eigener Planetenrenderer liegt seit fast einem Jahr in der Ecke und wartet auf Fortführung. Aber wenn man so was sieht hat man keinen Bock mehr seinen eigenen Kram anzuschauen ... :cry:
dronus
Establishment
Beiträge: 114
Registriert: 11.01.2010, 01:53

Re: [Projekt] Weltenmotor

Beitrag von dronus »

Die Infinity Seiten hab ich schon sabbernd duchgeblättert ;-)

Ich bin aber grad mehr bei der "Breitensuche", erstmal sollen Kugeln um die Sonne kreisen, Schläuche aus dem Boden spriessen und Klötzchen auf den Straßen fahren... dann kommt Licht, Schatten, bunt & lecker.

Utopie schadet nie.
Stefan Zerbst
Moderator
Beiträge: 189
Registriert: 25.02.2009, 19:54

Re: [Projekt] Weltenmotor

Beitrag von Stefan Zerbst »

Igitt ... realistische Planung :mrgreen:

Dann halte den Thread mal auf dem Laufenden wenn es Veränderungen gibt.

Ciao,
Stefan
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4260
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] Weltenmotor

Beitrag von Chromanoid »

finde es übrigens sehr sympathisch, dass du java als sprache/umgebung/plattform auserkoren hast :). java wird hinsichtlich spieleentwicklung meiner meinung nach wirklich stark unterschätzt. leider durch sun auch nicht wirklich gefördert... aber ich glaube und hoffe das könnte sich zumindest langfristig ändern... :) welchen opengl wrapper benutzt du zZ, wenn man fragen darf? hast du mal darüber nachgedacht die jmonkeyengine zu benutzen? wenn das ganze verteilt ablaufen soll könnte auch project darkstar was für dich sein (ein java mmo gaming application server), wenn du noch nicht davon gehört haben solltest...

auf bald
chromanoid
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 577
Registriert: 05.07.2003, 11:17

Re: [Projekt] Weltenmotor

Beitrag von Lord Delvin »

Chromanoid hat geschrieben:java wird hinsichtlich spieleentwicklung meiner meinung nach wirklich stark unterschätzt
Ist jetzt leider OT, aber mit Java wirst du imo nie ein gutes kommerzielles Spiel inbekommen, da das Dekompilieren viel zu gut funktioniert und du so mit sehr geringem Aufwand beliebige änderungen durchführen kannst. Wüsste zumindest nicht wie man das verhindert.
Ich mein man kann nen Obfuscator einsetzen aber selbst dann ist das Ergebnis immernoch OOCode, der afaik nicht wesentlich komplizierter ist, nur sehr ungewohnt. Und du kannst dann keine richtig guten Crashreports mehr bauen.

Ist jetzt auch OT, aber wie wärs mit ESC/Java2? Wäre für mich der einzige Grund Java zu verwenden:D
XML/JSON/EMF in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4260
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] Weltenmotor

Beitrag von Chromanoid »

Sorry für das OT aber das kann ich nicht so stehen lassen :D
Lord Delvin hat geschrieben:Ist jetzt leider OT, aber mit Java wirst du imo nie ein gutes kommerzielles Spiel inbekommen, da das Dekompilieren viel zu gut funktioniert und du so mit sehr geringem Aufwand beliebige änderungen durchführen kannst. Wüsste zumindest nicht wie man das verhindert.
Ich mein man kann nen Obfuscator einsetzen aber selbst dann ist das Ergebnis immernoch OOCode, der afaik nicht wesentlich komplizierter ist, nur sehr ungewohnt. Und du kannst dann keine richtig guten Crashreports mehr bauen.
was hat die qualität eines spiels mit der dekompilierungsfähigkeit zu tun? alle spiele die für das meiste eine scriptsprache benutzen, .net, xna oder flash einsetzen können dann keine guten kommerziellen spiele werden? Das halte ich für eine gewagte These... Vielleicht ist es dann etwas einfacher einen Kopierschutz zu knacken oder Trainer zu entwickeln, aber darauf sollte man sowieso nichts geben. In MMO Spielen sollte man sowieso so entwickeln, dass alles wichtige auf dem Server statt findet... Da man momentan (außer man benutzt java3d) in Java für 3D Grafik sowieso eigene DLLs beilegen muss würde man außerdem eh Kopierschutz u.Ä. auch in so Teilen ablegen können.

@Nochmal speziell an Lord Delvin :) Es haben neulich auch ein paar Kerle bei Gamasutra von ihrer haarsträubenden Variante erzählt, ihr Spiel ohne extra Browser-Plugin in den Browser zu kriegen :): http://www.gamasutra.com/view/feature/4 ... e_web_.php Wäre vielleicht auch was für dein Spiel. Sie machen eine DLL für ihr Spiel. Die DLL wird dann vom Java-Applet/Webstart aufgerufen und das Spiel gestartet. Die haben für die Variante zwar viel Kritik geerntet, aber ich glaube sie werden gut damit fahren... Allerdings wäre ich an ihrer Stelle bei Java geblieben, aber ihre Codebase ist eben in C++...

Mal ein "paar" kommerzielle Java Spiele:
http://www.runescape.com (lt. Wikipedia angeblich 10 Mio aktive Spieler, 1 Mio Premium Konten)
http://www.jagex.com/ (haben runescape gemacht, deren spiele sind glaube ich alle in java) -> http://www.funorb.com/gamelist.ws
weitere hier: http://lwjgl.org/projects.php
sonst fällt mir gerade noch der indie Titel Grappling Hook ein...

Wie hat es Richard Schubert so schön in seiner Signatur stehen :) "Produktivität über Performance - XNA Creators Club" ich ergänze das mal mit "Produktivität über Kopier- und Modifikiationsschutz". Beides gilt definitiv auch für Java. Das merkt man insbesondere, wenn man bedenkt wie verbeitet Java bei betrieblichen Anwendungen ist.
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: [Projekt] Weltenmotor

Beitrag von kimmi »

Mensch, das sieht sehr vielversprechend aus. Ich fühlte mich sofort zurückversetzt in alte Elite-Frontier-Zeiten und das waren wahrlich nicht die schlechtesten :). Bleib bloss weiter am Ball, ich bin schon sehr gespannt, was uns von dir noch alles erwartet. Ich habe noch nicht die zeit gehabt, dein PDF zu lesen. Aber das steht ganz oben auf meiner Liste.
Und schön, daß auch mal andere Ansätze wie hier über Java vorgestellt werden. Das baut sicherlich einige Vorurteile ( zum Beipiel bei mir ) ab, was die Java-Performance angeht.

Gruß Kimmi
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4260
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] Weltenmotor

Beitrag von Chromanoid »

Damit das hier bezügl. Java nicht weiter ausartet, werde ich demnächst mal etwas zu Spieleentwicklung mit Java im Programmiersprachen Forum schreiben... Ich würde daher bitten die Diskussion bis dahin zu vertagen ^^ (ja ich weiß ich hätte gar nicht damit anfangen sollen ;))

@dronus:
hast du deine wirkungsgeflechte schon mal testweise implementiert? das sieht finde ich sehr spannend aus... Falls du noch Anregungen bezüglich prozeduraler Grafik/Texturen suchst und es noch nicht kennst, ist http://www.werkkzeug.com/ einen Blick wert. Die UI dieses Editors ist wirklich nett gemacht und man kann anhand der beiliegenden Samples gut erkennen was eigentlich alles mit den richtigen operationen so möglich ist.
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: [Projekt] Weltenmotor

Beitrag von kimmi »

Wer diskutiert, ich lobe doch nur :).

Kimmi
dronus
Establishment
Beiträge: 114
Registriert: 11.01.2010, 01:53

Re: [Projekt] Weltenmotor

Beitrag von dronus »

Chromanoid hat geschrieben:welchen opengl wrapper benutzt du zZ, wenn man fragen darf?
lwjgl
Chromanoid hat geschrieben: hast du mal darüber nachgedacht die jmonkeyengine zu benutzen?

Nein, ich schreib ja grad eine Engine, da kann ich keine gebrauchen :-)
Lord Delvin hat geschrieben: Ist jetzt leider OT, aber mit Java wirst du imo nie ein gutes kommerzielles Spiel inbekommen
Mir egal, wirds eben nichtkommerziell.. Wenn man unbedingt will kann man aber auch zu Maschinencode compilieren.
kimmi hat geschrieben:Das baut sicherlich einige Vorurteile ( zum Beipiel bei mir ) ab, was die Java-Performance angeht.
Da tut sich nicht mehr viel gegenüber C. Die Qualität der Algorithmen macht viel mehr aus. Der größte technische Nachteil ist aus meiner Sicht, dass man nicht wie in C++ Objekte und Arrays auf den Stack packen kann, sondern immer alles auf dem Heap reserviert und garbage-collected werden muss und man keine Spezialmaschinenbefehle benutzen kann (SIMD und sowas).
Chromanoid hat geschrieben: hast du deine wirkungsgeflechte schon mal testweise implementiert?
Der Aufbau der Städte und Gebäude in der Implementierung benutzt z.Z. etwa nur 1/3 der Variablen, die in der Grafik im PDF zu sehen sind. Im Moment arbeite ich aber am Planeten (soll Berge und Flüsse bekommen, ihr kennt das ja aus dem Fernsehen, wie sowas aussieht).
Chromanoid hat geschrieben: Falls du noch Anregungen bezüglich prozeduraler Grafik/Texturen suchst und es noch nicht kennst, ist http://www.werkkzeug.com/ einen Blick wert.
Das hab ich mal probiert, ein gutes Vorbild ist auch die 3d-Sofware Maya, dort kann wird jeder Bedienschritt im GUI durch ein Objekt mit Verkabelungen repräsentiert, genau wie in werkkzeug. Und der Normalanwender merkt es noch nicht mal, wenn er nie den Graphen-Editor benutzt :-)
dronus
Establishment
Beiträge: 114
Registriert: 11.01.2010, 01:53

Re: [Projekt] Weltenmotor

Beitrag von dronus »

Fortschritt...

alles noch mit Macken, aber solange ich noch an allen Enden schraube lohnts auch nicht die zu beheben.

Stadt
Bild

Landschaft
Bild
Bild

Pflanzen
Bild

Bevölkerung
in einem eckigen Stück der Galaxis, die Farben zeigen an welches Volk am meisten vertreten ist. Man kann die Zeit hunderttausenfach beschleunigen, dann sieht man wie sie konkurrieren
Bild
dasselbe auf einem Planeten
Bild
Die Volksbewegungen sollen dann gemessen werden und die Städte usw. entsprechend dargestellt. Ziehen Leute hin, sieht man Baustellen, nehmen sie ab sieht man verfallende Häuser oder Gefechte, je nachdem...

Kreaturen kommen gerade, aber nur niedere :-) in den Städten sehen die noch unpassend aus, zuviele Beine..
Benutzeravatar
ponx
Establishment
Beiträge: 217
Registriert: 04.05.2008, 12:52
Echter Name: Andy Ponx
Wohnort: Hamburg
Kontaktdaten:

Re: [Projekt] Weltenmotor

Beitrag von ponx »

Bis die ersten Spiele damit umgesetzt sind, hätt ich den Bevölkerungsgraphen gerne als winamp-plugin, bitte ! :)
Benutzeravatar
Frekl
Beiträge: 38
Registriert: 09.02.2010, 21:47
Echter Name: Malte
Wohnort: München
Kontaktdaten:

Re: [Projekt] Weltenmotor

Beitrag von Frekl »

Wow
find die idee echt gut
hab schon oft über ´sich entwickelndes gameplay nachgedacht
Aber gut find ich vor allem die Idee, nicht alle Objekte zu generieren
sondern nur Dinge altern/verjüngern zu lassen
wenn du des ma in nem kleinem Programm ansatzweise zeigst
wär ich beeindruckt

mfg
frekl
Rote Glut schmeckt blau.

http://frekl.de.tl/
Benutzeravatar
Frekl
Beiträge: 38
Registriert: 09.02.2010, 21:47
Echter Name: Malte
Wohnort: München
Kontaktdaten:

Re: [Projekt] Weltenmotor

Beitrag von Frekl »

Du willst Java als Sprache verwenden?
Das kann ich nur gutheissen!
Ich habe viel Erfahrung in Java und kann sagen:
Diese Sprache ist super für die Spieleprogrammierung geeignet
und bis jetzt bin ich sehr zufrieden mit der Performance

viel glück!
Rote Glut schmeckt blau.

http://frekl.de.tl/
dronus
Establishment
Beiträge: 114
Registriert: 11.01.2010, 01:53

Re: [Projekt] Weltenmotor

Beitrag von dronus »

Frekl hat geschrieben:Diese Sprache ist super für die Spieleprogrammierung geeignet
und bis jetzt bin ich sehr zufrieden mit der Performance
Sie ist allgemein sehr gut zum Programmieren geeignet :D
Schwierig ist allerdings große Massen kleiner Objekte zu verwenden. Die kann man in C als structs in arrays schreiben, in Java geht das nicht. Dort wird jedes Objekt im Code erstmal einzeln erzeugt. Vielleicht optimiert die VM, vielleicht nicht, jedenfalls schwierige Sache. Damit hab ich bei der Weltenengine gewisse Probleme. Manchmal wäre es schneller, statt Objekten primitive Datentypen in große Arrays zu pumpen, aber das macht den Code nicht grad schöner...
Antworten