Grundlegende überlegungen zu einem Terraineditor
Übersicht

GermannXBetreff: Grundlegende überlegungen zu einem Terraineditor |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo alle zusammen! ![]() Nach dem ich nun einige Jahre nicht mehr Programmiert habe, habe ich jetzt wieder beschlossen, wieder mal von ganz neuem mit B3D anzufangen und die Grundlagen sind schon wieder am kommen. Trotzdem fehlt mir natürlich noch der tiefere Durchblick bzw. programmtechnischer Überblick, weshalb ich die erfahreneren User hier bitten würde, mich in folgender Grundlagenfrage zu beraten ![]() Mein Ziel ist es, einen Map-Editor für ein geplantes 3d-spiel zu programmieren. jetzt ist meine überlegung, ob es einen guten weg gibts, hierbei terrains zu nutzen. allerdings möchte ich nur sehr ungern ein terrain aus einer gemalten height-map laden, da ich (als ich das mal ausprobierte) der meinung war, dass das terrain zu kantig für ein spiel aus der ich-perspektive ist (als heightmap nutze ich das beispiel hier aus der hilfe auf diesem portal, es lag also nicht daran, dass ich etwa eine nicht weich gezeichnete heightmap genommen hätte). am liebsten würde ich eine möglichkeit schaffen das terrain in echtzeit mit dem editor zu modellieren (geziehlt stellen anheben und senken) und denke mal, dass sich das mit modifyterrain auch realisieren lassen müsste, nur wie soll ich dass dann speichern? gibt es da eine möglichkeit? die einzige die mir kommt ist, alle koordinaten aller vertexe (oder wie die mehrzahl auch nochmal hieß^^) auszulesen und einzeln abzuspeichern aber das klingt nach nem sehr unübersichtlichen unterfangen. meine andere option wäre es natürlich ansonsten, meine welt als mesh zu laden, aber dann wäre ich flächenmäßig bei meinen karten warscheinlich stark begrenzt oder? bin dankbar für alle guten richtungsanstösse udn vorschläge ![]() Danke schonmal im vorraus, GermannX |
||
...und der Tod warf seine Sense weg und stieg auf den Mähdrescher, denn es war Krieg! |
bjh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo,
wie erstellst du dein terrain? mit loadterrain oder mit createmesh, createsurface, addvertex und addtriangle? wenn dich die kanten stören, dann musst du halt die heightmap vergrößern. z.b. eine 1024*1024 heightmap anstatt einer 512*512 ich programmieren zurzeit einen egoshooter, bei dem die vertexabstände 8m groß sind. meine map lade ich aus einer datei mit bytegroßen(0-255) höheninformationen. aber erst mal muss ich wissen, wie dus machen willst. ![]() |
||
GermannX |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Erstmal danke für die flotte Antwort bjh ![]() Das ist auch eine der Dinge, wo ich mich gerne auf eine Empfehlung erfahrenerer programmierer verlassen würde. Darüber zerbreche ich mir jetzt schon seit mindestens 3 Stunden den kopf ![]() ![]() ![]() mfG GermannX |
||
...und der Tod warf seine Sense weg und stieg auf den Mähdrescher, denn es war Krieg! |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Erstelle doch erst mal eine Übersicht, wie das fertige Spiel aussehen soll. Wenn man das Ziel nicht kennt, lässt sich immer schwer etwas dazu sagen... Ob du Terrains oder Meshes benutzten solltest, hängt davon ab, was du erreichen willst und davon, was du kannst.
Setze dir ein erreichbares Ziel und wenn du da ankommst, hast du genug gelernt um es besser um zu setzen. Benutze die Online Hilfe doch erst mal, um dich mit den Terrainbefehlen auseinander zu setzen. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
bjh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
mich würd auch noch interessieren, was für ein spiel es wird.
du hast ja oben mal irgendetwas von ich-perspektive geschrieben. falls du starthilfen brauchst, dann helf ich gerne. ![]() |
||
GermannX |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok, also das hab ich eigentlich extra nicht erwähnt, weil es sonst wieder "das-ist-zu-viel-geschrei" gibt ![]() ![]() Nur will ichs diesmal eben nach möglichkeit von vorne rein so vernünftig wie möglich anbelangen was die entscheidung terrain ja oder nein und wenn ja wie anbelangt. naja, geplant sind später mehrere mittelgroße regionen zwischen denen "schnell gereist" wird, um eine möglichst große welt realisieren zu können und trotzdem nicht auf hübsche meshes verzichten zu müssen. Einen konkreten entschluss wie groß die maps werden sollen, treffe ich aber in abhängigkeit von den technischen möglichkeiten. MfG |
||
...und der Tod warf seine Sense weg und stieg auf den Mähdrescher, denn es war Krieg! |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es spricht ja nichts gegen große Pläne, nur...
Wenn du alles gleichzeitig anfängst, ist es wie ein 10000 Teile Puzzle, für dass du ewig brauchen wirst. Sobald du merkst, dass das Terrainsystem komplett anders sein sollte, passt der Rest auf einmal nicht mehr. Wenn du dich auf die Kernprobleme konzentrierst, bekommst du das ähnliche Problem, dass die übrigen Features da nicht mehr eingebaut werden können (aber du hast zumindest was lauffähiges). Ich schätze, Meshterrains hätten den Vorteil, dass sie perfekt aneinander passen würden. Plus: Die Blitz eigenen Terrains unterstützen keine Höhlen oder Überhänge usw. Mach ruhig, aber möglichst für jeden Teilaspekt eine techdemo, damit du weißt, was geht. Und wenn du alles mal zusammen baust, trau dich ruhig alles unwichtige raus zu streichen. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
bjh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich hab erstmal noch eine frage zu deinen tarrains:
wie sehen di map-grenzen aus? benutzt du wasser also inseln oder gibt es unsichtbare wände oder wird der spieler aufgefordert umzukehren? und in welcher zeit spielt das ganze? interressiert mich halt ![]() wenn sonst noch was ist, einfach sagen. ich könnte dir in einem beispielcode zeigen, wie ich meine maps erstellen lasse. |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielleicht hilft dir auch einfach schon TerrainDetail![]() ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
GermannX |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@ Xeres: jops so wirds warscheinlich laufen, aber wie gesagt, mir gehts nicht um das ergebniss, sondern den weg und was ich dabei lerne, aber techdemos für einzele aspekte finde ich einfach witzlos, also mach ich lieber ein riesenprojekt, wo ich mal mit sehr vielem in kontakt komm, obs nun klappt oder nicht XD
Aber warscheinlich sind meshes tatsächlich ganz schlau und grade was überhänge anbelangt die einzige lösung. @bjh: eine weitere schwierige frage. Ich denke zum teil werde ich schauen, dass unüberwindbare berge die map begrenzen und zum teil werde ich wohl leider tatsächlich auf den aufruf an den spieler, umzukehren, zurückgreiffen lassen, wobei sich das bei meinem szenario, einer von bürgerkriegen geschüttellten, untergehenden industriegesellschaft in einer verseuchten welt, wohl noch relativ gut verstecken lässt. hierbei ist mein gedanke, verglechbar mit "strahlung" oder anderem aus spielen bekannten, eine "nitrosegasbelastung" und eine "schwermetallbelastung" einzuführen, da die von mir erdachte gesellschaft stark bergbauorientiert ist. somit könnte man auch einfach die karte durch zu verseuchte gebiete begrenzen. @Tankbuster: Danke, aber damti habe ich natürlich schon gespielt ![]() aber ja, in kombination mit einem größeren terrain sieht es damit jetzt nicht mehr eckig aus . MfG |
||
...und der Tod warf seine Sense weg und stieg auf den Mähdrescher, denn es war Krieg! |
Matthias |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@GermannX
Mein Lieblingsthema. Lange habe ich mich unter Blitz3D mit diesem Thema beschäftigt. Ich habe viele wertvolle Erfahrungen auf diesem Gebiet gesammelt, die mir mir jetzt unter BlitzMax+OpenGl von nutzen sind. Vieleicht kannst du dieses Beispiel für dich benutzen. https://www.blitzforum.de/foru...mp;start=0 Für mich macht es allerdings keinen Sinn mehr unter Blitz3D daran weiter zu arbeiten. Weil Blitz3D schon sehr alt ist, und BlitzMax+OpenGl durch seine Shader um Welten schneller ist. Es gibt mehrere Möglichkeiten. Die einfachste ist folgende. BlitzTerrain mit ModifyTerrain. Functioniert auch recht schnell. Probleme gibs dann aber bei der Textur. Bei 512x512 gibs noch keine Probleme. Ab 1024x1024 dauert das Locken/Unlocken zum bearbeiten extrem lange und es ruckelt. Mann kann das Problem eindämmen indem mann nich sofort auf die Textur schreibt sondent ersteinmal in einem Dimfeld. Bei jedem Mainloop wird dann nur ein kleiner bereich auf die Textur übertragen. Auch kann mann sehr schnell auf dieses Dimfeld zugreifen um zb eine Pinseltextur einzumischen. Nachteil ist natürlich das die Veränderungen erst mit einer kleinen Verzögerung sichtbar werden. Aber es ruckelt dann wenigstens nicht mehr. Für das Terrain selbst bietet sich diese Technick natürlich auch an. Gerade beim heben und senken. Wenn mann das Terrain etwas glätten will (Blur) kommt mann um ein Dimfeld nicht drum herum. |
||
bjh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich habe loadterrain nur als blutiger anfänger benutzt.
deshalb zeig ich hier mal den aufbau meiner maps: BlitzBasic: [AUSKLAPPEN] Dim map(128,128);das dimfeld für die 129*129 vertexpunkte der map is ein funktionsfähiger code erstellt ein grid mit den höheninformationen eines bildes. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group