Implementing the ingame tutorial

Now that the open beta of “Phase 2” has been downloaded a few times (with a 10:1 ratio between Windows and Linux) it seems that people like it. But one thing I’ve heard several times now was the lack of a tutorial. Since the game is pretty complex, especially compared to the current games, many people are finding it hard to get into the gameplay and actually win a game (I guess it’s the same thing I felt when I played my first matches of “Panzer General” almost 20 years ago).

So I started (re)implementing an interacitve ingame tutorial. “Phase 1” had such a tutorial, but it was pretty basic and since so much changed for “Phase 2” I decided to start from scratch. My plan is to have an ingame tutorial that teaches you all the important parts of the game so that you can hop in the game and win after working through the tutorial.

And as usual this turned out to take much much longer than expected. At first I hoped to get it done in a week (after my work), but I’m now in the third week and I’m roughly half-way through. The index of the tutorial contains 70 (!) chapters, and that number may grow while writing the content and scripts for the tutorial, and it already contains over 10,000 words for the tutorial texts (not including scripts and such for each tutorial step). And since I’m doing the tutorial (like the rest of the game) in two languages (german and english) it takes ages to get it done. I’m even spending my breaks at work to translate chapters from german to english to get it done.

Technically the tutorial is stored in an xml and divded into several main chapters with tutorial steps as their subchapters. Each subchapter contains a text and a subnode for commands that are executed when this tutorial step is started. These steps include opening up a window, changing the game’s view, highlighting UI elements, creating divisions, constructing buildings, etc. So the tutorial contains a very light-weight and simple scripting engine that allows it to be interactive instead of just text explaining stuff. I’m also thinking of expanding the tutorial so it can work as a contextual help too, so that you can e.g. open up the help on the tutorial window and you get the content and highlight from the corresponding tutorial step, which could be a nice addition for players not to keen with the gameplay.

So the next release of the game will finally (again) include an interactive ingame tutorial (which is much better than the external html manual), along the new space backdrops and some bugfixes. Though I don’t have a date for you yet, but my estimate would be “within the next two weeks”.

Implementing the ingame tutorial

Redoing backdrops and tuning globe shaders

The backdrops of the different nations have always annoyed me since I started to work on a 16:9 (and currently 16:10) widescreen display. When I created them way back for “Phase 1”, I made them with Corel’s Bryce (a pretty old version) and rendered them for 4:3 and 5:4 displays. And I always wanted to redo them since starting to work on “Phase 2“, which has been some time now, but never actually got around this and never had a clue what to do.

And after witnessing how bad they actually look on a  big screen I decided it was time to replace them, and also to get rid of the water plane. Though the water plane was a nice visual gimmick with it’s shaders and reflections, it always felt unnatural to have the globe float above an infinte waterplane. And it also hindered gameplay somehow since it could obstruct the lower regions of the globe.

So along with the old nation backdrops I also removed the water plane and went with a gorgeous space skybox instead (I used this great open source tool to create the skybox). It feels far more natural to watch earth from space (though the nebulae around it is pure imagination and not near relity), with a backdrop that actually rotates with the globe (instead of the old static nation backdrops) and no oddly looking waterplane that the globe could be “dipped” into. Just take a look at the screenshot and you see what I’m talking about :

And if you take a close look at the globe you may notice that it looks a bit better than in the last release. That’s because I worked on the globe’s shaders to make it look more realistic, and also tuning colors and saturation of the different textures. Also note that I restored the old day/night-line that moves over the globe like in the real world again.

And along with tuning the visuals of the globe I also got rid of some fixed-function stuff that’s now done in the shader like the cloud cover. For years this has been an additional sphere that was just layered on top of the globe. I added that functionality to the globe shader (which is now using 6 different textures) giving a slight performance boost.

So what do you think of this new backdrop? I like it much more than the old ones, and it feels more natural. Note that I’ll try to get a video of the updated graphics up in the next few days, as it looks even better in motion.

It’s not completly finished yet (I quickly implemented the changes yesterday and this evening) and I want to add some dynamic objects to the scenery. E.g. a glowing sun in the far background as well as the moon circling above the earth. And yes, I even plan to use that moon as part of a global project 😉

Redoing backdrops and tuning globe shaders