
Below is a quick look at how easy it is to use OGT Level Manager in your own Composer-based project. In a nutshell, you paste this line of code in a couple scene files:
local lm = require("ogt_levelmanager")
And then in the scene where you want your player to choose a level to play, you add this:
lm.init(group)
Yeah man, that's the basics! Of course, you'll want to tweak OGTLM by adding your own graphics, but I've also made that easy with a set of variables at the top of the library file. Here's a chunk to see what I mean:
k.backgroundImage = "background.png" k.lockImage = "lock.png" k.fontName = "Helvetica" k.fontSize = 36 k.totalLevels = 30 k.numCols = 4 k.numRows = 2
There are quite a few variables you can tweak, but otherwise you don't have to mess with any of the actual code in the library.
Watch the overview video and see how it works!
There have been changes in Solar2D and OGT Level Manager since the videos were recorded. Please read the following so you know what's what! :)
The library is actually inside a complete project that you can download and run inside the Solar2D simulator. In fact, the tweaking we’ll be doing in some of the tutorials here will use that project.
I’ll be straight with you — it’s easier to use OGT Level Manager in a new project than putting it into an existing project. Mainly because your existing project is (probably) full of hardcoded stuff that was never designed to be generic. I’ve done both and will show you how I retrofitted an existing project, but for now let’s look at starting from scratch.
If you want to kind of follow along, get a “blank project” ready to go — main.lua, config.lua and build.settings files. Also a couple storyboard scene files called chooselevel.lua and play.lua (you can use the blank storyboard scene file from the Corona Labs site).
Most of the time when I record videos I’ve done the steps at least once ahead of time so it flows more smoothly.
Not this time.
I wanted a “warts and all” look at how to pull an existing level selector out of a game and replace it with OGT Level Manager. But I picked the wrong project — one that I’d written using the older version of Solar2D that still allowed setReferencePoint() and things like that. D'oh!
So you’ll see more “oops!” moments in this video than just about any other. But I left them in because if you do the same (retrofit an older project) you’ll probably run into the same things.
Here's a look at some of the utility functions available in OGT Level Manager. These will make level handling much easier.
In the Documentation section of this course you'll find a written reference for the utility functions. That will come in handy when you want to quickly look up the available functions to help create your game.
These videos are for people who want to take OGT Level Manager a bit farther and do more than just the basics. If you’re still a beginning Solar2D developer these techniques might be beyond you right now, but they’re here when you get to that point.
OGTLM is usually used with the same single image showing for each level. But if you need a level selector where each level select image is different, that can be handled with OGT Level Manager, too.
[Note: At about the 2:20 mark I said something that's not quite right (in the current version of OGTLM). The code does NOT pick up the width and height of the custom image/group to be displayed. Instead, by setting k.levelSquareImage to nil you tell the library not to set the width and height. Then you need to set k.tileWidth and k.tileHeight in the variables to whatever dimensions you want. Which means each level image/group can't be a different size, but I don't really think that's much of a limitation. ]
These videos are for people who want to take OGT Level Manager a bit farther and do more than just the basics. If you’re still a beginning Solar2D developer these techniques might be beyond you right now, but they’re here when you get to that point.
If your game allows different people to play and keep track of scores, levels unlocked, etc., for each player, OGTLM can help you handle that.
These videos are for people who want to take OGT Level Manager a bit farther and do more than just the basics. If you’re still a beginning Solar2D developer these techniques might be beyond you right now, but they’re here when you get to that point.
Some games have multiple “worlds” the user can choose from and then levels inside each of those worlds. Using OGT Level Manager you can easily put that together.
Many games are based on levels, and most of those games have a screen where:
The user can choose a level to play.
Some levels are locked until previous levels have been played.
A number of stars are shown based on the player’s score for that level.
One of the most commonly asked game dev questions is, “How do I lock and unlock levels?” Until now I’ve tried to explain the concept to people but now I have a better answer…
The Outlaw Game Tools Level Manager
OGT Level Manager is a library you include in your game and then “tweak” some variables to specify which graphics you want to use, how many total levels you have, etc.
And then in your game it’s as easy as this to unlock the next level when the player has finished with the current level:
unlockNextLevel()
OGT Level Manager keeps track of which levels have been unlocked and it’s shown automatically when the player goes back to the level select screen!
If you’re using a “stars” system in your game, OGT Level Manager will even keep track of how many stars were earned on each level. And it’s this easy to use:
updateStars(2)
That one call will let OGT Level Manager know the player earned two stars on that level and it will automatically show the correct number on the level select screen.
Here are some of the features found in this library:
No limit to the number of levels.
Multiple pages with next and previous arrows.
One to three stars shown on levels (optional).
Use your own graphics. Using smileys instead of stars? No problem!
Tweak the position of level boxes, arrows, stars, numbers, etc.
One Composer scene with data loaded for each level? Works that way.
One Composer scene for each level? Works that way, too!
Basically, I’ve made it easy to drop in your own graphics, and then tweak the position of any that may need it by setting variables. Changing the actual code is not necessary.
Requirements:
Solar2D.
Use Composer for scene management in your game (built-in to Solar2D).
OGT Level Manager comes with two sets of tutorial videos.
The first set is for those people who want to just use the library in their games and don’t really care about the stuff under the hood. These are the “basic how to use it” videos.
The second set dives in behind the scenes and shows you how things work. Just a word of warning, for this second set of videos I’m assuming you have at least an intermediate knowledge of using Solar2D. I don’t start clear back at the “this is how you display a graphic” point.
You will save a LOT of time by using OGT Level Manager -- time you can spend working on the more fun parts of your new game!