Gibt es eine schmutzige / billige, leichte 3D-Engine, die für Anfänger geeignet ist? [geschlossen]

8

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 ...

Jokoon
quelle
5
Es sollte wirklich nur eine Frage pro Frage geben.
Tetrad
Versuchen Sie, die Frage kürzer und einfacher zu gestalten. Außerdem kann ich den Fragenteil von Frage 2 nicht finden, ich sehe nur viele Meinungen und Aussagen.
AttackingHobo
1
Frage 1 tl; dr -> Auf der Suche nach Barebones, einfach zu bedienende 3D-Engine ohne alle Spielereien. Frage 2 tl; dr (glaube ich?) -> Neue Spiele opfern Spaß für die Technologie, finden Sie nicht?
Deleter
Ich denke, es würde Spaß machen, Ihre Meinungen im Chatroom von gamedev zu diskutieren. chat.meta.stackoverflow.com/rooms/73/game-development - es ist nicht Ihr traditioneller Echtzeit-Chatroom; Wenn niemand da ist, hinterlassen Sie eine Nachricht und kommen Sie später wieder und lesen Sie die Antworten.
Ricket
duh. brauche 20 Wiederholungen, aber in meta.stackoverflow
jokoon

Antworten:

3

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.

Benutzer wurde nicht gefunden
quelle
Zum Teufel mit UIs-Tools habe ich vergessen zu erwähnen, dass diese wirklich nicht notwendig sind, und oft machen sie entweder nicht ihre Arbeit, wie ich es brauchen würde, oder sie essen die Funktionen der Engine, um bessere Editorfunktionen zu ermöglichen. Horde3d ist noch in der Beta, aber es scheint das zu sein, wonach ich suche ...
Jokoon
3

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.

Ich bin sicher, es ist etwas zu viel zu lernen, wie man mit D3D oder opengl einen kompletten Motor herstellt

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?

Ricket
quelle
Gute Antwort und eine gute Antwort auf die zweite Frage / Aussage des OP.
Bummzack
Es ist eine gute Antwort, aber SDL ist nicht mehr eine 3D-Engine als die Win32-API.
Kylotan
1

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 :)

bummzack
quelle
(Dies ist als Kommentar zu Bummzacks Antwort gedacht.) Anstatt GLUT direkt zu verwenden, denke ich GLFW nach besser für Spiele geeignet, da es auch Eingaben und Timing übernimmt.
Benutzer nicht gefunden
-2
  1. 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. ?

  2. 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.

kmonke
quelle