May 14, 2012

XDE "mfplat.dll is missing" solution

So if you have that problem then your Windows Phone Emulator won't start, and if you try to run it directly you have "mfplat.dll is missing" message, then there is solution that helped me.

Search your %windir%\winsxs directory for "mfplat.dll". It most certanly will find it in something like this, as on my Windows 2008 Standard R2 x64:

c:\Windows\winsxs\amd64_microsoft-windows-mfplat_31bf3856ad364e35_6.1.7600.16385_none_529f8a546d2657c9\mfplat.dll
c:\Windows\winsxs\x86_microsoft-windows-mfplat_31bf3856ad364e35_6.1.7600.16385_none_f680eed0b4c8e693\mfplat.dll

then take 32-bit version of it, and copy it into "%windir%\SysWOW64" ("%windir%\System32" for 32-bit OS).

The other way is probably to install "Desktop experience" feature (on Windows Server OS).

May 10, 2012

Chasseur, part 1

Since the development of my previous project ended, I'm moving forward to my next project. As I mentioned in my previous post, I was thinking about a Super Spy Hunter (SSH) game clone. Now it's final, I'll be making SSH clone.

You can view full game completion here:


So now I'm at game architecture design stage. The very first thing I bumped into was: how to store such large levels? First of all I thought about somewhat natural solution to this: tile maps. But this maps would be quite large, and, more major thing, they make impossible (at least as I understand it) some features that original game demonstrates. The most natural way to do similar thing is to follow original game design, and the original game was a 256Kb ROM (amazing isn't it?). This is certanly not enough to store all maps as a tiles. I was also thinking about programmic generation of levels and user ashes999 make me certain, that reference game indeed uses some kind of procedural generated content. It can be like this:
while next road section exist:
    get road section data;
    set road generation options (borders type, road type, etc);
    set road section lenght;
    while not end of a section:
        generate road;
        apply pseudorandom eye candy stuff;
This way levels can be described in a pretty compact way.

May 8, 2012

Digger.NET in development, part 8

So the latest additions to the game looks somewhat good. Digger is drawing tunnels, eats crystals, and level advancement on eating all crystals.


However, I'm increasingly frustrated with original source decoding, since this process is actually takes more time, than actual coding of it in XNA. I'm not very excited in spending large amounts of time on this, since I want advance further into XNA. So I've decided to halt this project indefinetely. This was a good learning project, however I must admit it was a mistake to attempt to make a exact copy. I lost significant amounts of time studying unmaintainable code instead of something more useful. Yet now I feel much more stronger then I was at a start of a project, so now I'm thinking about next steps.

Most probably I will spend some time learning XNA using books, articles and tutorials. While doing this I will thing what kind of game I will try to make. I'm thinking about something like Super Spy Hunter, I actually really like this game:



But this is certanly not decided yet.

May 5, 2012

Starbound biomes update

Tiy has updates Starboud site with Biomes post. He demontrates procedural generation of a somewhat random Biomes. Random here means that a set of sprites are combined to form new structures. And of course additional color can be applied to sprites. While still this is an incredible work, I'm a little unimpressed, becausue the biomes indeed look a little.. artifical, I would say. But this is still an early stage, and not everyone can show such thing even hand made, and this is a semi-procedural generated! So this is still very cool.

Also for now it's still not 100% confirmed that you will be able to dig earth, as in Terraria. I mean it wasn't in any video or screenshot, and nobody from a team confirmed that this would be possible. However from what it looks like, I would say you can.

XNA game testing

In this post I will try to accumulate different info on game (preferrably automated) testing. I will add generic articles on a subject, and specifically on testing in XNA, but not for other freameworks/languages.

Automated game testing is particularly difficult to implement, yet games are usually very hard to test fully. So even partial core testing is helpful.

First will be two topics on Game Development StackExchange. Unit Testing a C#/XNA Game Project and How common is automated testing in game development?. They also contain a handful number of link to some more articles on this subject.

As always you are welcome to add your finding on a subject in comments, so I can extend and improve the list.

Terraria, second encounter

Redigit, after some 3 months, appeared again on Terraria Online today with extemely intriguing private profile post, which says just "Planning something big..":

redigit planning something big..












Despite all my respect for his courage, plain and somehow awkward honesty, I had a strange feeling about all that situation. And now that little post is a relief! Looks like Redigit just took a really big vacation with his family after that incredible pace from the moment terraria was released to Terraria v1.1.2. That's was just 8 months. Eight months!

I think he needed this time to evaluate current situation. I don't think he wanted to halt development in such a way. I think something went not so good within a team. Particularly Tiy (main spriter) left to potentially rival project Starbound. BTW Starbound site is updated today with new info (good coincidence for starting conspiracy theory). Also I have a feeling that Terraria main codebase was of a rather low quality (negative fact of rapid development), so it's harder and harder to add new features and fix bugs. Major refactoring would require significant amount of time, which is probably not worth it. Stopping project this way is also hurting his reputation seriously, I'm pretty sure he understsnd it even better than me, so there surely was some serious s**t which forced him to such decision.

