Seite 2 von 5

Verfasst: 18.02.2006 13:22
von hardfalcon
Wenn wir kompatibel bleiben/sind zum MAP-Format, dann brauchen wir u.U. auch keinen eigenen Editor zu schreiben, ein simpler Konverter langt dann vollauf.

Verfasst: 18.02.2006 15:08
von hardfalcon
Hier mal ein kleines Beispiel einer XML-Datei, wie wir sie benutzen könnten:

Code: Alles auswählen

<?xml version="1.0"?>

<mapinfo>
    <name>Meine erste Map</name>
    <creator>Pascal 'hardfalcon' Ernster</creator>
    <email>hardfalcon -AT- gpfclan . de</email>
    <website>http://hardfalcon.gpfclan.de/</website>
</mapinfo>

<ressources>
    <texture src="sprite.jpg">meinetextur1</texture>
    <texture src="alpha.png">textur_mit_alphachannel</texture>
    <music src="bgmusic.mod">Hintergrundmusik</music>
    <sound scr="expl1.ogg">explosion</sound>
    <mesh scr="mymesh.mesh">mesh1</mesh>
    <!--
    <manualmesh data="">mymesh2</manualmesh>
    -->.
</ressources>

<materials>
    <material texture="meinetextur1">
        material1
        <layer texture="textur_mit_alphachannel" mode="AlphaBlend"></layer>
    </material>
</materials>

<world>
    <terrain src="terrain.png">Terrain</terrain>
    <entity mesh="mesh1" texture="material1" position="12.3;45.6;7.89" health="75" diesound="explosion">object1</entity>
    <gravity>9.82</gravity>
    <skybox>stevecube.zip</skybox>
    <skydome curvature="30">clouds.jpg</skydome>
    <bgmusic>Hintergrundmusik</bgmusic>
</world>
Natürlich gibts da noch SEHR viel dran zu verbessern... :)

Verfasst: 18.02.2006 17:00
von Sebe

Code: Alles auswählen

<information>
   <name>NAME OF THE MAP</name>
   <creator>NAME OF THE MAPCREATOR</creator>
   <email domain="DOMAIN.XYZ">EMAIL</email>
   <date>YEAR/MONTH/DAY</date>
</information>

<ressources>
   <scripts type="PAK">\textures\materials.zip</scripts>
   <meshes type="PATH">\modells\</meshes>
   <texture type="PATH">\textures\</texture>
   <music type="PATH">\audio\music\</music>
   <sounds type="PAK">\audio\sound\sounds.zip</sounds>
</ressources>

<world>
   <shadows>ADD/MOD</shadows>
   <gravity>[GRAVITY]</gravity>
   <terrain scale="[X];[Y];[Z]" accuracy="[VALUE]">HEIGHTMAP.PNG</terrain>
   <skybox>SKYBOX.PNG</skybox>
   <skydome curve="[VALUE]">SKYDOME.PNG</skydome>
   <backgroundmusic volume="[VALUE]">BACKGROUNDMUSIC.OGG</backgroundmusic>
</world>

<mlayer>
   <layer texture="TEXTURE.PNG" mode="ADD/REPLACE/ALPHA/MOD">LAYERNAME</layer>
</malayer>

<materials>
   <material texture="TEXTURE.PNG" layer="LAYERNAME1" layer="LAYERNAME2" layer="LAYERNAME3" ambient="[COLOR]" blending="ADD/ALPHA/COLOR" diffuse="[COLOR]" filtering="NONE/BI/TRI" shading="FLAT/GOURAUD/PHONG" specular="[COLOR]">MATERIALNAME</material>
</materials>

<entities>
   <entity mesh="FILE.MESH" material="MATERIALNAME/SCRIPTFILE.MATERIAL" position="[X];[Y];[Z]" scale="[X];[Y];[Z]" friction="[VALUE]" mass="[VALUE]">ENTITYNAME</entity>
</entities>

<particles>
   <emitter scale="[X];[Y];[Z]" type="POINT/BOX" position="[X];[Y];[Z]" material="MATERIALNAME" direction="[X];[Y];[Z]" psize="[W];[H]" rate="[VALUE]" time="[MIN];[MAX]" velocity="[MIN];[MAX]" cfade="[R];[G];[B]" crange="[START];[END]">EMITTERNAME</emitter>
</particles>
So, verschiedene Layer werden jetzt auch berücksichtigt. "Von Hand erstellte" Meshes habe ich nicht berücksichtigt. Wenn man diese noch berücksichtigen WILL, dann am besten in Form eines eigenen Formats. Da dies aber imho wegen dem Mesh Format Unsinn ist habe ich das weggelassen.

Verfasst: 18.02.2006 17:54
von Sebe
Sry für Doppelpost. Evtl. sollten die entsprechenden Beiträge von den Mods in einen eigenständigen Thread ausserhalb des temporären PB4.00 beta Forums verschoben werden. Nur so ein Vorschlag. :)

Verfasst: 18.02.2006 17:55
von hardfalcon
Jo, das mit den Handerstellten Meshes kann man IMHO wirklich weglassen. Super arbeit, Sebe! :D

Verfasst: 18.02.2006 18:21
von Sebe
Danke falcon :) Die spezifischen Dinge wie health und diesound habe ich ebenfalls weggelassen, aber durch die Strukturen ist das Format natürlich beliebig erweiterbar. Dafür würde ich dann allerdings eine weitere Struktur einführen, z.B. creatures oder so, die dann von der entity Struktur abhängt. :allright:

Nur schade, dass lua oder Konsorten noch nicht fest in PB integriert sind :wink:

Verfasst: 18.02.2006 20:53
von dllfreak2001
Warum darf ich das nicht erwarten?

Ich habe hier irgendwo gelesen das es neue Collisionsbefehle geben wird.
Diese sind für das BSP-Format gedacht, aber wozu entwickelt Fred dann den Kramm weiter wenn World sowieso nicht funktioniert, außerdem hat so die Ogre-Lib stark an Wert verloren.

Verfasst: 18.02.2006 20:59
von Sebe
Link? Ich habe bloss die Infos aus dem Thread zu dem ich den Link gepostet habe. Demnach gibt es den Befehl einfach nicht mehr. Ausserdem finde ich nicht, dass dadurch die OGRE Lib an Wert verliert. BSP ist veraltet und ich habe ehrlich gesagt keine Lust mich noch darum kümmern zu müssen, was mir id Software erlaubt oder nicht. Lade dein Level halt einfach als Mesh, Kollisions- und Physikfunktionen gibt es bereits. Ich hoffe mal, dass wir mit dem eigenen Levelformat auf einen grünen Zweig kommen.

Verfasst: 18.02.2006 21:13
von Zaphod
wenn du deinen Level einfach als mesh lädst, dann gibt es keinerlei szenen management und damit kein visibility und du kannst froh sein, wenn dein quake2 klon auf einem 3GHz rechner einigermaßen ruckelfrei läuft.

von daher finde ich auch, dass die ogre library damit *stark* an wert verloren hat, denn damit jetzt noch einen indoor shooter zu basteln ist wahrscheinlich mehr aufwand als mit opengl bei null anzufangen.

Verfasst: 18.02.2006 21:21
von Sebe
Das glaube ich kaum, zumindest steht auf der OGRE Homepage unter Features auch etwas von Octree Scene Management. Da müsste man tatsächlich mal bei Fred direkt anfragen, aber ich denke Octree wird verwendet. Wäre ansonsten irgendwie komisch :?