XNA Game Studio 2.0
Even though most people beat me to the announcement, the XNA Team just took the new version of XNA Game Studio out of beta, dropping the Express in the name. You can download it and play with the new features, such as networking, 3D sound in XACT, better Xbox connectivity, game packer, improved graphics-device loss handling, font kerning, and so on. (press release) (download page) (direct download)
If you are new, there are introductions available, such as info for beginners and a list of already converted samples to study.
If you used XNA GSE 1.0, you will want to get the project converter from 1.0 to 2.0 (1 MB).
There is also the XNA redistributable available separately. (info) (download 2 MB)
Dream Build Play 2.0
Dream Build Play will be back, and has already got a warm-up challenge if you’re interested in artificial intelligence. Submissions are accepted until January 27, 2008.
First prizes in the warm-up are internship interviews with Microsoft Research, Rare Ltd. and Lionhead Studios, besides $3000.
Visual Studio 2008 Express not supported yet
On top of that, a while longer ago, Visual Studio 2008 Express also exited beta. There is a single download for all programming languages now, which is nice. (info) (full download 895 MB) (web installer for C# only 3 MB)
Unfortunately, XNA does not plug into Visual Studio 2008, as the plug-in system was rewritten for 2008, and the XNA team did not have time to both integrate in both Visual Studio 2005 and 2008’s plug-in architecture. You will still need to keep Visual Studio C# 2005 to use XNA Game Studio 2.0.
However, you can install Visual Studio 2005 and 2008 side-by-side, This gives you access to XNA in Visual Studio 2005, and some new features in Visual Studio 2008 when developing normal Windows (or web) applications. The main features are LINQ language features and integration of ASP.NET AJAX controls, but I’d like to highlight some of my favorites.
When registering Visual Studio 2008 Express, you also get access to a bunch of downloadable freebies. One control to love is the Telerik Rad Ribbon Bar. Your applications will look just like Office 2007. (register before downloading)
Also great is the DarkGDK game asset kit, with hundreds of files, including 3D models, sound effects, and music. The installer will check that you have Visual Studio 2008 and DirectX 9.0c SDK installed already, so get those too. (info) (download 218 MB)
But my favorite is the peer-to-peer chat client which you can drag and rop into any application you’re making. (info) (download 33 MB)
Visual Studio 2008 Express includes .Net Framework 3.5, but you can still target multiple runtimes, such as the .Net Framework 2.0. Visual Studio 2008 Express will even provide IntelliSense errors if you try to use something not available in 2.0.
With Windows Vista, the graphics engine changed. Visual Studio 2008 Express can mix components designed for the old Windows Forms and the new Windows Presentation Foundation.
Also, Visual Studio 2008 Express supports the MUI Architecture, so now we can add support for odd languages ourselves, like Thai for example. Microsoft will do the big ones, such as English, Spanish, French, German, Italian, Chinese Simplified, Chinese Traditional, Japanese, and Korean.
.Net Framework 3.5
Even if you don’t download Visual Studio 2008 Express, you might be interested in getting the new .Net Framework 3.5. It includes the latest versions of both 2.0 and 3.0 as well. (download installer 3 MB) (download full redistributable 197 MB)
Do uninstall any framework betas before installing.
Nvidia PerfHUD 5.1
Nvidia PerfHud helps you analyze the performance of your Direct3D applications, and the new version supports XNA. (info) (quick tutorial 4 MB) (user guide 9 MB) (download for Vista 66 MB) (download for XP 91 MB)
Blender 2.45
Also, Blender chose to come out with version 2.45. (info) (download 8 MB)
Cheers,
Joran
Books to keep you going
On October 14th, 2007 at 10:47 am, Pernambuco-Brazil said:
In your opinion, what´s the best XNA book?
Hey there!
Short answer:
‘XNA Unleashed‘ by Chad Carter.
Long answer:
It depends on what skill level you are. If you have zero knowledge of C#, start with ‘Learning C#‘ or ‘Programming C#‘ by Jesse Liberty.
‘Learning C#‘ covers the first half of ‘Programming C#‘ in about 50% more pages. If my tutorials are difficult, pick ‘Learning C#‘.
‘Programming C#‘ slightly more advanced. If you are grasping my tutorials without reviewing them several times, pick ‘Programming C#‘.
I’ve only got three books with ‘XNA’ in the title – ‘XNA Creators Guide‘ by Cawood and McGee, ‘XNA Unleashed‘ by Carter, and ‘Professional XNA‘ by Nitschke. I can’t yet review other books on XNA.
If you have a good foundation in game programming, and just want to get into XNA, then Nitschke moves along pretty fast.
If you finished my tutorials, found them very suitable for you, and are looking for the next step, then Carter is by far the best,
Cawood and McGee are on about the same level as Carter, but I thought their book was less clear. My suggestion is to buy their book together with Carter’s, only if you have money to spare.
Since you are on a tight budget, and you are posting on my site, I think Carter would give you the most bang for your buck.
Cheers,
Joran
Singletons and XNA GSE Refresh
Refresh
A new version of XNA Game Studio Express was released, which require Visual C# Express Service Pack 1. The refresh provides Vista support, XACT 3D audio, performance boosts, bitmap fonts, and a distribution packer. You no longer have to give up your source code.
At the same time, Creators.Xna.com received new content. This included the long awaited XNA Racer starter kit, but also many tutorials, samples, articles, and utilities. They cover glow effects, drawing points and lines, menu transitions, Doppler and pitch sound effects, particle effects, vertex lighting, data structures, pipeline programming, the SpaceWar structure, a font maker, and Xbox 360 controller graphics.
Singletons
Scott: “In the Farseer singleton, what’s Farseer(){} for?”
Ah, I missed that? Here we go:
There are no instance fields or properties, only the static field and static property.
There are two constructors, one static constructor, one instance constructor, both private. Private is the default.
The static constructor gets automatically called right before (see Lazy below) some code accesses the Physics property. When called it initializes the static physics field.
The instance constructor, the one you are asking about, gets called when someone tries to instantiate the class. The instance constructor doesn’t do anything, which is good, because there is nothing that should be done.
I probably missed mentioning it, because it doesn’t do anything.
Hold on. Come to think of it, it does do something. It stops people from instantiating the Farseer class, while forcing the creation of the static version of the class.
The C# specification (ECMA 334) states in section 17.11:
“The static constructor for a class executes at most once in a given application domain. The execution of a static constructor is triggered by the first of the following events to occur within an application domain:
* An instance of the class is created.
* Any of the static members of the class are referenced.”
In other words: When starting the game, the static Farseer is not created. If a piece of code tries to access the Physics property, then the static part of Farseer is created. Or, if someone tries to instantiate Farseer, it is not instantiated, but the static part is activated.
Did that make sense?
Lazy
A class which isn’t instantiated/initialized until it is really needed is called a lazy class. This version of a singleton isn’t 100% lazy, but almost. If someone adds a second static member, the physics field would be initialized when that member was accessed, even if it had nothing to do with physics.
If you for some reason want a fully lazy version, you can go to the same excellent source as I did, Jon Skeet, and read more about singletons in C#.
Also from Jon Skeet: If you make a second singleton which calls the Farseer singleton in its constructor, and the Farseer singleton references the second one again, then you might make the whole thing crash. That’s not a common programming situation, though.
Tiny Singleton
On another note, you could shorten the whole class to this:
public sealed class Farseer
{
public static readonly PhysicsSimulator physics =
new PhysicsSimulator(new Vector2(0f, 300f));
private static Farseer() {}
Farseer() {}
}
That’s a public field, which is a bad idea, because you can’t add code to it when it gets accessed, as you can with a property. If you don’t need code, then this would look tiny and neat. It doesn’t affect performance to use a property, though. The JIT compiler is too smart for that.
Scott: “I’ve never seen such a good mix of theory and practice, and practically everything’s perfectly clear.”
Thank you!
Cheers!
Joran
No More Weekly Updates
My workload increased over the last two months, which means less time spent on XNA. In essence, I have to cut a hobby.
One particular hobby consumed more and more time each week, yet not increasing proportionately in “funness” - weekly updates. simply put, XNA has gotten big.
I enjoy keeping myself up to date about the XNA community, and I will keep reading lots of blogs. I just won’t blog about what I read. There will be no more weekly updates.
The spare time normally spent on weekly updates will from now on be split fifty-fifty between coding and my other hobbies, such as hiking, fishing, writing, and family. Yes, I have a life. (c:
On the upside, this means I should be able to get back to making tutorials. Although, with the increased workload, I doubt there will be one per week, like during last year.
If you still want to keep up with the XNA community, here are the best XNA news blogs:
- ZiggyWare - Michael Morton - Feed
- Do as I say, not as I do - Ultrahead - Feed
- The Z Buffer - Andy Dunn - Feed
- XBOX 360 Homebrew - Mark Coffman - Feed
- LearnXna - Gregory Wurm - Feed
- Mykres Space - Glenn Wilson - Feed
- Machaira’s Space - Jim Perry - Feed
Cheers!
Joran
Weekly Update - Chronological Order Today
Almost in chronological order today, for no apparent reason. (c:
Maxwell Abernethy released Trans2D, a lightweight open source graphics library which improves on the SpriteBatch with a hierarchical model. Each sprite has its own transformed space, so modeling multi-sprites is a breeze, as is layering. There is also a bitmap font system, and many sample applications to go through. (site) (source code) (screenshot)
Carl Lewis released Save the Students, based on SEGA’s Chu Chu Rocket. It is a single player game, primarily for Windows, and Carl wants feedback. (no source) (game) (email feedback) (forum feedback) (thread feed)
David J Edery, Microsoft’s Worldwide Games Portfolio Planner for Xbox Live Arcade, gave an interview to Gamasutra. He doesn’t talk specifically about XNA, but it is still worth a read if you want to publish your own some day. (interview) (personal feed) (personal site)
Riemer Grootjans started work on tutorial Series 4 - Advanced Terrain. (site) (site feed) (forum discussion) (screenshot)
Bill Reiss put up a great site with links to XNA related sites, sorted into categories. This is not really news, I just missed this one. (site)
Christian Beaumont with friends changed the name of XnaMagic to Blade3D, but is still going to be a full game development system for 3D games using XNA. (new site)
Diffuse worked on GD360, a Gameboy Advance Emulator. It is actually a port of GarboDev, by Gary Linscott. There is no sound, and it is slow, and Diffuse wants help to optimize it. (contact Diffuse)
BDev13 published Otto’s Revenge, a 3D remake of the original Berzerk. (download)
Venatio Studios published GameMaker Studio.Net, a 2D game engine creation system. (site) (feed)
Casey Chesnut released XnaSynth, a speech synthesis engine. (forum thread) (site) (source code) (sample mp3)
Dean Calver will soon publish XnaLua, a port of the programming language Lua. XnaLua will run Lua scripts on the Xbox as well. (site) (feed) (Lua)
SamM released the Fish Game, a remake of the Fish Game Tutorial using TorqueX. (download) (site) (screenshot)
Josh Butterworth and Maher Al-Samkari gave an interview to QJ.net about Last Alarm: The A.R.G.U.S. Complex. (interview) (feed) (site)
Phantom finally published XNA Console Component, a self-contained console window, similar to the one in Quake. (site) (feed) (forum thread) (DLL) (Demo) (Documentation)
Steven J Tovey released XnaContent, a content processor with access things the standard model format hides, such as vertex and index data. (download) (comments) (instructions)
Thomás da Costa teased us with another video of Super Nova Psycko. (video)
GameyLittleHacker teased with a video from RPG Zero - Another Start. (video)
G Michael Youngblood released the first batch of content for academicians, in the Game Segments series. (page)
Kyle Schouviller published another guide on how to share code between Xbox and Windows projects. He has thought on other subjects as well, and I’ve added him to FeedReader. (page) (site) (site feed)
WaruWaru teased us with a video of how he hooked up the WiiMote to the Xbox. No source. (video) (site) (site feed) (forum discussion)
Matthew Nelson posted a wanted ad, for long-distance modelers. Gears of Games first product looks good. (ad) (site) (screenshot)
Lawrence updated his 3D Collision Detection source code and tutorials, especially focusing on proximity tests. He updated Sharky’s Air Legends in the process. (tutorial) (Sharky)
Michael Morton tirelessly published another tutorial, Adding Drag and Drop to the XnaDev.ru Content Builder. (page)
Echs Bachs played with the SpaceWar starter kit, and released BackSpace War and Kitchen Sink War for the Xbox. (BackSpace) (Kitchen Sink)
SoopahMan published an XNA wrapper for the PC Gamepad support, to use more than just the Xbox gamepad. (forum discussion) (site)
Michael Klucher moved his blog. (new feed)
Rob Miles is a lecturer, and handed out the code to Cheesy Breakout to his students, and to you. (site) (site feed) (xna feed) (download)
Microsoft released a Gamepad Wireless Receiver for Windows. (site) (buy) They also merged all casual games departments into a single entity. (site)
Eric van Feggelen kicked off his blog with a tutorial on how to Draw a Complex Mesh. (page) (source code) (site) (feed)
Dillinger published eight tutorials, which combine to move and rotate a sprite using different kinds of input. (site) (feed)
Paul Varcholik published the source to his Ray Tracing Project. (source code) (site) (feed)
3D Buzz will hold XNA Extreme, an 8-week intensive training course, stinging April 9th, teaching C# and XNA from the ground up. It will cost you $100 USD, but they’ve received good reviews before. (page)
PixelBox Academy also announced a new course, XNA Foundation - Game Development with XNA Game Studio Express, which will run seven weeks from March 20th. It’ll cost you $650 USD, though. (page)
Dream.Build.Play
The final entry deadline is JULY 2, 2007, midnight.
Michael Hansen will join the competition as well, with The Last Hero. (site) (site feed).
Other who seem to be joining in the fun:
Bill Reiss, Dan Lingman, Catalin Zima, Endre, Lima Beans, Brian Leip, Errolian, Dudley, John Sedlak, Arek Bal, Andreas Viklund, Calvin Bell, Jim Perry, Jeff Weber, WaruWaru, Phantom, ExtraLongPants, Anders Elfgren, Joel Martinez, JLarkin, ElyLucas, PrTheAlien, Ska Software, Gendai, Echs Bachs, Deldy, and Evan Ogas.
I’m sure I got some wrong, and left some out. Personally, I’ve decided to not participate, due to a lack of time. Real life, as usual.
Watchlist
Blogs I’ve added to FeedReader, although I haven’t blogged about them yet, for various reasons:
Charles Humphrey (site) (feed) - Ahmed (site) (feed) - Mark Davies (site) (feed) - Daniel De Aguiar (site) (feed) - Sigurdur Juniusson (site) (feed) - Endre (site) (feed) - James Wheatley (site) (feed) - Thomas Greenwood (site) (feed) - Michael Morton (site) (feed) - Sturm (site) (feed) - Matt Guest (site) (feed) - Wendy Friedlander (site) (feed) - Luca Tironi (site) (feed)
On a more private front, Tijir just had a baby daughter. Cheers! I hope it all goes well, and my wife and I are rooting for you all.
And I finished my thirtieth year here, and am now starting on my fourth decade. No cheers for that. I celebrated with a piece of Oreo Cheese Cake, in between working sessions. That was it.
Cheers!
Joran