So yesterday I started detailing the AI that's going to kick the player's ass (or at least let him win a few times) and today I'm going to look at another hurdle keeping me from a public demo, the in-game tutorial.
The... you know
Galaxy Conquest never sounds to me like a hard game to play, but of course I am one of the original designers of the game. So in order for someone to pick up the basics of the gameplay I'm going to need to teach them.
My team and I have discussed a variety of ways to do this in the past, mainly focusing around a scripted level or something like that. I've never liked that idea at all. I would prefer to let the player just play the game, and have the game tell the player what he's doing when he does it. This just seems a lot more intuitive and makes the game look "smarter" than a step-by-step how-to guide.
So how does it work? Well the basic idea revolves around the game being able to detect the user doing all sorts of things in the game for the first time. When the event takes place, a dialog box pops up explaining what's going on.
A topic may have a few pages, each with its own descriptive picture, to help explain the concept behind whatever action the user just took, be it placing a planet, exploding a planet, etc etc.
It may seem like a hit-or-miss method, but the purpose of this tutorial is to explain the basics of gameplay, and so that means that in any given game, the player is always going to make use of or bear witness to the basic concepts. Plus, the AI will remain on high-difficulty defensive which (theoretically) based on yesterdays post means while it won't work hard to beat the player, it will work hard to not let the player beat it.
The AI can trigger a few of these events, like if it sets off a Supernova or discovers a hidden system, but most of the events will be triggered by the player.
Actually implementing this will be pretty simple, I'll just use the database to store all the relevant text, image and page info and create the generic dialog box. Then all there is to do is embed some code in each of the action triggers (like the function that places planets) that pops up the dialog with the proper info pulled from the database.
Once the game has detected that the player has viewed all the help boxes, it'll switch the AI over to a more aggressive state and let the game play out normally.
Seems simple enough, although we'll see if it actually works when tested. Writing a scripted tutorial just seems lame to me, it would be much better for the player to just be able to play the game and not have to be confined by the game telling her to do this and do that.