= How to create Orxonox Levels = To create a level in Orxonox is really easy. One does not have to program anything or compile the code again, because our levels are created with XML-Files. There the objects in the level can be defined. On this page we explain what one can do with the XML-Files and how to create a new level for Orxonox with them. The objects we can add are rooms (BSP-files), spacecrafts (OBJ-files) and moving objects (MD2-files). How to that exactly is best explained with the examples below. If you're interested in creating rooms and BSP-levels check out this page: [wiki:MappingForOrxonox Maping for Orxonox with GTK-Radiant] == Adding a menu entry == Before you can play a level in Orxonox you have to add the level as a menu entry in the game. To do that you have to alter the DefaultCampaign.oxc file in the data/levels directory (or data/worlds in older versions).[[br]] Below there is a example for that file: {{{ #!xml default 0 The one and only default debug campaign 0 GameMenu levels/Menu.oxw 1 1 2 Demo Mountain Lake levels/sp_demo_mountain_lake.oxw 1 2 0 levels/mp_level_arena.oxw ... }}} Now to add your level you have to add an !SinglePlayerWorld (or !MultiPlayerWorld) entry to the !WorldList. Be sure to add an identifier a name and the most important: the path of your OXW-file. The number of the identifier and the menu-entry have to be incremented. Close every you open. == XML level file (OXW) syntax == Level files have the extension OXW (for '''O'''rxono'''X''' '''W'''orld). The order of the things you add does not matter. At the beginning of every file you have to put the tag and close it in the end. Then you put in the name of the level and the screenshot (or picture) you want to show in the menu. You can check out the example below to see how it works. Every tag has to be closed and stuff which is written in a tag is related to that tag. If open a tag you have to be sure you open it at the right place. In the !WorldDataFile tag the name tag is refering to the name of the level and in the !SpaceShip tag for example it refers to the name of that space ship. So be careful where to put your tags and when you have to close them. === Example === {{{ #!xml Meteroid pictures/menu/ss_meteroid_512x512.png pictures/load_screens/default.jpg 16 0,0,1.0,1 .65,.87,.3,.05 pictures/load_screens/default_bar.png Player 522,-389,419 Player2 models/ships/reap_#.obj 312.19, 172.36, 60.74 ... 413.5,183,36.3 media/hero.mov 15 90 75,38.5 ... Sky pictures/sky/simple_space 10000 comet 300,50,-400 models/comet.obj, 2.5 ... Meteroit 300,50,0 models/environments/meteorit.obj, 2.5 sound/music/allgorythm-once_upon_a_time_in_a_small_club.ogg 1,1,1 300,800,0 ... 1,1,1 lense flare pictures/lense_flare/sun.png pictures/lense_flare/lens2.png pictures/lense_flare/lens1.png pictures/lense_flare/lens3.png pictures/lense_flare/lens4.png pictures/lense_flare/lens1.png pictures/lense_flare/lens3.png }}} === World Entities === World entities are all the objects we have in a level. That includes space ships, meteors, animated textures and so on. Since all those objects have the !WorldEntity class in comon, we have a list of all the world entities in our XML-file. This list is defined in the tag. ==== Player ==== To add your player to the scene all you have to do is define a space ship or a turbine hover or any other kind of craft you want to play in. We make a difference here because not every ships is controlled the same way. If you define a space ship with the turbine hover model, the hover will be acting like a space ship. Keep that in mind when you define new space ships and players in your level. As seen in the example above the turbine hover has it's own tag and all you have to do is give it a name and of course fell it where its position should be. This can be achieved by using the tag and define x,y and z coordinates of the position you want to have your turbine hover to be created. ==== Skybox ==== ... ==== Weather effects ==== ... === Music === ... === Lights === ...