I am releasing the Stone Goose Level Object as an early beta in order to get some feedback. Originally the extension was capable of creating backdrops by name, but instead I took this responsibility out of the extension and moved it to a different extension - collaborating with Anders on the Create By Name extension.
"Stone Goose Level Object"
"Copyright © 2012 Stone Goose Studios"
"Saves level information to an XML level file, and loads the data back with callbacks for object recreation."
When making games I am fed up of having duplicate copies of code. If you have a 25 level platform game which uses the same platform engine in all of those levels, and then you discover a bug in the engine, you have to update the engine 25 times. The best solution is of course to make a level editor and to load your levels dynamically into your game. This is a somewhat advanced task but I don't see why it should be. The MMF level editor gives us a nice way to build up levels. What it doesn't do is give us a method for creating multiple levels for one set of events. The Stone Goose Level Object exports the names and positions and a series of other bits of data about the objects in your level to a file. When you load this level file it triggers an event for each object that was in your level, allowing you to add it to the frame. It's very easy to do. Saving can be done with as little as one action and loading can be done with 3 events (3 actions using Create By Name).
- We can't create quick backdrops by name (yet).
- It's only available for the standard windows runtime at the moment.
- JSON would be nicer than XML (smaller files) but will be negligible if compressed. Possibly add both options.
You can find the latest version at http://www.mattesch.info/click/SGLevelObject.zip
To run the example you will need the latest version of the Create Object By Name extension which you can find on Anders' site http://www.andersriggelsen.dk/mmf2_extensions.php
Please post any questions or bugs you find, or suggest features you would like to see added to the extension.