Level Editor Frage
-
Hallo zusammen,
ich weiß, wieder mal ne Frage bezüglich Spieleentwicklung....gibts ja andauernd *g*. trotzem hoffe ich auf hilfreiche Antworten, wie ichs hier im Forum gewohnt bin
Ich habe zurzeit ein Verständnissproblem, welches mich seit länegrem beschäftigt.
Ich lese mich grade bei Blender ein und habe ein paar Fragen.
Wenn ich jetzt ein Spiel entwickeln möchte, macht es ja Sinn einen 3D Level Editor zu schreiben, um die verschiedenen Levels zu gestalten. Eine 3D Landschaft würde ich also stets per Blender erstellen (also Bäume, Häuser, etc.). Ist doch soweit richtig oder ?
Jetzt ist meine Frage:
Ich hab da jetzt in der Landschaft einige Häuser, Berge, etc.
- wie kann ich die Map jetzt im c++ Code nutzen?
- wie kann ich mit den gezeichneten Objekten interagieren?
also woher weiß mein Charakter, dass er nicht durch die Wand eines Hauses laufen kann? Ich muss also irgendwie die ganzen Objekte auf der Karte in meinem C++ Code ansprechen können...nur wie? das versteh ich nicht.Als Entwarnung: Keine Angst ich werde jetzt ganz bestimmt net anfangen gleich nen Spiel zu pürogrammieren, etc. Ich beschäftige mich lediglich etwas mit Blender in letzter Zeit und bin dann über die oben angesprochenen Fragen gestoßen.....
Danke schonmal für eure Antworten!
Gruß
Gamerneuling
-
Aus deiner Frage würde ich mal schließen, dass du von Spiele-PROGRAMMIERUNG bisher noch KEINE Ahnung hast.
Also das ganze funktioniert folgender Maßen:
Unter Windows hast du die Wahl zwischen 2 LowLevel-3D-Apis, welche dir erlauben die 3D-Beschleunigung deiner Grafikkarte auszunutzen.
Das sind Direct3D (als Teilmenge von DirectX) und OpenGL.Prinzipiell sind beide gleich mächtig und es ist eher ein Glaubenskrieg.
OpenGL ist eben ein offener Standard und ist auch für Linux, Max OS und weitere Systeme verfügbar.
DirectX ist von Microsoft und existiert daher nur für Windows, XBox und Windows Phone.Unter Windows ist allerdings DirectX stärker in Verwendung.
Auf diesen beiden Apis setzen gewöhnlich so genannte Engines auf, welche die LowLevel Funktionalität komfortabel kapseln.
Sowohl Direct3D als auch OpenGL erlauben dir lediglich mit Primitiven wie Punkten, Linien, Dreiecken und Polygonen zu rechnen. Erst eine Engine bietet dir dann die Möglichkeit einfach ein Mesh aus einer Datei zu laden und das an eine Stelle im 3D Raum zu rendern.
Das geht natürlich auch von Hand mit den LowLevel Apis, ist allerdings recht aufwändig.
Die großen Firmen machen das zwar, da die ihre Engines meist selber entwickeln,
aber als Hobby-Bastler wird man eher auf fertige Engines zurückgreifen.Beispiele dafür sind:
Komplette Game-Engines:
Unreal Development Kit (Kostenlose Version der Unreal Engine 3)
CryEngine 3 SDK (Kostenlose VErsion der CryEngine 3)Grafik-Engines:
Ogre3D
IrrlichtDiese Engines bieten wie gesagt die Möglichkeit komplette Objekte zu laden,
welche vorher mit Blender, 3DS Max, Maya, Cinema 4D oder unter Umständen Engine-eigenen Editoren erzeugt wurden.Ich hoffe diese Einleitung ist hilfreich für dich
MfG DrakoXP
-
Gamerneuling schrieb:
Wenn ich jetzt ein Spiel entwickeln möchte, macht es ja Sinn einen 3D Level Editor zu schreiben, um die verschiedenen Levels zu gestalten.
das macht nicht immer sinn, es ist zwar immer von vorteil einen zu haben, aber einen zu schreiben ist mindestens soviel aufwand wie ein spiel zu schreiben, da du im editor vermutlich alle funktionalitaet editieren koennen willst, die im spiel zu verfuegung stehen.
Macht also keinen sinn, wenn du z.b. alles auch in blender umsetzen koenntest, oder blender an deine beduerfnisse anpassen wuerdest.Eine 3D Landschaft würde ich also stets per Blender erstellen (also Bäume, Häuser, etc.). Ist doch soweit richtig oder ?
kann man auch in einem leveleditor machen, das bieten die meisten an (unreal ed, crytek sandbox, unity..)
- wie kann ich die Map jetzt im c++ Code nutzen?
du musst das natuerlich irgendwie reinladen, entweder du schreibst dir einen loader fuer ein format deiner wahl, was blender abspeichern/exportieren kann, oder du nutzt eine 3d engine die die level laden kann.
- wie kann ich mit den gezeichneten Objekten interagieren?
also woher weiß mein Charakter, dass er nicht durch die Wand eines Hauses laufen kann? Ich muss also irgendwie die ganzen Objekte auf der Karte in meinem C++ Code ansprechen können...nur wie? das versteh ich nicht.naja, irgendwo wirst du ja einen startpunkt haben, wo dein character bei spielbegin ist. von dort bewegt sich der character abhaengig von input, bei jedem versuch den character zu bewegen (also neu zu positionieren), pruefst du, ob er mit etwas collidieren wuerde, im einfachsten fall laeufst du nicht weiter, wenn dort etwas ist.
Als Entwarnung: Keine Angst ich werde jetzt ganz bestimmt net anfangen gleich nen Spiel zu pürogrammieren, etc. Ich beschäftige mich lediglich etwas mit Blender in letzter Zeit und bin dann über die oben angesprochenen Fragen gestoßen.....
als "spieleprogrammierer" musst du immer versuchen dein ziel mit dem kleinst moeglichen aufwand zu erreichen. viele spiele die du siehst die komplex aussehen, sind in wirklichkeit super einfach gemacht, z.b. spielen sie oft auf einfachen 2d "spielkarten" und nur die darstellung ist dann 3d. machst du z.B. ein einfaches rpg wo der spieler auf einer landschaft rumlaeuft, und vielleicht mal im dungeon oder in einer stadt zwischen haeusern laeuft, ist 2d fuer die ganze logik vollkommen ausreichend.
am ende zeichnest du es nur in 3d. das kann ploetzlich alles viel einfacher machen.wenn du gerade anfaengst, empfehle ich dir sofort ein spiel anzufangen, so macht lernen am meisten spass. fang mit zahlen raten an, dann vielleicht hangman, dann vielleicht tic-tac-toe (ruhig als consolen applikation), dann vielleicht ein tetris clone, oder pong? dann pac-man, hier kannst du level als 2d bitmaps erstellen...
wenn du probleme hast, kannst du hier immer fragen und wir helfen dir gerne weiter, gerade wenn du dir plausible herausforderungen vornimmst
-
Vielen Dank für eure Antworten. Ihr habt mir sehr viel weiter geholfen
Wenn ich mich etwas besser mit Blender auskenne, werde ich mich mal an Hangman oder Pong versuchenDanke!
Gruß
gamerneuling
-
Gamerneuling schrieb:
Wenn ich mich etwas besser mit Blender auskenne, werde ich mich mal an Hangman oder Pong versuchen
Das kannst du bereits jetzt schon machen. Außer du möchtest wirklich eher in richtung Gamedesign gehen statt Programmierung. In diesen Fall sei dir Unity3D empfohlen.