Anyway, that happened and so be it. I'm just happy that Andrew didn't took a three year vacation, but just three months.

As for what he is planning.. I have no idea. For now I have just some guesses (in decreasing probability order):
  1. "Teh final" big Terraria bugfix patch for 1.1.2 version, signed as final version;
  2. Terraria 2 (or put any other name here) announcement;
  3. Announcing new team and continue of Terraria development.
Items 1 and 2 can be announced together.

May 4, 2012

Digger.NET in development, part 7

It's hard to monitor debug information in games using standard approach, using Visual Studio debugger breakpoints, watches, etc. for example. This breaks game cycle, hides visual output and useful only for catching special conditions. Also some data, like enemy AI calculated path is hard to analizy in it's internal form. I formulate this problem in this post at gamedev.stackexchange.com. This incredible lecture by Bret Victor shows why instant feedback (in our case it's just instant debug) is important, you definetely shoul watch it. This lecture impressed me, and that's probably how I begin to think about visualizing debug information.

Using techniques described in post I can visualize objects information like this:


The cell coordinate for digger object is displayed above him, and moves with him.

May 1, 2012

Complete XNA games sources for beginners

If you are beginner in game development it's invaluable to study someone else's game code. There are countless reasons to do that, both technical and let's name it "psychological" aspect. From technical point you learn: how code is organized, architecture, some useful tricks, how much code is required for some features. From "psychological" point you learn one, but very important thing: nobody's code is perfect, after that you will stop think about "real" games as some perfect creations, some of them are sooooo far from it, yet they still successful. If you are lucky enough you will find some developer notes on development process, or project organisation.

Sources value however, at least for me, differs greatly. Firts of all, big games sources are almost useless for you. You won't be able to understand them in some reasonable amount of time (if you will be able to compile them, ahem). Small games, on the other hand are useless too, they just don't big enough to introduce some basic architecture required to fight complexity. Preferrable size is somethere much below medium size. It actually depends on your current knowledge (I mean if you learn XNA for half a year you still a beginner usually, but you know much more then someone who learn it for a two weeks).

That said, the highest value (and least available) have complete commercially successful games. If you want to make your game at least interesting, and at best be able to sell it, this games provides such examples. However if game is free or open source, but still popular it's probably isn't much worse. The least valuable (and most available), but still useful are open source game project which tend to be "in-development" state permanently. This are only interested on final stages, then game is at least 50% complete.

In this post I will store (and update) a collection of links to some such sources. It's only XNA projects, sorry:

1. Sources to Molly the Were-Zompire RPG game can be found here. Zeboyd games is actually a cool retro-style game company check them out. This one is actually interesting one. First of all it's a XBOX targeted game. Second it's just that case then you absolutely should learn how you should not design your game. And third it's a text only (almost) adventure game! Again, this game is a commercial game, and it is successful. This is a lesson every gamedev should learn.

2. Space Defender. This is a much smaller game, this one, however, in contrast to previous, very well designed (for it's size). Everything is neatly organized. But again, in contrast, to previous this one will not interest any gamer.

3. Asteroid Outpost. A live repository at bitbucket. Good project organization, a lot to learn from.

4. A collection of projects at CodeProject. Most of them are not the games (however there are some complete games there), but also still useful to learn some specific area.

5. Pixel Man 2 by Nick Gravelyn. Cool, almost complete game with excellent sources (Nick worked in Microsoft in XNA team).

P.S. I would gladly accept and include any other valuable XNA game sources, just mention one in comments. Thanks!

Digger.NET in development, part 6

It was a little slowdown lately, however some key aspects of the game was implemented.

First of all tunnels drawing was implemented using RenderTarget2D technique. This also required some work on Digger.Convert project, since I didn't converted all required sprites. Now I'm tossing objects around trying to decouple logic and drawing parts of the game. Architecture never was my strong side unfotunatelly. Still I'm not letting it just go, if I feel something is wrong I stop and try to think how to manage it. I'm at the very early part of development, so decisions I make here is very important. As for visual progress, it can be seen as this:


It's a main game screen being initialized. It draws initial tunnels and gold bags.

Here is also some thoughts about project goals. I abandoned idea to fully understand and then, improve original code. This task not only seems now as extremely hard, it's also boring, and doesn't give me valuable experience I want. So now I concentrate on XNA port, and study source only to understand game logic. It also seems that I will not port many features of a Digger Remastered, because it's not looking interesting for me. I will port single player gameplay and then move further into modding of the game, or will start some new project (maybe both). Copying is hard, it's a good experience, but it's not much fun, then you create something new.