Espadon Online - Entwicklerforum

Tauche in die Finsternis des dunklen Mittelalters ein!

Zum Inhalt

Entwicklung - Bob The Builder

Fragen und Vorschläge finden hier ihren Platz.

Moderator: PR

Entwicklung - Bob The Builder

Beitragvon Honigbanause am Freitag, 5. Juni 2009 - 21:23

Entwicklung – Bob The Builder


Einleitung
Seit Herbst 2008 wird bei Espadon am Welteneditor ' Bob the Builder ' gearbeitet. Er ermöglicht unseren Weltendesignern ohne weitere Kenntnisse von der Programmierung mit Ogre selbst eine Espadon Online Welt zu designen.
Der Welteneditor ist somit das Bindeglied zwischen Weltendesignern und Client bzw. Server.
Programmiert wird mit C++, als Grafikengine verwenden wir Ogre3d (http://www.ogre3d.org).
Im Folgenden wollen wir Euch unter zu Hilfenahme von einigen Rendershots einen kurzen Überblick über die Funktionen geben, welche dem Designer zur Verfügung stehen.

Menu
Als erstes stellen wir den groben Aufbau des Editors vor. Neben einem ausreichend großen Renderfenster zum arbeiten muss ebenso ein einfach zu handhabendes Menu vorhanden sein, was trotz einer großen Menge an Funktionen einen guten Arbeitsfluss gewährleisten muss.
Das Renderfenster nimmt den größten Teil der Fläche des Editor Fensters ein.
Das Menu ist logisch in einzelne Tabs unterteilt, welche wiederum in Untertabs aufgeteilt sind.
So wird eine logische Gliederung der Funktionen bei gleichzeitig kompaktem Aufbau gewährleistet.

Navigation
Die Navigation im Renderfenster erfolgt zum einen über Tastatur und Maus und zum anderen über eine Minimap im Menu.
Mit Tastatur und Maus wird die Position der Kamera, sowie ihre Ausrichtung verändert.
Die gesamte Welt ist in einzelne Zellen unterteilt, sodass das Laden von Teilen der Welt möglich ist.
Welchen Ausschnitt der Welt gerade bearbeitet wird, kann über eine Minimap im Menu ausgewählt werden.
Im Vergleich zur gesamten Fläche der erstellten Welt wird also nur ein kleiner Teil bearbeitet, was einen deutlichen Leistungsschub beim bearbeiten bewirkt.

Terrain
Zu Anfang konzentrierten wir uns auf das Terrain. Ziel war es, ein 100% verformbares Terrain zu schaffen, das nicht nur in Form einer Heightmap verändert werden kann, sondern auch Höhlen und Überhänge ermöglicht.
Zur Bearbeitung des Terrains verwendet der Designer bestimmte Brushs, welche unterschiedliche Gradienten und Funktionen besitzen, die anhand von eingestelltem Radius und Intensität auf das Terrain wirken.
Das Verformen geschieht per Mausklick. Der Benutzer klickt auf die entsprechende Stelle des Terrains um sie zu verändern. Die Stelle auf die die Maus zeigt, wird als Mittelpunkt für die Berechnung des zu verformenden Kreisbereichs verwendet.
Daraufhin werden alle in Frage kommenden Punkte des Terrains anhand des Radius ermittelt, worauf die Brush - spezifische Veränderung erfolgt.
Da im Vergleich zur gesamten Fläche meist nur eine relativ kleine Fläche bearbeitet wird, sind alle Dreiecke und Punkte des Terrains in einen Quadtree eingeordnet, sodass die in Frage kommenden Punkte aus der gesamt Menge des Terrains schnell ermittelt werden können.
So ist auch auf älteren Computern hier noch ein flüssiges Bearbeiten des Terrains ohne Leistungseinbrüche möglich.
Im folgenden ein paar Beispiele, wie die bisherige Verformung des Terrains von statten gehen kann.





Terrain – Sinusbrush - 2D
Mit der Sinusbrush kann man, wie es der Name bereits vermuten lässt, das Terrain anhand einer (halben) Sinusschwingung verformen.
Da der so entstehende Gradient kreisförmig über den Arbeitsbereich verteilt wird, entsteht ein regelmäßiger und abgerundeter Hügel:
Die Sinusbrush zählt zu den Heightmap bzw. 2D Brushs.
Sie verändert lediglich die Höhenkoordinate der Punkte.

Bild

Terrain – Normalbrush - 3D
Die Normalbrush verschiebt die Punkte in Richtung ihrer Normalen und verwendet einen auf den Dreidimensionalen Raum angewendeten Radius.
Daher zählt sie zu den 3D Brushs.
Mit ihr kann man skurril anmutende Landschaften erstellen (siehe Bild) aber auch Überhänge und Höhlen.
Da die Punkte mit fortlaufendem Verformen weiter auseinander driften, werden die Dreiecke immer größer. Da nach ein paar Anwendungen die Landschaft unschön und eckig wird, entwickelten wir ein dynamisches System um die Dreiecke zu teilen. Zum einen werden sie ab einer bestimmten Größe bzw. Seitenlänge an dieser Seite einfach zweigeteilt (wobei logischerweise auch das
angrenzende Dreieck geteilt werden muss). Zum anderen kann ein Dreieck durch das hinzufügen eines Mittelpunktes in drei neue Dreiecke geteilt werden.
Dieses Verfahren ist weiterhin dazu bestimmt feinere Strukturen zu modellieren.

Bild


Anmerkung
Wird das Terrain erstellt, so wird ein regelmäßiges Grundraster aus Punkten erstellt.
Strukturen, welche kleiner als dieses Raster sind könnten ohne diese Techniken daher nicht modelliert werden.

Terrain – Texturieren
Das Texturieren des Terrains funktioniert prinzipiell ähnlich wie das Verformen.
Anhand des Mittelpunktes und des Radius werden die in Frage kommenden Punkte ermittelt. Nur dass hier dann nicht ihre Position, sondern ihre Texturdaten verändert werden.

Bild


Objekte
Auch das Platzieren von Objekten auf dem Terrain ist selbstverständlich möglich.
Der Benutzer wählt ein Objekt aus einer Liste aus und kann es mit der Maus an der gewünschten Stelle auf dem Terrain platzieren. Ebenso können die Objekte skaliert, gedreht oder gekippt werden, wie es dem Benutzer beliebt.
Die Platzierung geschieht hierbei direkt auf dem Terrain. Weitere kleinere Funktionen, wie zum Beispiel das erzeugen einer zufälligen Ausrichtung bei jedem neu platzierten Objekt, ergänzen das Platzieren.


Bild


Objekte - Auswählen
Ein Selektieren von platzierten Objekten, sowie Löschen und Repositionieren gehört hier selbstverständlich auch zum Funktionsumfang.
Beim Auswählen von Objekten kann der Benutzer bestimmen, unter welcher Bedingung ein Objekt selektiert werden soll. Zum einen wird ein Objekt nur dann ausgewählt, wenn der Mauscursor genau auf das Objekt zeigt (Testen auf Polygon Ebene).
Zum anderen kann die Selektion auf Ebene der Boundingbox geschehen. Ogre3D ermöglicht eine schnelle Auswahl von Objekten anhand ihrer Boundingbox, sodass das Objekt zur Selektion nicht wirklich getroffen werden muss.
Gerade, wenn ein schnelles Repositionieren von weiter entfernten Objekten erforderlich ist, die eine nicht sehr große Fläche aufweisen (Beispiel Baum mit dünnem Stamm), ist das Testen auf BoundingBox Ebene angebracht, bietet aber bei Objekten, die nahe beieinander stehen auch Platz für eine Fehlerhafte Selektion.

Objekte - Objekt an Objekt
Damit aber nicht nur Objekte auf dem Terrain platziert werden können, sondern auch die Einrichtung eines Hauses (Bilder aufhängen, platzieren von Dingen im 1. Stock usw.) möglich werden, gibt es die Objekt an Objekt Funktion (kurz OaO). Anbei ein Beispiel, wie Objekte auf einem Tisch platziert wurden.
Hierbei wird das gewählte Objekt beim verschieben nicht weiter auf dem Terrain, sondern nur an bereits platzierten Objekten bewegt.
So sind dem Entwickler beim Erstellen einer Objekt – und detailreichen Welt keine Grenzen gesetzt.


Anno1989 – Stand: 1. Juni 2009
Honigbanause
Gamedesigner
Gamedesigner
 
Beiträge: 417
Registriert: Mittwoch, 14. Mai 2008 - 14:29

Re: Entwicklung - Bob The Builder

Beitragvon Larius am Mittwoch, 10. Juni 2009 - 14:51

Wärs vl möglich einige Screenshots von dem Editor zu sehen? Sicher, eine Beschreibung klingt ja recht schön und gut - aber ne Visualisierung dazu wär halt noch besser ;)
Larius
Bauer
Bauer
 
