Delphi-PRAXiS
Seite 3 von 24     123 4513     Letzte » 

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Projektplanung und -Management (https://www.delphipraxis.net/85-projektplanung-und-management/)
-   -   Eigenes 3D MMORPG mit Delphi möglich? (https://www.delphipraxis.net/164975-eigenes-3d-mmorpg-mit-delphi-moeglich.html)

Zudomon 8. Dez 2011 16:28

AW: Eigenes 3D MMORPG mit Delphi möglich?
 
Klassen entsprechen nicht unbedingt meiner Denkweise... in ITA und Studium bin ich immer mehr zu Klassen übergegangen... in meiner letzten Engine hatte ich dann auch mehrere Patterns verwendet... und als es dann zum Multithreading ging musste ich schmerzhaft erfahren, dass jedes erzeugen einer neuen Instanz das Programm zum stocken bringt... und das, obwohl jeder Thread einem eigenen Prozessorkern zugewiesen wurde. Dafür habe ich keine Lösung gefunden. Aber vielleicht wisst ihr ja Rat.

In dem neuen StoneQuest ist es sowieso sehr schwer, Multithreading einzubauen, weil es hier auch darum geht, die Daten zur Grafikkarte zu schicken und umgekehrt... z.B. werden die Cluster zum Teil auf GPU berechnet. Und wer glaubt, DX9 sei Multithreading, der hat sich geschnitten. Es gibt zwar ein Multithreading Flag, aber das bedeutet nur, dass man von verschiedenen Threads aus auf die API zugreifen kann, ohne dass es abstürzt. Intern wird das alles sequenziell verarbeitet. Anfangs hatte ich mich gewundert, wie ich noch nichtmals eine Textur füllen konnte im Workerthread, obwohl die währenddessen garnicht von DX genutzt wurde.

Medium 8. Dez 2011 19:10

AW: Eigenes 3D MMORPG mit Delphi möglich?
 
Gut, dass man sich die API locken sollte, wenn es passieren könnte, dass einem ein zeichnender Thread in einen auf der GPU rechnenden reingrätscht, das klingt nachvollziehbar ;). Um das "unruckeliger" zu machen - natürlich sehr von der konkreten implementierung abhängig - müsste man sich einen Mini-Scheduler zwischenbauen, und ggf. die Granularität der Rechnungen erhöhen, so dass ein Zeichenthread öfter mal dazwischen an die Reihe kommen kann.

Was man so bisher gesehen hat, so ist mir irgendwie nicht ganz klar, worauf deine Frage hier abzielt. Du hast ja bereits ausgesprochen umfangreiche Dinge fertig, und die nötige Theorie an der Hand. Alles, was nun noch fehlt, ist fast schon nur noch Content, Content, Content. Und Content.

Man reagierte hier übrigens so "seltsam hämisch", weil wir nicht allzuselten Gäste hier haben, die sich als ihr aller erstes Lernprojekt mal "sowas wie WoW, oder Assassins Creed" bauen wollen, aber beim Verstehen von IntToStr() schon scheitern. Um genau zu sein, bist du der erste seit grob geschätzt 5 Jahren die ich hier täglich lese, der derart vorzeigbare Ergebnisse vorweisen kann, bzw. auch das Hintergrundwissen dazu hat. Dein Eingangsposting klang in seiner Formulierung allerdings sehr ähnlich, wie die zuvor angesprochenen "mal eben nen Weltklassespiel in 2-3 Wochen machen, ich fang grad erst an mit Delphi". Sieh uns bitte nach, dass wir bezüglich "Spieleproggern" hier schon ziemlich geprügelt und getreten sind ;)

stahli 8. Dez 2011 19:48

AW: Eigenes 3D MMORPG mit Delphi möglich?
 
Ich habe mich ehrlich gesagt recht verarscht gefühlt bei den ersten Postings.
Die Demos finde ich aber dann schon beeindruckend - wobei mich die ganze Spielerei nicht wirklich interessiert.
Dass man das so mit Delphi so realisieren kann, hätte ich nicht gedacht.
Ich könnte mir aber vorstellen, dass es dennoch andere Entwicklungsumgebungen und Engines gibt, die einen diesbezüglich noch besser unterstützen.
Aber das solltest Du vermutlich selbst besser einschätzen können.

Ich nutze die VCL und mehr brauche ich auch nicht (maximal vielleicht mal FM o.ä.).
Grafische Anwendungen und Spiele sind hier eher selten vertreten. Insofern wirst Du vermutlich hier nicht von vielen Erfahrungen profitieren können.

Aber bis hierher: Respekt :thumb:

Zudomon 8. Dez 2011 20:14

