One of the features of the 1.1 version of Thrust Xtreme is the inclusion of the object and world editors so you can create your own worlds!
Everything (apart from the font) you see in Thrust Xtreme is drawn using lines. The game does not contain sprites or images. Being lines, I can rotate and scale the objects as I please.
I also used these editors during development to create new content for the game. These game objects are created by drawing the lines in the Object Editor and saving them to disk in a .vob file (Vector OBject). I import this file in the game and code the behavior for it, which is how the guns, fuel canisters etc are being made.
I hear you say : ‘Wait a minute! Does this mean I cannot create my own unique child objects or enemies to be used in my world?’. Sadly, yes… I can not provide in all the logic you might need, and I haven’t included a script engine to provide you with the flexibility needed… You can of course change the appearance of the objects already in the game; load the .vob, change the object and save it under the same name…
Ok, let’s move on: A planet (or world) is also based on a vector object. A world is nothing more than a base vector object with child vector objects linked to it. Child objects have their position and rotation angle in the world and when the world object moves or rotates these positions and angles are changed with it. A world object can be flat or round. Asteroid worlds or small planets can be created this way. Round worlds can rotate, causing severe stress to the player :) .
There are some differences when creating a round or flat world: A round world is exited by traveling far enough from the world vector object radius. A flat world is exited by crossing the finish line which is placed in the sky. A round world does not need wrap lines while a flat world needs a wrap line on each side of the playable area to make sure that a player sees the side of the world vector object. Finish lines and wrap lines are child objects, just like checkpoints.
Creating a world therefore starts in the object editor where a main object is created and saved out. After starting the World Editor and selecting ‘new world’ a requester pops up asking you to select the base vector object for this new world. This new empty world is then displayed in the editor, ready to be filled with child objects.
Child objects are added by clicking on a button in the ‘Add’ region of the toolbar. Child objects can be positioned, named, given values and targets, angle and rotation speed. This way it’s easy to add buttons, link doors or lasers to it, link lasers to other lasers, place way points for our lost astronauts or tanks, etc. There are a lot of evil situations you can create for the victim, ehh player…
Like said earlier, a world can be round. An example is the world seen in the intro screen of the game. It slowly rotates showing parts of its surface. Round worlds must use the ‘to center’ gravity type though, causing the player to be always pulled to the planet core. Falling down into space would suck, imho.
After naming the world and setting its gravity type and amount the world is saved out as a .wob file (World OBject).
The world file name can be added to the file playlist.txt and that’s it! Your world is available in the game.