Mad Level Manager is a tool to manage your levels, and prepare elegant level select screens based on your configuration! It’s easy, powerful, highly customizable and under active development.

Level Management

Normally you would use Application.LoadLevel() when you want to load next scene. This seems simple enough, but there are some problems with this approach:

  • You need to know scene name or index of scene that you want to load
  • There’s no simple method of passing arguments to the scene
  • Managing multiple level workflows is not a simple thing

Let’s target all of these three problems separately.

You need to know scene name or index of the scene that you want to load

You may say “Hey! But I know the names of my scenes!”. That’s fine until your scene name won’t change. The order can change too, and when it does you need to find each place where you invoked your Application.LoadLevel() and change your scene name. In bigger projects it can be quite painful.

In Mad Level Manager your scenes don’t need to know what lies further. Instead of saying “I want to go to level 6” (will be valid only when you’re in level 5) you can say “I want to go to the next level”. This makes your development process much easier, because your level workflow management won’t collide with your scripting anymore! The designer can set level order, and the programmer can focus on things that matters.

What’s more, Mad Level Manager will take your understanding of scenes to higher level. The Level is entity that:

  • Have it’s own name
  • Directs you to scene (multiple levels can direct you to the same scene)
  • Have it’s own type (regular level, extra level, other)
  • Have input arguments

There’s no simple method of passing arguments to the scene

One of the most common cases when building games with many levels is to create one scene that is used for all of them, and input arguments (name of data file) to setup level contents. You can find this approach in puzzle games for example. All levels consists of board, and this board must be filled with objects. In this point you’ll need to pass arguments to your level. Again this is not straightforward task, because Unity doesn’t provide method to set input arguments to your scenes, or call them in that way.

Mad Level Manager let’s you set argument line for each of your levels while configurating your level workflow. When level is loaded it can be accessed with MadLevel.arguments property.

Managing multiple level workflows is not a simple thing

Let’s say that you want to create two versions of your game: demo and the full version. Both of these should contain first level, but only the last must allow to play the second one (and maybe more).

It’s easy to achieve with Mad Level Manager level configurations. You just need to create two of them, and just before building your app switch between first and second one. In this way you can quickly create two different versions of your game!

More about Level Workflow API

Level Select Screen

You can quickly create level select screens based on previously prepared level configurations. These screens are highly optimized to work with mobile devices with touch support, but it can be also used with PC, Mac & Linux!

Level select screens are strongly integrated with your level configuration workflows and will display only these levels currently available in the workflow. Add a new level to instantly see it on the level choose screen in the right place.

Also level select screens are integrating with save & load subsystem. All completed and unlocked levels will be presented as they should. If you will define additional properties for your level icons like stars, Mad Level Manager will fill them up.

See Demo

Load/Save and Profiles Support

The third most important functionality of Mad Level Manager is built-in save/load and support for player profiles. By using MadProfile API all changes made to level states are persistent and will be loaded and displayed at the level select screen automatically. You can create multiple player profiles and switch between them whenever you want. It’s easy, powerful, and safe.

More about save/load API