AW: Eigenes 3D MMORPG mit Delphi möglich?
 
Liste der Anhänge anzeigen (Anzahl: 5)
Huhu!

Also ich muss mich auch bei euch entschuldigen. Ich mag es allerdings nicht, das Menschen immer so schnell im urteilen und Verurteilen sind. Heute hatte ich von jemanden erfahren, dass da wieder irgendwo ein 14er 10 anderen c++ und c# beibringen wollte um dann mit denen ein großes Projekt zu starten. Und er bräuchte aber dann noch jemanden, der das Team dann in Sachen 3D berät. Ich habe selbst auch schon oft solche Post gelesen und auch schon mal geurteilt. Allerdings immer unter dem Vorbehalt, dass alles möglich ist. Grenzen existieren nur im Kopf. Natürlich war ich auch so naiv und dachte, nachdem ich mein erstes Dreieck über 3D-Karte rendern konnte, dass ich in einem Monat mein 3D-Shooter fertig habe. Seit dem sind 12 Jahre harte Arbeit vergangen. Spiele entwickeln ist mein Leben und ich habe mir schon immer gewünscht, mal was großes zu machen... allerdings sind wirklich größere Sachen dabei noch nicht rum gekommen... wenngleich sich die Sachen die ich habe garantiert sehen lassen können.
Früher wurde mir auch immer gesagt, dass man keine Spiele mit Delphi machen kann, dass ich ein Team bräuchte, dass es Wahnsinn ist, eine eigene 3D-Engine zu schreiben usw. . Aber ich habe immer festgehalten an dem, was ich geglaubt habe. Und das, obwohl ich das Gefühl habe, die ganze Welt redet dagegen. Naja, und vorhin bin ich dann mal auf die Idee zu kommen, zu schauen, wie es wäre, wenn man mal selbst so einen größenwahnsinnigen Thread startet und vor allem, wie die Reaktionen sind, wenn dann da letztlich doch Ausnahmsweise etwas hinter steckt.
Also seit mir bitte nicht böse, dass ich am Anfang schon etwas den Anschein erwecken wollte, nicht zu wissen, wovon ich rede :oops:
Aber wenn ich euch eins sagen kann, dann nachdem ich so lange Zeit Erfahrung gesammelt habe, dass es auf jeden Fall möglich ist. Warum da normalerweise ganze Teams Jahre dran sitzen? Weil die anders arbeiten. Programmieren ist eine große Macht... hierarchie und prozeduralität Werkzeuge, die effektiver sind als tausende Menschen. Natürlich muss man abstriche machen... prozedural generierter Content hat nicht die menschliche Kreativität. Allerdings denke ich, dass man das schon mehr oder weniger vereinen kann. Wie genau, dass kann ich auch nicht sagen. Ich bin ja auch in der Lernphase und lerne jeden Tag immer einen ganz kleinen Teil dazu.

Was aber nicht heißt, dass mich die Eingangs gestellten Fragen nicht interessieren würden... denn ich möchte eure Meinung wissen. Wenn ihr auch mal meine Meinung wissen wollt... also ich selbst bin mir sehr sicher, dass man ein MMORPG mit Delphi hinbekommt... für mich ist es sogar nur damit Möglich... weil ich mir bei Delphi vorkomme, wie ein Fisch im Wasser... mit C++ oder anderen Sprachen bin ich nicht annähernd so effektiv.

Eigentlich wollte ich auch bis Ende des Jahres die Finger vom Multiplayer lassen, aber dann ist es mir Anfang dieser Woche relativ klar geworden, wie man das ganze ohne allzu großen Aufwand realisieren kann.
Wie gesagt, Grenzen existieren nur im Kopf... ich glaube, dass man das MMORPG ohne Serverfarm laufen lassen kann. Jeder Cluster hat nur ein paar Kilobyte Daten... die werden hinterher über HTTP ( hab das jetzt noch über FTP ) an meinen Webserver als Backup übertragen. Untereinander tauschen die Clients die Daten aus. Dabei regelt noch eine Datenbank, welche User gerade eingeloggt sein und in welchem Cluster ( noch nicht implementiert ) diese sich befinden... und es wird dann eben immer ein p2p über UDP mit den nahesten Spielern aufgebaut. P2P Netzwerk für die erste Iteration von StoneQuest habe ich schon gemacht und es hatte funktioniert.
Da also jeder Spieler sich untereinander nur mit ein paar Clients austauscht... das ganze ist ja auch skalierbar, umso weiter die entfernt sind, oder umso mehr Leute in der Nähe sind, umso größer können die Sendeintervalle sein. An den Webserver braucht dann immer nur alle paar Sekunden eine Sicherung gemacht werden. Auch da kann man gut optimieren, weil sich ja Spieler untereinander absprechen können, wer dann letztlich das Cluster sendet... und falls die Daten zuviel werden, dann kann man einfach auf mehrere Webserver verteilen. Das einzige Problem sehe ich in der Datenbank... nehmen wir wirklich mal eine Million Spieler, die online sind, so weiß ich nicht, ob eine Datenbank das verwaltet bekommt in relativ kurzer Zeit, aber vielleicht kann man da auch aufteilen. Also wenn ich da nun kein gravierenden Denkfehler gemacht habe, dann sollte tatsächlich ein MMORPG mit beliebig vielen Spielern möglich sein.

