Ich habe 2 Fragen, die 2. ist eher eine Art Meinungsfrage.
1. Frage:
Jeder hat von panda3d, OGRE und IrrLicht gehört: Sie sind großartige Motoren mit vielen Funktionen. Mit OGRE können Sie fast alles tun, was Sie sich vorstellen können, wenn Sie nur den Motor lernen. Mit Irrlicht können Sie viel tun, aber der Motor ist etwas anfängerfreundlicher und leichter. Panda3D ist auch großartig, Python erleichtert die Dinge, aber viele Dinge sind auch machbar.
Vor dem neuen Zeitalter der Programmierung, das durch die Entwicklung von C ++ eingeleitet wurde, wurden 3D-Spiele, die auf langsamen Maschinen ausgeführt werden mussten, in C programmiert. Seitdem bringen wir die Transistoren jeden Tag an weitere Grenzen und vergessen, wie schrecklich es war, Spiele zu programmieren die "alte Zeit". Okay, vielleicht war es nicht schrecklich, aber da 3D-Programmierung bei 2D kompliziert ist und die meisten Engines glänzende Dinge wie Shader, Szenenmanager, Szenenknoten, NURBS, Schatten, Animationen usw. unterstützen, gibt es keine einfache 3D-Engine oder einen einfachen Renderer das würde einfach zu Leuten passen, die genug mit einfachem 3D haben, ohne Texturen oder nur wirklich einfache Texturen?
Da ich gehört habe, dass man das Rad nicht neu erfinden soll, ist es sicher etwas zu viel, um zu lernen, wie man einen kompletten Motor mit D3D oder opengl herstellt, und da ich dies als nächstes in einer 3D-Programmierschule lernen werde, habe ich dachte, dass es mit all den freien Motoren da draußen einen geben muss, der meinen Bedürfnissen entspricht.
2. Frage:
Seit den guten alten Zeiten der PlayStation sehe ich die bevorstehende Entwicklung von hochauflösenden Grafiken (wie 360, PS3) immer noch wie eine Plage: Es ist immer schwieriger zu lernen, wie man anspruchsvollere Software programmiert, es ist herausfordernd und liefert ein zufriedenstellendes Ergebnis , aber am Ende ist es immer noch ein dummes Programm, das Pixel rendert!
Ich habe das Gefühl, dass sich der Spaß an Spielen entweder überhaupt nicht entwickelt hat oder im Vergleich zu den alten Zeiten, in denen die Jungs, die das Spiel gemacht haben, nicht nur das Auge des Spielers füttern mussten, sondern eine Erfahrung und Spaß machen sollten, einfach wirklich gesunken sind.
Ich bin der Meinung, dass Spiele heutzutage nur Software sind, die die verfügbare Technologie zeigt, aber abgesehen von einigen Perlen sind Spiele keine Ideen mehr, sondern nur eine Art Demonstration dafür, wie investierte Dollars für den CEO, der nichts über Scheiße weiß, in Schönheit erstrahlen können wie ein Spiel gemacht wird und was wirklich möglich ist.
Nun, außer unabhängigen Spielen, die dank XBox Live und Steam natürlich eines Tages oder später glänzen werden, aber es ist weit davon entfernt, Programmierern und Designern zu erlauben, das zu tun, was sie wollen. Ich sage nicht "böse Unternehmen" usw., aber ich spüre, dass Fotorealismus nur ein Mist ist: Selbst wenn wir Tausende mehr Computerleistung haben, was ist der Grund zu versuchen: Wir können die Realität nicht wirklich "simulieren", da dies der Fall ist widerspricht den Gesetzen der Physik ... Wir könnten eine alternative Realität berechnen, aber es wäre immer noch sehr kompliziert zu entwerfen ...
Antworten:
Auf der OpenGL-Seite denke ich, dass Horde3D erwähnenswert ist. Es ist vielleicht nicht so anfängerfreundlich, da es nicht viele GUI-Tools wie Unreal SDK bietet, aber das macht es sehr leicht. Vor allem finde ich es großartig zum Lernen.
Die Horde lehrt Sie, mit Ihrem Code sehr gut organisiert zu sein. Es verwendet XML für Daten (Netze, Shader, Szenendiagramme usw.) und C ++ für die Steuerung.
Ich mag die Tatsache, dass es keine "Spiel-Engine" ist. Es ist eine 3D-Rendering-Engine, die Culling, Detailebenen, Blitze, Animationen usw. verarbeitet, aber die gesamte Programmlogik Ihnen überlässt.
Wie Bummzack sagte, können Sie mit jeder Engine grundlegende Polygon-Aufgaben ausführen. Da Sie sich jedoch auf einem Lernpfad befinden, möchten Sie möglicherweise eine Engine erlernen, mit der Sie auch in Zukunft komplexere Themen behandeln können.
quelle
Nun, ich werde es versuchen.
In Bezug auf Ihre erste Frage empfehle ich Ihnen SDL von ganzem Herzen . Es handelt sich nicht um eine Szenengrafik-Engine, und alle Ihre Grafiken werden mit OpenGL erstellt. Sie übernimmt jedoch die wichtigsten Aufgaben für Sie, z. B. das Erstellen eines Fensters, das Einrichten des OpenGL-Kontexts, das Empfangen von Eingaben und das Abspielen von Audio. Ich spüre absolut Ihren Schmerz, wenn es um 3D-Engines geht, und ich fand mein Studium von OpenGL ziemlich interessant und herausfordernd. Ich bin persönlich mit LWJGL (oder JOGL, wenn Sie es vorziehen) zu Java gewechselt , weil mir die übergeordnete Sprache und die Verwendung von Applets gefallen und Java die Fenstererstellung, Eingabe, den Sound usw. für Sie auf ähnliche Weise übernimmt.
Die Tatsache, dass Sie bald DirectX lernen werden, könnte jedoch bedeuten, dass Sie sich darauf konzentrieren sollten. Ich kenne kein Äquivalent zu SDL für DirectX, aber ich glaube, dass DirectX heutzutage einige Hilfsfunktionen hat, mit denen Sie ziemlich schnell einsatzbereit sind. Leider weiß ich überhaupt nicht viel über DirectX, so dass ich nicht über Einzelheiten sprechen kann. Aber ich empfehle Ihnen, es zu versuchen.
Ja, es ist zu viel. Und ich sehe es die ganze Zeit. Mach keinen Motor; mach ein Spiel. Lassen Sie sich nicht darauf ein, viele Klassen mit ungetestetem und unbenutztem Code zu erstellen, und nennen Sie es eine "Bibliothek" oder eine "Engine", da es sich eher nur um ein "theoretisches Durcheinander" handelt. Tu einfach, was du tun musst, um ein Spiel zu machen.
Ihre zweite "Frage" ist nur eine Beobachtung und eine deprimierende und (meiner Meinung nach) sehr falsche. Es gibt sicherlich schlechte Spiele, grafikintensive Spiele mit wenig Gameplay. Filmspiele kommen mir in den Sinn, da sie oft nicht so toll sind. Aber Grafik und Gameplay schließen sich nicht aus . Nach dem Lesen Ihres Geschwätzes frage ich mich fast, ob Sie in letzter Zeit irgendwelche Spiele gespielt haben; Es gibt eine große Auswahl und ich bin mir sicher, dass es etwas für Sie gibt. Aber ich verstehe überhaupt nicht, warum schöne Grafiken schlechtes Gameplay implizieren. Und wenn Sie völlig gegen ausgefallene Grafiken sind, gibt es immer noch Spiele für Sie. Sie könnten sogar zu eBay gehen und ein altes System und alte Spiele für spottbillig kaufen.
Das Lustige ist, ich würde wetten, dass diese Meinung schon sehr lange existiert hat, in den letzten Generationen von Konsolen. Ich bin sicher, die Leute haben sich den Nintendo 64 angesehen, als er herauskam, und das Gleiche gedacht: großartige Grafik (für seine Zeit) = schlechtes Gameplay. Und es gab gute und schlechte N64-Spiele. Und dann weiß ich, dass sich die Leute in der Ära von Gamecube, PS2 und Xbox über solche Dinge Sorgen machten. Ich lehnte mich zurück und sah zu, wie Spiele für die Xbox genau das taten. Es gibt also immer gute und schlechte Spiele, und Sie müssen sich nur beruhigen, tief durchatmen und einige Spiele finden, die Sie ansprechen. Es wird immer Spiele an beiden Enden des Spektrums geben; Niedrig aufgelöste Spiele, die Sie Jahre später nicht aufhören können (CounterStrike 1.6?), und hochauflösende Spiele, bei denen es sich um totale Flops handelt.
Und ja, von letzterem wird es immer mehr geben, da Grafiken einfacher zu erstellen sind als gute Spielideen . Ihre Existenz nimmt nicht von der Existenz der guten Spiele ab oder verringert ihre Anzahl. Sie geben den Designern nur mehr Hinweise darauf, was sie bei der Gestaltung ihres nächsten Spiels nicht tun sollten. Ist das so eine schlechte Sache?
quelle
Wenn Sie nicht alle Vorteile (und Aufblähungen?) Einer 3D-Engine nutzen möchten, können Sie GLUT verwenden .
Ich denke , SceneManagers und dergleichen tatsächlich hinzufügen , um die Benutzerfreundlichkeit einer 3D - Engine als komplizierter zu machen Dinge entgegen.
Mit allen von Ihnen erwähnten 3D-Engines können Sie sehr einfaches Rendern (keine Texturen, keine Shader) ausführen. Einige von ihnen haben sogar eine modulare (Plugin) Architektur, so dass Sie tatsächlich alle Dinge entfernen können, die Sie (derzeit) nicht benötigen.
IMHO gibt es keine anfängerfreundliche 3D-Engine oder sogar ein anfängerfreundliches Framework / eine Bibliothek. Sie müssen immer erst lernen und sich an ein Softwarepaket gewöhnen. Mir scheint, Sie versuchen diesen Schritt zu überspringen :)
quelle
ein. SDL (Simple Direct Layer) verfügt über eine relativ einfache und erweiterbare 3D-Rendering-Engine, die Open Source ist. C ++ ist jedoch effizient, es ist eine steile Lernkurve.
b. sdlbasic ist ein kleiner, effizienter und plattformübergreifender BASIC-Interpreter zum Erstellen von Spielen mit der Leistung der SDL-Bibliothek. Es wurde vom alten und glorreichen AMOS inspiriert. - Es befindet sich im Ubuntu-Repository und wahrscheinlich auch in anderen.
c. ?
ein. Ich stimme Ihren Ansichten zu, obwohl "Gelegenheitsspiele" wie 2D-Rätsel und unkomplizierte Online-Vergnügungsspiele und als Sammlerpakete aufgrund der praktischen Natur eines Spiels mehr Immobilien auf dem Spielemarkt als die hardwareintensive Art erworben zu haben scheinen mit geringen Systemanforderungen. Es wäre gut, mehr Kreativität in den unteren Substraten der erfinderischen Hemisphäre der 3D-Kreationen von Games World Inc. zu sehen.
quelle