Options:

New Article Contest on Ziggyware

Ziggyware has starter a new XNA Article Contest, with great prizes. Go and see more details by clicking on the image below.

contestlogo[1]

New Sample: XNA GS 3.1 Video Support

You probably heard by now that XNA Game Studio 3.1 is out.

After a quick download, uninstalling 3.0 and installing 3.1, I quickly put together this sample that shows how to use the new support for videos.

More info on the sample’s page, here.

VideoSample 2009-06-11 21-38-04-88

Or, if you’re in a hurry, here’s the direct link to the download: VideoSample.zip

Support Ziggyware!

Ziggyware.com is one of the best sites for XNA resources, including Articles, Tutorials, News and even an Image of The Day section where you can look at what other people are doing.

But that’s not all. One of the things that sets Ziggyware apart from others is that about two or three times each year, it holds a “XNA Articles Competition”. The result of this competition usually takes form in lots of top-quality tutorials and articles about stuff you can do with XNA. Ziggyware wants to repay the talented people that make these tutorials, so he gives them prizes. Because of this, from time to time, there’s a call for donations, and now is such a time.

If you like to use the articles on Ziggyware, and if you want to help the site grow, prosper and continue to provide a constant stream of good XNA articles, you now have the chance to do so, by going on Ziggy’s site, and seeing how you can help.

ziggyware[1]

Status Update

It’s been a long time since my last post, and I’m sorry about that.

However, I’m currently busy with finishing my Bachelor’s Degree Project for my university, so until that is done, there probably won’t be any more updates. After that, I’ll get back to XNA, and hopefully I’ll release more content and samples.

Until then, have fun with your programming! ;)

Visit XBLCG.info … Now!

Anyone who likes XNA and Xbox Live Community Games should visit the new version of XBLCG.info right now. It’s a great site made by Nick Gravelyn, Scott Wendt and Björn Graf, where you can see information about all Community Games in one place.

Untitled

Mass Effect Dialogue Sample

Finally, the dialogue system sample is here.

In this sample, I tried to replicate the dialogue system as seen in Bioware’s Mass Effect. The main aspects that I intended to implement were:

  • Dialogue Wheel, showing short previews of what the Player Character will say. You don’t see the whole answer before you choose it. Only after you choose it, you see it spoken by the player’s character.
  • Investigate branch. In a dialogue “hub” (a place where the player can make choices), there may be one or more topics which do not count as “choices”, but rather as information gathering. They are accessible through an “Investigate” option on the Dialogue Wheel
  • Choice on the right side of the wheel almost always have a certain meaning. The Top-Right choice is usually a good choice, the Center-Right is a neutral choice, and the Lower-Right is a renegade choice
  • Besides these two features which are defining for Mass Effect, the normal functionality you would expect from a dialogue system in an RPG.

One thing I wanted to do, but didn’t get to is a more detailed handling of the preconditions and consequences of a choice. As you can read in the sample’s page, each dialogue branch has these associated, as collection of Key-Value pairs. I decided to simply shows the consequences on the screen. In a game, these would be handled by some other module of the game, such as a scripting system, or quest system, or something like that. Thus, some choices could be unavailable (based on the precondition) and some choices may lead to very different results, affecting immediate events, or events later in the game (using Consequences to set flags). This is really game-specific, so an thorough exemplification of what can be done with them is hard to do in a sample.

To develop the class hierarchy (shortly described on the sample’s page), I first began by playing a few dialogues in Mass Effect, and carefully analyzing what was happening as a developer, not as a player. So I decided that I’ll need some class to represent a line delivered by a character. This includes the sound and subtitles, and I named it a SpeechLine. My class also contains some ID that should represent the character’s ID. In a more evolved system, a SpeechLine would also contains stuff like camera position, camera target, character animations, etc. If all these were available, cutscenes could be created as a sequence of SpeechLines. This is somehow outside the scope of this sample, but by looking at dialogue this way, you can see the need for a DialogueBranch, which in my code is a sequence of SpeechLines.

So player choices are tied together using DialogueBranches. But how do you represent a player choice? For this, I used the class DialogueHub, which contains the IDs of the DialogueBranches which are options available to the player in that hub. One such DialogueBranch would carry the conversation to another hub, thus advancing the dialogue according the the player’s choices. To handle the Investigate topics, I simply added them as DialogueBranches which don’t lead to another hub, but rather return to the hub that they were called from. To make this visible, the “Investigate” sub-hub is available to players.

All information related to a dialogue is held in the Dialogue class, directly loadable from an XML file using the Content Pipeline. In a real game, you would probably want to load this using a separate ContentManager, so you can unload all the dialogue resources once you’re done with them. After loading a Dialogue, you can start playing it with the DialoguePlayer class. I split the functionality of this class in two main classes, the BranchPlayer, and the HubPlayer. For drawing the dialogue interface, the DialogueWheel class is used. Simply modifying this class would cause the user interface to look different.

The sample’s page can be found here. Have fun!

About my last post…

I’m happy to say that my last post was just an innocent April’s Fool joke. If anyone was offended by it, I apologize.

With that, I’d like to thank everyone for their support, and assure everyone that it’s all ok: I’ve been renewed as an XNA/DirectX MVP. Also, I’d like to say that I love the XNA community, and I would contribute to it even if there was no MVP title. I’m doing it for the games and the community, not for the title. Even if Microsoft hadn’t renewed me, I’d still spent most of my free time coding stuff in XNA, reading the forums and responding where I can, and trying to release helpful samples.

I also take this opportunity to thank the XNA team again for their hard work and great product. I’m proud to be part of this community, and glad that I can help other people when I can.

Thanks again, to the XNA team, and all community members!

Dear Catalin Zima, We are sorry…

I was waiting for news about my MVP renewal all day, and now I received a sad email from Microsoft. Here’s a part of it: “Dear Catalin Zima, we are sorry to announce you that you have not been renewed as a Microsoft MVP for 2009.” Then it goes on saying that I’m too kind with the people in the XNA forums, and that I have to be more like ZMan to ever have a chance to get the MVP title in the following years… :(

So that’s it, I’m dropping everything XNA and I’m going to start doing samples and tutorials for the iPhone only. Expect a tutorial on “MMORPG development for the iPhone using distanced rendering”.

Yeah, right…. ;)

Video Games and Choice

I’m not usually posting links to stuff here, but I really think this one deserves it: a nice video about Problems and Choices in game design, in a format similar to Zero Punctuation.

Here’s the link. Have fun watching it!

Small update

Just wanted to let everyone know I’m back from my little extended vacation after the MVP Summit, and will soon get back to working on some more XNA samples.

The next sample should cover a feature from one of my favourite games.

See you soon…