Showing posts with label Visual Studio. Show all posts
Showing posts with label Visual Studio. Show all posts

Monday, January 11, 2010

My XNA Game: Progress update

60% Complete!


Yup, that's right. I'm more than halfway done. So it's time for some more info on the game, in addition to what I wrote in this post.

The game's protagonist, as seen in this draft, is a little but slightly overweight bird. The main objective of the game is to collect as many points as possible by picking up bonusses and moving objects from A to B. You have to evade dangerous objects such as spikes, because they can destroy the object you are carrying and/or harm your bird. If you run out of health, you respawn at your birdhouse. Each level has a time limit, so you have to rush a little if you want a highscore :-).


Level 1 is set in the forest, where the bird lives. It's an easy level that allows the player to familiarize him/herself with the controls and game mechanics. Level 2 is set in the city and has an increased difficulty. The actual playing time is around 10 minutes for the two levels combined. The controls are easy: just the arrow keys and the spacebar. Sounds ok for an all-age casual game, right?

Final (?) words on the installer


I decided to go with the visual studio setup project for the installer. While not being 100% convinced of its superiority, to say the least, I had to pick something and go with it. I tested the setup on a number of windows PC's with XP, Vista and 7, and had no problems so far. The installer downloads all missing dependencies.

There's just one last issue with the installer: the setup project creates two files - a .msi file that performs the actual install, and an .exe that checks the prerequisites. This leads to two problems...
  • For the download, I should create a zip file that contains both files. This seems slightly unprofessional. Players expect to download a single installer file which they can immediately execute after dowloading.
  • The players should in some way be forced to run the .exe file. If they run the msi file instead, the prerequisites are not checked. They can install the game even if the .NET framework or XNA runtime are missing. If they subsequently try to launch the game, they'll get a very nasty error message.
A solution would be to use a zip self-extractor, that runs the .exe file after extraction. Sadly, many web resources report problems with this approach as well. So I'm well underway but not yet done with this...

Conclusion

As the tests have proven, the game runs smoothly without framerate drops, so that's one less thing to worry about. But there's still a lot of work to in the next 1,5 months...

P.S: Still no screenshots, since there's some heavy graphics rework being done at the moment...

Sunday, December 27, 2009

Creating an installer for my XNA game + Prerequisites

Installer

Recently, I was looking into the possibilities I had for packaging my game (read more here). The first option I tried was the so called ClickOnce installer that is integrated in Visual Studio 2008. It turned out to be a bad choice for my particular needs; I don't need a java webstart clone, just a regular MSI installer package.

So I began my search for an install creator on the internet. Very soon, I stumbled upon Advanced Installer, which looked decent at first sight. It uses a reasonable licensing model; You have to pay for advanced features, but the basic use is free. I don't need advanced features, so I gave it a shot. And it turned out to be pretty good.


A particullary nice feature of this install creator is the nice prerequisites management screen. I defined the system requirements for my game there:
  • Windows version: XP or later
  • .NET Framework 3.5
  • DirectX 9.0c
  • XNA Framework 3.1
  • 1024 x 768 minimal screen resolution

The installer will check automatically if all prerequisites are present, and shows a warning if they don't. This is great, but not perfect (see next section). The result is a nice Setup.msi ready to spread around. I still need to test the install on a lot of different configurations though, but I'm quite confident that it will work.

System requirements

Some more on the system requirements: I think they are very reasonable in general, but two problems arise:
  • .NET Framework 3.5. I know for a fact that not every user has this installed, although it comes with windows updates if I recall. Yet, it is a large download and a requirement I can't drop.
  • XNA Framework 3.1: It's required to run games created with XNA gamestudio. I'm pretty sure no living soul has this installed, but it's a very tiny download.
I have not yet found a way to make the installer download these dependencies automatically. Including them in the package is not an option either. So most likely, the final download page for my game will include two old-fashioned download links. Sad but true.

This makes it obvious why most casual games are created in flash. All a player has to do is navigate to the webpage, wait 5 seconds for the game to load and play. And probably 99,99% of all people has flash installed.Too bad I'm a C# programmer, not an actionscripter...

Another platform I could have used is Microsoft Silverlight. Silverlight has the advantages of flash, and allows me to use C#. I seriously considered using Silverlight when I started this project... But the DirectX features you get with XNA are just... They make you feel like you're actually developing a game (with decent GPU support), instead of trying to turn a business application or browser plugin into something that looks like a game :-).

So that's the way it will be. Anyway, considering the amount of promotion/spam we'll throw at it, I don't expect that it will be too hard to find 100 "test subjects" willing to try it out. Let's just hope these system requirements are not too annoying. Anyway, I'd love to get some feedback on this one...
  • Do you have Microsoft .NET Framework 3.5 installed? (you can check this in "add or remove programs")
  • Is it too much to ask from a potential player to install the XNA Framework, or even the .NET framework in some cases?
  • Finally, if you are a software developer: Any experiences with 'advanced installer'? Any other install creators I should check out?