Was den Content angeht, da es sich um ein Minecraft ähnliches Spiel handelt, wird der Content zum Teil vom Spieler geschaffen. Einen anderen Teil gebe ich vor, eben prozedural... das Gras funktioniert ja schon. Einen rudimentären Baumgenerator habe ich auch. Farnkraut habe ich bereits gemacht... also was Vegetation angeht, fühle ich mich gewappnet.
Wo ich noch etwas bedenken habe sind in der Tat Tier und Mensch... statt jedes Modell einzeln zu machen, würde ich mich gerne an einen Wirbeltiergenerator ran machen... ob das Erfolg hat, wird sich zeigen.

PS: Bisher habe ich mich nur immer auf ZFX herumgetrieben... ich freue mich, nun auch bei euch angekommen zu sein :thumb:

Im Anhang: Prozedurale Bäume, Gräser und Farne... wobei das Lebel von letzterem in meinem eigenen 3D-Editor gemacht sind.

Stevie 8. Dez 2011 20:20

AW: Eigenes 3D MMORPG mit Delphi möglich?
 
Und was hat jetzt nen Minecraft Klon (mit einer zugegebenermaßen recht ansehnlichen Engine) mit nem MMORPG zu tun?

wicht 8. Dez 2011 20:31

AW: Eigenes 3D MMORPG mit Delphi möglich?
 
Ich kenne Minecraft nur von Bildern - weiß also nicht, wie das läuft. Allerdings muss ich mich den anderen anschließen. Ich hatte am Anfang auch das Gefühl, dass hier ein Anfänger was ganz großes erledigen möchte.... Das nimmt man dann eben nicht so "ernst". Ich möchte an dieser Stelle meinen Respekt aussprechen, das sieht bis hier hin super aus - und um deine Frage zu beantworten, das kann man bestimmt mit Delphi(/FreePascal) hinbekommen!

Zudomon 8. Dez 2011 20:44

AW: Eigenes 3D MMORPG mit Delphi möglich?
 
Minecraft fand ich sehr faszinierend... die Möglichkeit zu bauen, blockbasiert, dass macht eine Menge Spass... dabei hat Minecraft auch einige RPG Elemente, aber eben nur auf sehr niedrigem Niveau. Das würde ich gerne besser machen. Im Unterschied zu WoW wird meine Welt dann von jedem Gestaltbar sein... und jeder geht dem nach, was am meisten Spass macht.
Hier hatte ich mal ein paar Dinge festgehalten, die mir gefallen würden.
Da es RPG Elemente und MMO wäre, würde ich sagen, es wird ein 3D-MMORPG... allerdings wird das ganze auch in einer sehr dynamischen Welt statt finden. Was zu Anfang nur als vereinfachung begann, das Autoupdating, stellt sich nun als mächtiges Instrument raus. Vorher war das ganze eher Sommerlich gehalten... seit dem ersten Advent spielt das ganze nun in einer gefrosteten Umgebung, die Hasen haben Weihnachtkapuzen auf... die Bäume sind Schneebedeckt und im Hintergrund dudelt Jingle Bells... und bald kommen dann Bäume mit geschmückten Lichtern dazu... ein großer Weihnachtsbaum soll da auch noch rein... natürlich ist das nur als kleines Gimmik, aber es zeigt, das die Welt dynamisch ist. Nicht nur durch das, was von den Spielern gebaut wird. Ich finde sowas sehr interessant und habe das Gefühl, eine eigene Matrix aufzubauen. Und ich kann es kaum erwarten zu erleben, wohin die Reise noch geht. Ideen habe ich unzählige ( auch andere haben schon sehr coole Ideen mit einfließen lassen ). StoneQuest könnte etwas werden, was so noch nicht existiert.
Wenn später jedes Modell einzigartig ist, dann wird auch jeder Zweig, den man von einem Baum schneidet dem Baum fehlen... und die Werkzeuge und Waffen die man daraus baut, sind entsprechend einzigartig. Lässt man an einem größeren Zweig ein Sprössling dran, so wird der da für immer dran hängen... auch wenn der Zweig schon zu einem Bogen verarbeitet ist.

