Shawn Hargreaves Blog
Wow, I wrote a lot of articles this month! I thought 16 posts in a single month might be a personal best, but turns out I beat this back in March 2007, when I managed 18 posts.
I guess this one bumps me up to 17. Still one short though :-)
i see that Michael Klucher request some toturials
If you have a great tutorial you’d like to share with the community, let me know here. I’ll try to wrap up what’s going on in the world of game development tutorials every once and awhile!
why not the harvest game demo
source , i have wacth the videos over an over manny times
and i doint think this is possible in the curent version of the framework, with all the effect that are going on in the havest game demo , it smell like custrom shaders
> why not the harvest game demo
I don't know for sure, but I doubt we will ever be able to release code for Harvest, since this was made by Luma Arcade, and belongs to them, not to Microsoft.
> i doint think this is possible in the curent version of the framework, with all the effect that are going on in the havest game demo , it smell like custrom shaders
Wow, you really don't trust us, huh? :-)
There's no cheating here, and no special hidden APIs. Harvest was created using the exact same APIs and framework that you all have access to in the CTP.
i thrust all developers and MVP at microsoft, but not the markingting folks..
shawn the shadow under the gameplayer is dynamic,, and how are you gonna render the shadow dynamic with the 5 effect
unles that the shadow is a plane that is under the gameplayer and animated with the gameplayer
i doint think so,, sorry shawn,,
i like the 5 effect , how about making a small framework for postprocessing, where we can acess only the pixelshader with spritebach, and we have a depthbuffer as well, but no vertexbuffer acess , i think that this can be done in a safe manner,,
> i thrust all developers and MVP at microsoft, but not the markingting folks..
And you think the marketing folks would have the ability to go off and create a special version of the phone OS, write their own graphics driver and version of XNA that supports custom shaders, when the real code made by the product dev team does not support that at all, then go and make a game using this entirely custom marketing-created version of the platform?
Wow, those are some talented marketing folks! :-)
I can assure you that you are 100% wrong in this assumption.
> shawn the shadow under the gameplayer is dynamic
I don't know exactly how this was done (I don't have access to Luma Arcade's source code), but it looks to me like a simple blob shadow, or maybe a projected texture.
> how about making a small framework for postprocessing, where we can acess only the pixelshader with spritebach
If we had programmable shaders, we would fully expose them. Limiting this to only SpriteBatch postprocessing would not gain us anything or make the task of supporting them any easier.
But the fact is, we don't have them. This isn't just an XNA thing: they aren't finished in the graphics driver so not supported anywhere by the platform at all for this release.
thanks shawn for the info,
about the marketing folks ,, pehaps it is me that are worng here , it just sems that every time you folks release somthing ,,you say you can do this and that ,like the 3d hardware support , yes there in the phone , we can not test it out ,, what about the windows smid ND THE XBOX360 VMX support,, i think that is what all the developers where hoping for so we can do some more complex physics for our games
Shawn and the microsoft team release the wrapper for this , this is the way to get the developers to show off some stuning apps and games
> you say you can do this and that ,like the 3d hardware support , yes there in the phone , we can not test it out
I don't understand what you are asking here. Do you not believe us that there is 3D hardware in the phone?
Of course you can't test this out yourself yet, because phone devices are not yet available. In the meantime, we are giving you as much info as we can about what the API is (including not just a Windows implementation of that same API, but a full phone emulator!) plus we are showing you demos of this same API running on actual devices.
I'm not sure what more you think we could be doing here?
> what about the windows smid ND THE XBOX360 VMX support
That is a totally unrelated topic, plus, correct me if I'm wrong, but I'm pretty sure nobody from Microsoft (marketing or otherwise) has ever promised or hinted anything about VMX being supported in XNA.
> Shawn and the microsoft team release the wrapper for this
Sorry, I don't understand what wrapper you are talking about?
Shawn , the vmx xbox360 support
it will speed up things by 45% or even more
i really like the new framework for windows, xbox,phone , i am starting to make a little tool that you can use dynamic shaders on windows and xbox360 and make baking of lightmaps for the phone,, it will be finish in a month or so ,pehaps i will put it to download at my website along with 3some runtime stuff to support the five effects
thanks for the info, and a nice talk,
i will head to bed it i3s about 03:00 in the night here in denmark
Google Alerts just popped me this link, and while I'm not here to spout a bunch of stuff, I did want to go on the record and say that The Harvest definitely only uses XNA 4.0 as-is. There are no secret shaders that we had access to, or anything else like that ;)
The guys here at Luma Arcade have had plenty of experience working on titles for hardware that do not support custom shaders, and as such, we are all pretty good at the art of making things look as good as possible with minimal technology.
Instead of focusing on finding faults with the awesome work that Shawn and the other guys at MS have managed to put together with XNA 4.0 and the Windows Phone 7 Series hardware, you guys should be thanking them profusely for the power that they have given to all of you (for free!) to make killer games with minimal effort, across 3 great platforms!
Well it wouldnt be very interesting if we didnt find faults...
How else are things such as XNA supposed to improve?
Thats the difficult part of writing software, figuring out what is needed(as opposed to what you think your customers need or they think they need).
Middleware/APIs are very tough in that respect.
XNA is great and I could spend all day saying that... But it would be a waste of time.
> I did want to go on the record and say that The Harvest definitely only uses XNA 4.0 as-is
There you go Michael, straight from the horse's mouth :-)
Thanks Luke, both for popping in here to clarify this and also for making such an awesome demo in the first place!
Thanks for all the info,
and yes it look like an awesome demo game
i take all the words back, but not the words about the marketing folks
as david black says we just whant the best possible framework
that why i keep honking about smid and vmx , tessleation on xbox360,windows and even if it possible on the phone , when microsoft deside to put the right graphics chip in the phone
you see as a hoppyist,or professional gamedeveloper we whant as must power and freedom as possible in the api
and pehaps one day we will have the smid,vmx and tesslation
making great games ,demands a great api to program against
..i keep honking you folks for a better api with multiple choice of programming style and the freedom to create the games we whant to create this is inovation
not all the games looks the same and played the same way ,,we are not bound by an investor read the article bottom
we have the time to create a game that will hit with a wave not seen before
I would caution against thinking VMX would be a cure-all for the math situation on the Xbox360. High performance on the Xbox is more about cache and memory than anything else, and there is a lack of that in C#.
There is a huge delta in performance simply within different ways of accessing, and storing memory used to perform math in C# on the Xbox360 using XNA. I have been doing some performance testing in order to get a firm idea of performance across the different hardware XNA runs on. These are some results from the Xbox360, along with the respective code (Check 'Data' tab): http://spreadsheets.google.com/pub?key=tFdDzunHU3_tHjgmOERyIYA&gid=1 After looking at this data, it is my opinion that the math performance is far more about memory/cache than it is the need for SIMD extensions.
What may be a better way to address performance is an extension which allows the programmer to specify some kind of computer-kernel, using a limited set of instructions, operating over contiguous arrays. Instead of enabling a wide variety of functionality and incurring strange performance characteristics, this would be a single function call which performed an optimized iteration over data streams.
Think about it in the context of a vertex shader. Streams of input are defined, and a limited set of functionality is allowed to operate on the elements in the streams. It would be a very limiting solution, but I think that it has more reusability, and will actually result in better performance. It obtains results by enforcing guidelines over data design, instead of simply adding more options for code. It is also a platform-agnostic solution, and could be optionally implemented (behind the scenes) using SIMD on hardware when appropriate.
Anyway, just another perspective on the issue.
nice benchmark pat
have you tryed to move the float arrays away from local value to a class or struct
then the proforamance will hurt,,
move these away from the class into a nothere class,, if you test proformance , you see when doing physics , we can not do the hole thing in one class and only using the paraticles array in local sapce inside the operting class ,,this is fast offcourse
float px_stream = new float[NumParticles]; float py_stream = new float[NumParticles]; float pz_stream = new float[NumParticles]; float vx_stream = new float[NumParticles]; float vy_stream = new float[NumParticles]; float vz_stream = new float[NumParticles];
and then let your benchmark acess this instead
from your old class
and then try to calculate some physics on the paraticle
this is more a real cenario of programming