Beiträge: 12
Registriert: Freitag, 16. Januar 2009 - 12:23

Re: Entwicklung - Bob The Builder

Beitragvon Anno1989 am Mittwoch, 10. Juni 2009 - 23:04

Wir arbeiten momentan lediglich an den Funktionen, daher bietet der Editor selbst keinen so schönen Anblick, dennoch hier ein Screen.
Habe grade das Terrain Tab geöffnet, mit dem Subtab fürs Texturieren und mal ein bisschen was von der Textur aufs Terrain gemalt. ;)

MfG
Anno1989
Dateianhänge
BtB.JPG
Benutzeravatar
Anno1989
Programmierer
Programmierer
 
Beiträge: 1335
Registriert: Sonntag, 29. Juni 2008 - 13:27

Re: Entwicklung - Bob The Builder

Beitragvon Larius am Donnerstag, 11. Juni 2009 - 09:01

Mhh danke, das reicht einmal. Wenn ihr den komplett fertiggestellt habt, macht bitte mal mehr screenshots :D

Noch ne Frage bzgl. den Koordinaten: Wird die Fläche, die ihr gerade "markiert" habt und bearbeiten wollt, eigentlich visuell hervorgehoben (Abgrenzung gegenüber anderer Fläche)? Oder bleibt das so?
Larius
Bauer
Bauer
 
Beiträge: 12
Registriert: Freitag, 16. Januar 2009 - 12:23

Re: Entwicklung - Bob The Builder

Beitragvon Anno1989 am Donnerstag, 11. Juni 2009 - 14:35

Die Fläche soll einmal mit einem Kreis auf dem Terrain angezeigt werden. Wir sind momentan eben noch am Grundgerüst.
Sobald die Funktionen alle soweit drin sind, werden wir die Menu elemente des Editors auch grafisch Aufpeppen, aber das lohn momentan einfach noch nicht, andere Dinge gehen vor (wie zur Zeit das Tool für die Vegetation, dazu später mehr).

MfG
Anno1989
Benutzeravatar
Anno1989
Programmierer
Programmierer
 
Beiträge: 1335
Registriert: Sonntag, 29. Juni 2008 - 13:27


Zurück zu Community

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste