So, I suppose sooner or later every developer out there will face the task of writing a installer for his product. I you are working under Windows, Windows Installer seems like a reasonable choice. I'm not so sure about it now.
Now, there is no some sort official tool from Microsoft for making Windows Installer packages. Huh? Seems like that. Presumably I didn't dig enough for that, so far I found just this nonsence.
But then, WiX! Which is infamous for being used to create Microsoft Office 2003 installer. And it's also internal Microsoft product as well. Certanly it's a big YES compared to nothing. It's even integrates into Visual Studio and adds custom projects for creating installers. And you actually start to think that will be a nice journey. But then you try to find some tutorials, examples and documentation. It is awful, all of these. If you add (but I suppose, it's the reason in the first place) that WiX markup is extremenly unintuitive, complicated and confusing then you will understand that frustration means. Contrary to what you might expect, WiX Toolset it's a pretty low-level tool, which must be backed with good documentation and comprehensive and complete examples.
The feedback is thru this mailing-list style forum with horrible desing. The leading toolset man Rob Mensching is rich for caustic comments like this. And, as you can guess from a thread, WiX Toolset is OK with bugs that lasts for more than 2 years.
The thing that finally really, really helped me out was WiX: A Developer's Guide to Windows Installer XML book. And I'm not sure how much more time I would spend in misery without it.
So for me it's official, WiX Toolset is teh worst tool I've ever encountered in all my developer experience so far. It doesn't mean however you shouldn't use it, but unless you are ought to use Windows Installer, you can consider some other tools out there.
P.S. Useful tips on MSI.
Aug 28, 2012
Aug 25, 2012
Fixing XBLIG (and Windows Phone) forum links
As usual, working with an elephant finesse, Microsoft, for some obvious reasons decided to split Windows Phone and XBLIG forums. This results in incredible amount of links on the web are being broken. Oh, this is so nice.. The good part however is that, you can replace old forums.create.msdn.com/forums with xboxforums.create.msdn.com/forums in address and make it to the desired topic.
As for unfortunate ones who were looking for some topics for Windows Phone, the things here are much simplier: all topics are lost somethere, or just gone, I don't actually know.
Back to XBLIG. If you are using Firefox, you can use Redirector add-on, as described here. Just in case, I'll duplicate the rules here. Goto add-on options and add two rules:
Rule 1
Example URL: http://forums.create.msdn.com/forums/p/0001/0001.aspx
Include Pattern: http://forums.create.msdn.com/forums/*/*/*
Redirect to: http://xboxforums.create.msdn.com/forums/$1/$2/$3
Pattern Type: Wildcard
Rule 2
Example URL: http://forums.create.msdn.com/forums/t/0001.aspx
Include Pattern: http://forums.create.msdn.com/forums/*/*
Redirect to: http://xboxforums.create.msdn.com/forums/$1/$2
Pattern Type: Wildcard
As for unfortunate ones who were looking for some topics for Windows Phone, the things here are much simplier: all topics are lost somethere, or just gone, I don't actually know.
Back to XBLIG. If you are using Firefox, you can use Redirector add-on, as described here. Just in case, I'll duplicate the rules here. Goto add-on options and add two rules:
Rule 1
Example URL: http://forums.create.msdn.com/forums/p/0001/0001.aspx
Include Pattern: http://forums.create.msdn.com/forums/*/*/*
Redirect to: http://xboxforums.create.msdn.com/forums/$1/$2/$3
Pattern Type: Wildcard
Rule 2
Example URL: http://forums.create.msdn.com/forums/t/0001.aspx
Include Pattern: http://forums.create.msdn.com/forums/*/*
Redirect to: http://xboxforums.create.msdn.com/forums/$1/$2
Pattern Type: Wildcard
Aug 14, 2012
OUYA: first indie console
The phenomenon of indie games is out there for some years, and it's a great thing. However the only true indie platform was only PC. And PC is a great platform, but only for a personal amusement. But it's nothing compared to fun then you blay with you friend side by side, fighting to each other or against computer.
Since the great crash of 1983 the main game consoles were closed for indie developers. This wasn't major concern up until now, since indie devs are flourishing.
And OUYA perfectly hitted the spot. It's cheap and open to everyone. It's not that powerful, but indie games usually doesn't need that much power as AAA titles. OUYA is greatest thing that happened to console market for some last years. It will boost competition between console market players, which will be good for everyone. It will bring tons of new, beautiful games to people by creating an easy-to-enter market for indie developers.
It's success is inevitable, because it's just filling last missing piece in a complete puzzle.
Since the great crash of 1983 the main game consoles were closed for indie developers. This wasn't major concern up until now, since indie devs are flourishing.
And OUYA perfectly hitted the spot. It's cheap and open to everyone. It's not that powerful, but indie games usually doesn't need that much power as AAA titles. OUYA is greatest thing that happened to console market for some last years. It will boost competition between console market players, which will be good for everyone. It will bring tons of new, beautiful games to people by creating an easy-to-enter market for indie developers.
It's success is inevitable, because it's just filling last missing piece in a complete puzzle.
Aug 7, 2012
Thoughts on Starbound and PCG
Well, it's been awhile, my vacation was pretty good, thank you :).
Meanwhile Starbound team posted some updates. Some thoughts on that. First pickaxes are confirmed. This leads to conclusion that Starbound is definetely a Terraria clone, in a good sense of that. I mean look at Terraria it's a clone itself (of Minecraft of cousrse).
However it's became more and more obvious what will be the feature of Starbound. It's procedurally generated content (PCG). This is not a new thing per se, but Tiy has a vision of moving it to a next level.
Usually PCG is limited to thing which I call 'playfield' (major) and item properties (minor). In Terraria it's, for example, a world (earth) structure. Item properties can be for example some modified items which can then start to glow (enchanted sword, etc). In Starbound, most items itself are created via PCG (more of a pseudo-PCG) which means that not only stats, but visuals of an items are somehow unredictable. This is very cool.
The key question however is how well randoness will be controlled and constrained. By that I mean, that PCG games lacks that soul part of a manually designed worlds. Imagine, for example, Fallout with PCG land. One the one hand each game would be somehow unique, that's a good part. On the other hand, you loose sense of the game world reality. The real worlds are static. So, it's really a challenge for a Starbound team how story mode (if any) will deal with randomness.
Tiy already mentioned some kind of global coordinates which players can exchange with each other and which will lead to exact same location for any player. I assume this coordinates are basically the RNG seed values which will allow to recreate world precisely on another user machine. This feature is already very good.
As a conclusion: so far Starboud is looking pretty awesome! Can't wait to play it.
Meanwhile Starbound team posted some updates. Some thoughts on that. First pickaxes are confirmed. This leads to conclusion that Starbound is definetely a Terraria clone, in a good sense of that. I mean look at Terraria it's a clone itself (of Minecraft of cousrse).
However it's became more and more obvious what will be the feature of Starbound. It's procedurally generated content (PCG). This is not a new thing per se, but Tiy has a vision of moving it to a next level.
Usually PCG is limited to thing which I call 'playfield' (major) and item properties (minor). In Terraria it's, for example, a world (earth) structure. Item properties can be for example some modified items which can then start to glow (enchanted sword, etc). In Starbound, most items itself are created via PCG (more of a pseudo-PCG) which means that not only stats, but visuals of an items are somehow unredictable. This is very cool.
The key question however is how well randoness will be controlled and constrained. By that I mean, that PCG games lacks that soul part of a manually designed worlds. Imagine, for example, Fallout with PCG land. One the one hand each game would be somehow unique, that's a good part. On the other hand, you loose sense of the game world reality. The real worlds are static. So, it's really a challenge for a Starbound team how story mode (if any) will deal with randomness.
Tiy already mentioned some kind of global coordinates which players can exchange with each other and which will lead to exact same location for any player. I assume this coordinates are basically the RNG seed values which will allow to recreate world precisely on another user machine. This feature is already very good.
As a conclusion: so far Starboud is looking pretty awesome! Can't wait to play it.
Jun 9, 2012
Look on Windows 8 from the other side
Very interesting article on Windows 8. Despite the fact that I really dislike Windows 8 as of now, I must admit this article have it's point, which is very reasonable. Good read.
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:
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).
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
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:
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.
Subscribe to:
Posts (Atom)