Apr 29 2010

In-game tutorials and exploring alternatives

The vast majority of all games out there requires at least some form of knowledge in order to play them. Some games, like the popular indie title Canabalt (http://www NULL.adamatomic NULL.com/canabalt/), require only a single line of instructions. Other games might not be adequately explained with over a thousand. Even games that are only slightly complex face the problem of having to educate new players — at least if they care about faring well with the casual crowd.

There are several ways of doing this. Back in the days, it was usually done by a physical manual that came with the game. That way, any in-game explanations could be omitted to save time. Many games even went so far as to expel the entire story to the manual. This approach is no longer viable. Especially for digital distribution, requiring players to refer to a separate manual (even if it’s a PDF) is madness. It simply won’t happen. Thus comes the need for in-game education.

A classic approach to this is tutorials. In their rawest form, these are the things that demand such ridiculous things as moving the camera or scrolling in order to progress. When done horribly wrong, they are an unskippable part of the actual game. Some tutorials are well-made, teaching things in a sensible order, and allowing the player to skip through parts. True to most tutorials, however, is that people simply won’t go through them!

I often find myself pondering on whether or not I need to go through the tutorial before playing a game. Usually, I actually decide to go through the tutorial, but that ship usually sinks about the time when they ask me to move the camera around. This is quite unfortunate, because even experienced gamers are likely to need some guidance in most games. I know I do, but going through excessively banal tutorials is simply impossible for me.

Another way of teaching the ropes is to disguise the tutorial as part of the actual game. When done right, this technique is really good. Batman: Arkham Asylum (http://en NULL.wikipedia NULL.org/wiki/Batman_Arkham_Asylum) is a good example of how to weave tutorials into your game without giving much of an impact at all. Today, I think most games that bother with tutorials are integrating them like this, with varying results. In some cases, instead of cleverly tricking the player into doing your tutorial, game makers ruin the early parts of their game by dumbing it down for too long!

In Dwarfs, we’re trying to go for a slightly different approach: The Codex. It’s not a new concept, but we’re attempting to kick it up a notch. Our vision for it is a single place where you go if the tooltips are not enough. Instead of just having some text about random things in the game, as many such in-game encyclopedias, we’ve integrated short video tutorials on many entries. For a demonstration of both basic and advanced techniques, the player can click on the thumbnail to start a narrated video demonstration. Genius! We’re certain to receive at least one Nobel prize for this one!


The "Awesome" entry would have a picture of this recurse into infinity!

As is apparent from the screenshot, the Codex is not yet complete, but the foundations are all there — including a couple of diggers dancing as a wide-screen feature! We think this will work great, as it will be a breeze to look up anything that might have slipped your mind, as well as learning new concepts and game mechanics. We’re really thrilled to see how it turns out, and if it works as well as we hope!

Of course, everything is loaded from an XML-file, in order to facilitate the inevitable translation into all languages in the world!

Until next time, folks!

Apr 26 2010

GIMP Concept Art Tutorial

Power of Two is proud to present the first installment of Robin’s open-source tutorial series: speed concepting using the free graphics tool GIMP (http://www NULL.gimp NULL.org/).

The tutorial is divided into three parts.


<object width=”640″ height=”385″><param name=”movie” value=”http://www.youtube.com/v/D_qg7KBV8ek&hl=sv_SE&fs=1&rel=0″></param><param name=”allowFullScreen” value=”true”></param><param name=”allowscriptaccess” value=”always”></param><embed src=”http://www.youtube.com/v/D_qg7KBV8ek&hl=sv_SE&fs=1&rel=0″ type=”application/x-shockwave-flash” allowscriptaccess=”always” allowfullscreen=”true” width=”640″ height=”385″></embed></object>

Apr 21 2010

Developing with C#/XNA

When you’re going to begin development on a game, the very first questions that appear are “For what platforms?” and “What tools will we use?”

If you decide that Windows-based PCs are the best target, the options at your disposal are staggering. When we were trying to pick a development environment for “Dwarfs”, for each language, engine and wrapper, we asked ourselves:

  • How fast is development?
  • How much control does it take away?
  • How powerful is the tool?
  • How big is the user base and community?

Getting answers to these questions wasn’t exactly a walk in the park. After some pondering, we decided to use Microsoft XNA (http://en NULL.wikipedia NULL.org/wiki/Microsoft_XNA) to do some prototyping, since I had previous experience with C# and knew that at least the programming language was extremely optimized for fast development. After using XNA to develop Dwarfs for four months as a school side-project, I can attempt answering some of them.

How fast is development?

Extremely fast. It’s so fast that developing in C#/XNA almost feels rude towards other students, who are struggling with shoddy software such as Torque, or daunting tasks like writing their own engines from scratch. You can be up and running with XNA in literally minutes, if you know what you’re doing.

And yet…

How much control does it take away?

Surprisingly little. I would say XNA hits the balance perfectly between handing you the tools to build your game, and then backing away so that you may build it as you wish. How bold you’ll be when developing is entirely up to you, and XNA accomodates most scenarios. You don’t need to know what a shader is, for example, to efficiently render something to the screen using the GPU. If you want extra control (which you likely will), you can just replace the default shader with your own. Most parts of the engine (if you could call it that) is like this. If you don’t like a module, you can usually just rewrite it yourself, if you have the skill. I feel the most prominent loss of control is instead due to the C#-language. The Big Brother memory management is frustrating at times, but the ease of use more than makes up for this to me.

How powerful is the tool?

This is one of the questions that are difficult to answer. It’s certainly very efficient at what it does, with pretty optimized rendering and so on. You can’t access DX10 or above, though, and I imagine that many advanced programmers consider C# less powerful than C++. For development of the sort I’m doing (small scale indie), it’s perfectly suited.

How big is the user base and community?

Very big. This question might seem odd to some. The user base shouldn’t matter that much as long as the tools are good, right? Wrong. The process of developing a game is very complex, not only from a technical viewpoint, but also from a spiritual perspective. What I mean is that morale plays a huge part in how efficient and ultimately successful a team is. Results are the best source of morale. If you spend one day making something great, you’ll spend the next day making another great thing, because seeing your efforts bear fruit gives a great high.

While tangiable results are an awesome source of morale, one of the WORST drains are things not working. When you sit there wondering why in the nine hells your perfectly skinned model fails at compile time with some arbitrary error message, the sun isn’t shining quite as brightly as it did a few minutes ago. Having a significant community is key here, for several reasons. For one, a quick search on Google or the XNA Forums is likely to yield great results, and if you can’t find an answer that way, you can always post yourself. In the case of XNA, not only is there a strong community (http://creators NULL.xna NULL.com/en-US) ready to help, but the actual XNA Team is paid by Microsoft to hang around the official forums. Perhaps most notable is Shawn Hargreaves, whose blog (http://blogs NULL.msdn NULL.com/shawnhar/) is an excellent source of good information.

But certainly there must be some drawbacks?

Up until this point, it must sound as if I’m being paid by Microsoft. I’m mainly positive to C#/XNA, because there is so much to be positive about. Among some minor issues, there is one big downside: compatibility. XNA is based on DirectX, and C# is developed by Microsoft. As such, games made in XNA will be played by no apple or penguin. Another slightly annoying thing is that any PC-user will need to download and install the redistributable. I’m fairly sure you can wrap it into your game installer pretty neatly, but still, I think those measly 8MB could be included in the DirectX-installation.

Well, that’s my first TL;DR-post, and I’m sure there’ll be more of them coming on relevant subjects! To anyone who stumbled in here wondering what language to learn if you’re new at programming and want to make games: I think C# / XNA would be perfect for you.

Apr 20 2010

Power of Two is online!

This post marks the moment Power of Two entered the realm of cyberspace! Here, we will post DevBlog-updates and random ramblings about whatever occupies our minds. Currently, our main WIP is the arcade-strategy game “Dwarfs”. And yes, you may spell it like that :)

Stay tuned!