implementation 8. Dez 2011 20:48

AW: Eigenes 3D MMORPG mit Delphi möglich?
 
Die Bilder sind echt beeindruckend. Weiter so! Vom P2P-Prinzip bin ich ebenso begeistert.
Gib nicht auf, du bist wirklich auf dem richtigen Weg!

Möglicherweise könntest du auch mal im DelphiGL-Forum vorbeischauen, die haben mit sowas mehr Erfahrung als die meisten hier in der DP. Fragt sich nur, ob man dort so begeistert davon ist, dass du dich für Direct3D entschieden hast ;)

Zudomon 8. Dez 2011 21:17

AW: Eigenes 3D MMORPG mit Delphi möglich?
 
4 Jahre habe ich mit Delphi + OpenGL gearbeitet.:-D

Was natürlich nicht heißt, dass da nicht auch mal ein Softwarerenderer, diverse Raytracer und sogar ein D3DX9 Pathtracer entstanden wären :-D :-D :-D

Medium 8. Dez 2011 22:03

AW: Eigenes 3D MMORPG mit Delphi möglich?
 
Das ist schon ziemlich sexy Zeug! Vor allem glänzen meine Augen beim Begriff "prozedural" wie irre. Ich liebe berechneten Kram über alles, und dein Editor schaut durchaus sahnig aus. Nicht nur optisch, auch die Bearbeitungsfunktionen scheinen sehr ergonomisch umgesetzt, was vielen 3D Programmen (Game-Editoren wie CAD und Maya-Likes) oft abgeht. Daher an dieser Stelle auch erstmal ein großer :thumb:, nicht zuletzt, weil mir die Materie selbst nicht ganz unbekannt ist, und ich einschätzen kann, wie irre viel Zeit und Hirn da rein fließen muss, um bis da hin zu kommen, was ich gesehen habe. Ein wenig Neid kommt da aber auch mit, weil Beruf und mangelndes kontinuierliches Durchhaltevermögen (gibt so schrecklich viel Interessante Dinge, argh) bisher daran gehindert haben, mehr als eine Hand voll Proof-of-Concepts und diversen GPGPU Kram zu bauen.
Und gerade in der Delphi-Welt, ist man mit so weit getriebenen 3D-Dingen ein totaler Exot. Nicht, weil es mit Delphi nicht ginge - im Gegenteil. Eher, weil Delphi/Pascal seit je her in Industrie und Datenbankanwendungen, und somit eigentlich einer komplett anderen Welt verhaftet ist. Nicht technisch, aber was den Entwicklerkreis im Allgemeinen angeht. Eigentlich schade für so eine schöne Sprache, die gerade aus mathematischer Sicht so viel gefälliger ist als C-likes.

Die P2P-MMO Idee ist übrigens auch eine sehr geniale! Wobei ich die Bedenken bzgl. des Back-Backends nachvollziehen kann, zumal dieser Server dann ja regelmäßig eine Fülle von Paketen bekäme, die nur Teilweise die gleichen Infos beinhalten, und teilweise andere. Der erste Schritt wäre für ihn also schon mal das Herstellen einer Gesamtinfo ohne Dopplungen, wobei auch noch berücksichtigt werden muss, dass von multiplen Daten zu einem selben Sachverhalt nur der mit dem aktuellsten Timestamp gilt. Er müsste also eine Sekunde lang sammeln, dabei entscheiden was zu aktualisieren ist, und dann einen Snapshot davon der Persistenz zuführen. Vor allem aber hat man das Problem, dass man fortan keine Serverseitigen Constraints mehr realisieren kann, wie z.B. das Erkennen/Verhindern von Wallhacks o.ä., da als Entscheider für z.B. Hits nur noch der Client in Frage kommt, und kein Server mehr da wäre, die Korrektheit gegenzuprüfen. Es sei denn, man würde dafür eine separate Maschine abstellen. So dass man einen Datenhaltungs- und einen Mechanics-Knecht hätte. Die Frage wird dann, ob und was man gewonnen hätte. Letztlich käme ich, während ich hier so beim Schreiben denke, auf eine klassische Lösung zurück, die aber zusätzlich ein light-weigt P2P betreibt, um Latenzen unter den Spielern zu verringern. States von NPCs aber z.B. würden damit schwierig, insbesondere wenn mehrere Spieler das selbe sehen sollen, z.B. bei gescripteten Bosskämpfen und dergleichen. Hmmmm... herrliches Thema! :cheers:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:42 Uhr.
Seite 3 von 24     123 4513     Letzte » 

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz