XNA GameStudio Express Beta now available.

Miscellaneous Forums/General Discussion/XNA GameStudio Express Beta now available.

http://www.microsoft.com/downloads/details.aspx?FamilyId=21E979E3-B8AE-4EA6-8E65-393EA7684D6C&displaylang=en

I'm downloading it now. Lets see what this is all about. :)

It requires Visual C# 2005 Express and when you click on the icon you'll be looking at the same C# Express IDE. When I click on the open project it opened the file selector for DirectX SDK managed samples. Looks like I know how I'll spend good part of this evening ;)

Barney

Now, this does look most interesting.

I'll expect a full report "Amon".

It's quite nifty, having fiddled with it for a few minutes. A default XNA project in C# provides you with base code and gives you a main loop. It seems really easy to get things moving about on screen. It seems to do what libraries like SDL and Allegro do, hiding the bits of Windows you don't need.

They've left out an important chunk though - the content pipeline is missing! Hopefully it will be ready soon and you can use the standard binary loaders until then, but the content pipeline sounds really useful.

The Spacewar project example is a bit, er, dodgy. The 1280x720 screen resolution is hard coded in various places, including being buried in the game logic, and keyboard support is just broken (you can un#define it, but the keyboard controls both ships at once). They recommend a DX9 PS2.0 graphics card, but my DX8.1 PS1.4 Radeon9000M runs it fine if you switch off multisampling in code.

http://msdn.microsoft.com/directx/XNA/faq/default.aspx

Free for Commercial games on Windows !! Will require XP SP2 on the client though.

I just downloaded and played around for a little bit. It seems like it will be a useful tool for creating xbox 360 games. Personaly though, when I have BlitzMax which is very easy to use, it makes XNA seem like a lot of work. When it is released with the content pipeline and support for xbox 360 I will buy it. Very cool.

xp sp2 is a rather hefty requirement if you want to market a game made from it... I could see leaving 98/ME in the dust but not 2000... Ah well, time marches on.

I've been messing around with C# for game dev for the past couple of weeks. this is very interesting. Can't wait to get home to check this out.

You need the xbox 360 game controller to make use of XNA GameStudio... at least to use the game sample that comes with it.

I don't undestand what all the fuss is about.. Programming for a console, yay..

Well, making games on a console is all I've really ever wanted to do. In my opinion making games on the PC is the second rate option. It's far superior to have one target machine with which you can perfect the game and be sure it'll run the same across the board. Don't misunderstand, I do like and appreciate some PC games but I do feel that console games are the superior platform from a development standpoint. It's simply less to worry about and its easier to perfect what you're working on. On top of all that, games on consoles sell a lot better too.

maybe from a dev standpoint but from a play standpoint, pc games kick so much console arse it's not even funny.

Depends on the game. Action games (such as Tony Hawk, Smash Bros., etc...) are far superior on consoles whereas strategy games and FPS's might be better on PC's Although to tell the truth I really like FPS's on consoles too. It's subjective, but the dev standpoint alone is amazing. Plus most people are more willing to pick up a controller rather than a mouse and keys.

Now MS have 3 standards on PC gaming platfrom

DX9
DX10(only for Vista)
XNA(XPSP2, maybe XBOX360)

Now DX10 sounds not so great, I'd prefer XNA to get built into Vista and disclude DX10, XNA sounds much better IMO...

Woah. This probably means the end of Blitz for me.

Yeah, I actually have the full blown VS 2005 package myself (Standard Edition). Seems like any version of Visual Studio 2005'll work on this, huh, just as long as C#'s included in that package, or does it HAVE to be the Express version (none of the higher-end versions)?


does it HAVE to be the Express version?


I think some of the folks at yakyak were installing Express alongside their regular versions - I can't imagine the pro version of XNA requiring Express, though!

You can use XNA with any version of VS 2005. You HAVE to have C# express in order for it to install though. Kind of dodgy but it is just a beta.

Since the XNA download file is a 91MB monster and my internet connection is zzzZZZ anyone fancy converting this BlitzMax Mandlebrot speed test to see how it runs under XNA?
Furthermore, if you could help with these questions ..

1) Compiled exe size? (BlitzMax=114K)
2) Dependencies required?
3) Speed compared to BlitzMax?

' Mandelbrot - Speedtest
' Complied under BlitzMax v1.22

SuperStrict
Framework BRL.GLMax2D
Import BRL.Pixmap

Const MaxI%	= 128   	' max iterations
Const SX#		= -2.025 	' start value real
Const SY#		= -1.125 	' start value imaginary
Const EX#		= 0.6    	' end value real
Const EY#		= 1.125  	' end value imaginary

Const x1%		= 640    	' ScreenX
Const y1%		= 480    	' ScreenY
Const xy# 		= Float(x1)/Float(y1)	' x/y-ratio

Global xstart:Double = SX
Global ystart:Double = SY
Global xende:Double = EX
Global yende:Double = EY

Global xzoom:Double = (xende - xstart) / x1
Global yzoom:Double = (yende - ystart) / y1

AppTitle$="BlitzMax Mandlebrot test"
Graphics x1,y1
Global pm:TPixmap=CreatePixmap(x1,y1,PF_RGB888)

While Not KeyHit(KEY_ESCAPE)
	Const fac#=0.99
	Global thistime%, lasttime%
	xende = xende*fac
	xstart:*fac
	ystart:*fac
	yende:*fac
	xzoom = (xende - xstart) / x1
	yzoom = (yende - ystart) / y1
	MandelBrot
	thistime = MilliSecs()
	DrawPixmap pm,0,0
	DrawText "Speed: " + String(Int(x1*y1 / (1+(thistime-lasttime)))) + " Kpix/sec", 0, 0
	lasttime=thistime
	Flip False
Wend

End

' ------------------------------------------------------------- '
' -=#  Mandelbrot  #=-
' ------------------------------------------------------------- '
Function MandelBrot() ' calculate all points
	Global old#
	Local col%
	For Local x% = 0 Until x1
		For Local y% = 0 Until y1
			Local h# = DotsColor(xstart + xzoom * Double(x), ystart + yzoom * Double(y))
			If h <> old
				' Local b# = 1.0 - h * h ' brightness
				col = HSB2RGB(h, 0.8, 1.0 - h * h)
				old = h
			EndIf
			WritePixel pm,x,y,col
		Next
	Next
End Function

' ------------------------------------------------------------- '
' -=#  DotsColor  #=-
' ------------------------------------------------------------- '
Function DotsColor:Float(xval:Double, yval:Double) ' color value from 0.0 to 1.0 by iterations
	Local r:Double, i:Double, m:Double
	Local j:Int
	While (j < MaxI) And (m < 4.0)
		j:+1
		m = r * r - i * i
		i = 2.0 * r * i + yval
		r = m + xval
	Wend
	Return Float(j) / Float(MaxI)
End Function

' ------------------------------------------------------------- ;
' -=#  RGB-Function - Come on, that's an important one...  #=-
' ------------------------------------------------------------- ;
Function RGB%(red%, green%, blue%)
   Return (red Shl 16) + (green Shl 8) + blue
End Function

' ------------------------------------------------------------- '
' -=#  HSB2RGB  #=-
' ------------------------------------------------------------- '
Function HSB2RGB%(hue:Double, saturation:Double, brightness:Double)
	Local red#, green:Double, blue:Double, domainOffset:Double ' hue mod 1/6
	If brightness = 0 Return 0
	If saturation = 0 Return RGB(brightness*255.0, brightness*255.0, brightness*255.0)

	If hue < 1.0/6.0
		' red domain; green ascends
		domainOffset = hue
		red   = brightness
		blue  = brightness * (1.0 - saturation)
		green = blue + (brightness - blue) * domainOffset * 6.0
	ElseIf hue < 2.0/6.0
		' yellow domain; red descends
		domainOffset = hue - 1.0/6
		green = brightness
		blue  = brightness * (1.0 - saturation)
		red   = green - (brightness - blue) * domainOffset * 6.0
	ElseIf hue < 3.0/6.0
		' green domain; blue ascends
		domainOffset = hue - 2.0/6
		green = brightness
		red   = brightness * (1.0 - saturation)
		blue  = red + (brightness - red) * domainOffset * 6.0
	ElseIf hue < 4.0/6.0
		' cyan domain; green descends
		domainOffset = hue - 3.0/6
		blue  = brightness
		red   = brightness * (1.0 - saturation)
		green = blue - (brightness - red) * domainOffset * 6.0
	ElseIf hue < 5.0/6.0
		' blue domain; red ascends
		domainOffset = hue - 4.0/6.0
		blue  = brightness
		green = brightness * (1.0 - saturation)
		red   = green + (brightness - green) * domainOffset * 6.0
	Else
		' magenta domain; blue descends
		domainOffset = hue - 5.0/6.0
		red   = brightness
		green = brightness * (1.0 - saturation)
		blue  = red - (brightness - green) * domainOffset * 6.0
	EndIf
	Return RGB(red*255.0, green*255.0, blue*255.0)
EndFunction


not a bad idea...too much hype for me, I prefer the 'results'.

If you're targeting Windows PC's, this seems to be the way to go. Especially if the Pro version will let you recompile to X-Box binaries in a "code-once" fashion.

Seems odd that C# would be a required language for this though, especially since .Net assemblies compile to intermediate language. Unless, of course, the X-Box doesn't have a CLR and instead it's version of the C# compiler skips directly to native code and isn't capable of generating intermediate language.

Blah... I just read the FAQ in a bit more depth.

It looks as though the Pro version is going to be useless unless you're a licensed developer.

Ah well. *mutters something about how things too good to be true probably aren't*


Blah... I just read the FAQ in a bit more depth.

It looks as though the Pro version is going to be useless unless you're a licensed developer.

Ah well. *mutters something about how things too good to be true probably aren't*



I wouldn't say useless :). From what I see, if you are not a licensed dev for the 360 you cannot add in xbox-live support. Other things like not being able to distribute copies as easily seems like its more of an 'incomplete' thing rather than a hobbist restriction. So...considering that ~99% of the people here don't plan on developing AAA games and just want to muck around with console game dev I don't see why its useless...considering the tools are free.

So...considering that ~99% of the people here don't plan on developing AAA games and just want to muck around with console game dev I don't see why its useless...considering the tools are free.

I'm not so sure. I think 99% of the people here are convinced they could develop AAA games if only they weren't being held back by bad tools and licensing restrictions, so I suspect this will discourage a lot of people.

It won't discourage me, howevever, as I was never encouraged. :)

I thought the final release of XNA would require a subscription for XNA membership, 99$ a year?

Yeah, one thing I'd like to do for XNA is introduce a screen saver line, as well as light games. After all, just a dim backlight on the X360's not enough to save a screen from burn in (especially those who are dumb bells who forget to turn off a plasma screen when they're downloading a big file, or leave a game in "pause" mode for too long). Having a screen saver with moving graphics kick on after about five minutes of inactive use would be a life saver. I hope that MS will open themselves up to non-game applications such as screen savers, that would be a second profit maker on Xbox Live Arcade, and screen savers don't necessarily have to be as expensive as games, either, I'd probably go with about 50 - 100 MS Points for one screen saver (considering that I develop more than one screen saver for X360), if I were to go with the pro license to get that done.

has anyone dug into XNA yet? how's it going? is it just c# with some snazzy libraries?

> has anyone dug into XNA yet? how's it going? is it just c# with some snazzy libraries?


Basically that is a good summary. XNA can also be used from any other .NET language though.

It's going to be the basis of many next gen game engines. As far as I've heard just about everyone and their grandmother is porting their tools to XNA. Looks like the day has finally come that you won't need to dig into the guts of a machine to produce 'top end' apps and games. So much for C++! I still like to know and use it but for the most part it looks like abstract Blitz-like coding is finally getting its due recognition!

Ahh yes, time for me to bring some good stuff to the big community.


I wouldn't say useless :). From what I see, if you are not a licensed dev for the 360 you cannot add in xbox-live support. Other things like not being able to distribute copies as easily seems like its more of an 'incomplete' thing rather than a hobbist restriction.


Crap. At the rate I'm going, by the time I finished a XBox 360 app, the XBox 720 will be out.


Looks like the day has finally come that you won't need to dig into the guts of a machine to produce 'top end' apps and games.


This day occurred quite some time ago. .Net is a beautiful thing.


It's going to be the basis of many next gen game engines. As far as I've heard just about everyone and their grandmother is porting their tools to XNA.



This is something I don't really understand. Managed DirectX has been available since Direct X 9 came out. There really is no "porting" involved. XNA is an abstraction/framework/"easier than Direct X API" sitting on top of a stripped down version of MDX9 (to compensate for short comings of the XBox 360 vs. Windows). In short, it's a couple .Net application templates utilizing a neutered version of MDX. It's a lot like (and dare I say a step toward competition to) the tools that are being "ported to it" (such as Torque X)

How long do you suppose it will be before Garage Games is absorbed by Microsoft and turned into their "budget" game wing?

Why would Garage Games ever be absorbed? Their whole point of existence is to be independent. There'd be no point to it either. Microsoft wants to bank on the independent movement not stop it. They just happen to have the same goals and it doesn't hurt that a lot of the people between GG and MS have been long time industry 'friends'. On the business front there's no benefit for MS to 'absorb' Garage Games and for Garage Games there's no benefit to being absorbed.

However, there is a mutual benefit to converging the two communities. Microsoft could use some of the 100,000 registered users of Garage Games and all the various Torque SDK's to make games for XBL and Windows (or at the very least to join the developer's network for $99 a year) and Garage Games could in turn use some of the Microsoft traffic to increase their community on all fronts and make better games.

Garage Games seriously first and foremost cares about cool games done right and not for the money (although that's a priority also). Microsoft I'm sure wants to see the same thing but if they can do that and make money with hardly any risk at the same time they're going to do it. With so many people making games in their spare time and some people bound to make hits that MS can then release to their player base (with little to no overhead) they're going to do it. Just about anyone in this community right here is capable of making Geometry Wars ... and look at how much money MS made from that one!


Why would Garage Games ever be absorbed? Their whole point of existence is to be independent. There'd be no point to it either. Microsoft wants to bank on the independent movement not stop it. They just happen to have the same goals and it doesn't hurt that a lot of the people between GG and MS have been long time industry 'friends'.


Microsoft operates far differently than you think. In it's culture, Garage Games reminds me of Bungie by quite a bit.


On the business front there's no benefit for MS to 'absorb' Garage Games and for Garage Games there's no benefit to being absorbed.


The second paragraph about mutual benefits describes precisely why companies merge in the first place.

Getting noticed by Microsoft usually results in the following chain of events if you're a micro ISV...

1) Market viability is watched while they remain "friendly" to you and watch how well you're doing. Essentially, you're doing the b.a. work for them for free or little cost of support.

2) If the model is viable, they begin parallel development.

3) Analysis is done covertly to determine if you're a threat.

4a) If you're a threat, they outright make an offer for your technology either by purchasing just that piece of it, or acquiring your company. If your software fits well, they may abandon their internal effort and concentrate on that. Or, the buy-out is simply to remove the threat (similarly to how it works with oil companies and plans for fuel efficient vehicles).

4b) If you're not a threat, they'll continue to monitor your progress, but only on the basis of competition analysis.

5) A product mysteriously similar to yours, but fits more solidly into their framework suddenly becomes part of their product line. Sometimes they offer it to the public for free either indefinitely because it is classified as an "add-on" or temporarily as a loss leader.

6) If you haven't been absorbed by Microsoft, your new job is to keep up with the Jones's. Often this results in closing doors.

Of course, there are always exceptions to the rule. Just not many.

The real danger is if GG were to ever become public. The motivation is then to satisfy the shareholders. That doesn't necessarily keep quality at the forefront, and provides a great opportunity for another company (such as Microsoft) to become a highly influential shareholder.

Look at the pattern of other technologies Microsoft has developed or acquired... sql server, exchange, office, dlinq, source safe... All fell into one of the above scenarios. That doesn't mean that Microsoft is evil and must be watched out for, but the reality is, that's how the business works.


Garage Games seriously first and foremost cares about cool games done right and not for the money (although that's a priority also). Microsoft I'm sure wants to see the same thing but if they can do that and make money with hardly any risk at the same time they're going to do it. With so many people making games in their spare time and some people bound to make hits that MS can then release to their player base (with little to no overhead) they're going to do it. Just about anyone in this community right here is capable of making Geometry Wars ... and look at how much money MS made from that one.



Microsoft does development tools. I was recently at a seminar with Scott Guthrie (more or less the father of .Net) and he gave the impression that they are a very well oiled machine. They are pulling no punches on any front that's appropriate for their attention. I'd say game development tools fit into that well. XNA is their first stab at it.

Microsoft's current goal is to sell XBox 360's. As you know, games sell the systems. Indie developers are not the reason for XNA. The reason for XNA is to perform a service similar to that of Garage Games. Target several platforms by leveraging code reuse. You also know as well as I do that a vast majority of Indie developers make (for lack of a more polite term), "crap". That's why you have to subscribe to their developer network to share binaries. This model sells X-Boxes.

Garage Games is a business. The purpose of any business is to make money. And they should! They make great products. However, I'd argue that money is the top priority.

Garage games is the ID software model on a smaller affordable scale with better support: "We made a game with our engine (Tribes 2), and with a little abstraction and tweak, we can financially benefit from the engine itself". The question here is quality. Can Torque measure up to the Doom 3 engine? No. And it's pricing and expectations are in a realm of that reality. Garage Games isn't a cutting edge technology company, and it knows it and it's audience well.

If Torque was on par with FarCry or Doom3, I say their market would be very different.

My speculation was based on merger patterns I've seen and experienced first hand before... nothing more than that.