Tyler's profileAwake Late {-}PhotosBlogLists Tools Help

Blog


    May 02

    Cross-platform XNA projects (Xbox360/Windows)

    If you're using XNA Game Studio Express to make your very own game, at some point you may have wondered how you could make your project cross-platform. Though there isn't a built in way to do so, creating a cross-platform project that shares the same files is pretty easy.

    The Scenario:
    You're making a game targeted at the Xbox 360 but you'd like to build and test the project as much as you can on the Windows platform. For starters, get a USB (corded) Xbox 360 controller. That way you can use the same controls on the the PC as you can on the 360. This will also ensure you have less (if any) code to modify to get your project to run on the Xbox 360.
    1. Start with a new project. Open C# Express, 'File > New Project >' select a template (eg. Windows Game).
    2. Next, in the Solution Explorer (top, right panel), right-click on 'Solution Your game name', select 'Add > New Project >' select a template - this time, 'Xbox 360 Game', call this YourGameNameX360. Save this anywhere, all we care about is the YourGameNameX360.csproj file.
    3. You should now see two projects in the Solution Explorer. One for Windows and one for Xbox 360.
    4. Save your Solution (CTRL+S).
    5. Find the directory where you just created your Xbox 360 game project. Copy the YourGameNameX360.csproj file over to your Windows project directory. Delete your Xbox 360 game project folder, we don't need it anymore.
    6. Open up your YourGameName.slo file, located in your Windows game directory. This should launch C# Express.
    7. You can ignore the warning. Press 'Ok'.
    8. In the Solution Explorer, select the Xbox 360 project, right-click and select 'Remove'.
    9. Next, in the Solution Explorer, right-click on 'Solution Your game name', select 'Add > Existing Project >' select that YourGameNameX360.csproj we copied over.
    10. Lastly, if you already had a Windows project and had files added to it, you can simply select all of your files for the project and drag them to the Xbox 360 project. Both projects will then share the same files.
    11. When you're ready to build and deploy to your Xbox simply select the platform dropdown (to the left of the green build arrow up top) and change the platform to Xbox 360 (See below).


    Thats it. Now you have a project that you can run on both Windows and Xbox.
    May 01

    Gameplay Overload

    An interesting topic as of late are games that offer so much varied gameplay that is actually detracts from the experience. How can this be possible you might wonder? Well lets start with this - would you play an FPS/RTS/RPG with Action elements? Would you even know what to expect? When creating games it's a common practice to approach the overall development in two ways. Both can suffer from gameplay overload.

    The first of the development practices is called a vertical slice. A vertical slice is essentially a snapshot of everything your game has to offer. A demo really. It combines gameplay, mechanics, art and everything else that makes a game into one solid playable level (or stage, or puzzle, etc). The elements that make up the core gameplay (maybe not all of your gameplay) are polished, or near polished. The obvious plus is you know whether or not your game will be fun in a shorter period of development time, much like a good prototype.

    The second approach is unilateral development. The game is developed across the board horizontally adding in all features and all levels as you go. No single mechanic or feature is ever taken to the polished "demo" state until very late in the process. The big negative here is that you won't end up playing the game with all the mechanics together till the end. You'll have no idea how feature X mixes with feature Y.

    Take a look at the chart below:



    Two identical games, both in development for the same amount of time. One team chooses to polish one level (yellow bar), and the core gameplay (blue bar). The other builds 7 levels unilaterally while working on the core gameplay, secondary gameplay and misc. features. You can begin to see who's going to have more time tuning gameplay and most importantly figuring out if the game is fun sooner.

    So with that in mind (and without going off on a tangent / future blog post), gameplay overload can happen much easier when developing a game unilaterally. Designers tend to toss in many features (most un-polished) in search of fun gameplay, instead of focusing on a core idea and making it work. Once you have polished one gameplay mechanic, move onto the next. If they don't blend well together, start over with something else. It will be much easier to determine which gameplay mechanic isn't fun when you have 2, instead of 6.

    A bad side effect of developing multiple gameplay mechanics at once (and polishing none), is gameplay overload. Simply put the player experience is broken up and whatever suspension of you've built thus far, killed. Just because you can add feature X or feature Y, doesn't mean you have to. Keep it simple, and most importantly, keep it fun.