I’ve been in touch with Loïc, one of the author’s (the primary?) of IceCream, the 2d framework and toolset for XNA. He just committed to SVN the codebase compatible with XNA 4! You can grab it from their repository URL: http://svn.assembla.com/svn/IceCream (that URL has both the XNA 3.1 and 4 code).
Not all of it is done, but I think it’s enough for me to get going. I tried updating the Visual Studio templates for VS2010 and XNA 4, but the format has changed for multi-project solutions and templates are just not something I’m very familiar with. I actually got it about 90% of the way there, but it’s not something I would feel comfortable releasing (I don’t release things at 90%). I had spent too much time already as I had issues with my Export Template menu item, and I was more eager to get in and play with code. Maybe I’ll try to complete it sometime this week.
I’m also having difficulty building the XBox 360 and Windows Phone 7 versions of the library because of the reliance on XML, but they’re not critical platforms for me. PC is all I need for now. (X360 and WP7 run reduced versions of the .NET framework where the standard XML routines are not included).
Here’s hoping to more IceCream updates soon! Thanks, Loïc!
PSA: If the ‘Export Template…’ File menu option isn’t available in Visual Studio 2010, it’s probably because you imported your settings from a previous version of Visual Studio (I did because I use custom text coloring). To get this option back, you can either:
Reset your settings. This is a bummer because all of your coloring goes back to default too, though you could just re-import them after you’ve done your export work.
Or, even better:
- Go to Tools, then “Customize…”, then click the “Commands” tab.
- At the top of the dialog is a radio button called Menu bar with a dropdown next to it. Select “File” from that dropdown.
- Click the “Add Command” button.
- In the dialog that appears, from the Categories list, select File.
- Scroll through the commands list to find “Export Template…” and select it.
- Click Ok and use the Move Up and Move Down buttons to move it down near all the other save commands (I put mine last of the save’s).
And you’re done! I suggest re-exporting your settings so you have a fresh copy for the future.
I’ll just come out and say it: I really enjoy 2d games. I love it when game companies license classic IP, like from the SNES era, and revamp it with HD graphics and modern gameplay, while keeping it 2d (or 2.5d). When going from 2d to 3d, it often changes the gameplay so significantly that it’s no longer the same game, it’s just the same brand.
Consequently, I plan to focus on 2d games for the foreseeable future. All my current ideas are 2d, and the people who appreciate the sort of gameplay 2d offers are my peeps.
I already have a game started with all my own code, but as I build one reusable component after another, I can’t help but think these same objects have been written hundreds of times before me. For example: sprite sheets, animation, a “SceneItem” base class, etc. I found that there aren’t any maintained 2d frameworks for XNA right now. There are plenty of 2d engines that want to do everything for you, and some 3d engines. But nothing (that I could find) that gives a developer full source and says, “here’s a great base, now go forth, programmer!”
What to do? I’m not a game programming expert, but I’m an experienced enough developer to know that reinventing the code wheel is not a good way to spend time (DRY principle, except at a higher level). So I started looking around and found IceCream. IceCream is a 2d XNA framework with its own GUI even, called MilkShake. I haven’t been able to actually run it yet though, because it’s targeting the XNA 3.1 framework (downloading now). Building the source targeting XNA 4 leads to many (many) errors, that I’m thinking about fixing. If I can get it working in a few evenings and get all that usable code, it’ll be worth it. I’ve just emailed the author to find out what license the code has been released in (I think MS-PL) before I spend time on it.