Sign in to follow this  
GiroKa

Xna Hidef too power Hungry

Recommended Posts

Hi we have a game soon to be release (www.xtractordefender.com) the game install correctly on our 4 years old computer with  good (middle range) video card . We tested on computers and laptop with onboard video adpter and most of the failed. Our game is an ISO 2D and we used 4096X4096 graphic capabilty of the Hidef profile. We are thinking now to cut our graphic in half and go with the reach profile . Any thoughts would be appreciated.

 

THX

Edited by GiroKa

Share this post


Link to post
Share on other sites

I highly doubt that the graphic content is the problem here (No offense!), so the problem may lie elsewhere.

 

I personally don't have experience with XNA, but try profiling your code, you might get something good out of it.

 

-MIGI0027

Share this post


Link to post
Share on other sites

None taken it is a 2d iso smile.png,

 

It run @ 65 FPS with 200 more sprites per screen the code is optimize.

 

The error i get on the onboard Video adapter is The current display adapter does not meet requirements.

 

That is why i'm intertaining use the  reach profile to minimized the requirement or should I stay with HiDef because it will also run on Xbox 360.

 

ThX

Edited by GiroKa

Share this post


Link to post
Share on other sites

My recommendation would be to check the capabilities on startup.

 

If you are unable to initialize with your "ideal" settings, use the Reach configuration as a fall back. You can query max texture size on most video cards. It is likely that many don't support 4k x 4k and thus can't load XNA HiDef profile.

 

It should be easy to load low resolution variants.

 

Better yet, try to split up your textures into 1024 x 1024 versions universally. This size has sufficient level of detail on many 2D and 3D projects I have worked on, and will open up many more video card possibilities for you.

Share this post


Link to post
Share on other sites

Thanks djtesh,

 

I'll bach split to 1kX1k  all my sprites and make updates to my Draw class to accomodate 4 part sprite draw and use the reach profile and see where it goes smile.png

 

Maybe will go with distributing the low and High res version.

 

Thx.

Edited by GiroKa

Share this post


Link to post
Share on other sites

When I was doing 2D isometrics, I had a similar problem with older hardware. I quickly noticed that you can't do computations every frame (not even tile position computation). You need to cache results, don't do it every frame and avoid multiplication like the plague. Eventually I created a system that updates a cache progressively, and when it does it only uses integer addition. Rendering was done from the cache, with absolutely zero computations (except for the cache traversal, which technically increases some indices).

 

Keep in mind, this was on a very old PC. Since my game looked like crap and like something that would have been made two decades ago, I wanted it to work just fine on old computers. I did not manage to find an old computer, but I did run it on something with 900-1200 Mhz.

Share this post


Link to post
Share on other sites

I looked at your game screenshots again. I'm not sure how you have 4k textures being utilized other than UI.

 

Here are some more general pointers, just in case.

 

- Group your textures into a texture atlas logically (such as a UI atlas, an Enemies atlas, a Player atlas etc).

    - Proper grouping will allow you to batch your draw calls without having to change the texture state.

 

- Make sure that if you are drawing something at a size of 64x64, you are not utilizing a 256x256 texture on it. That is overkill and it will affect performance. Generally for 2D games, you want the texture size to be close to the object's size. If they are a perfect match, you will see "pixel perfect" results.

 

- If you aren't already, for UI, try to implement reusable textures and Scale 9 grid (like in Flash).

 

- Instead of using unique textures for all solid colors, reuse a White 1x1 texture and blend your solid colors on to it using vertex color blending.

 

Good luck with your project!

Share this post


Link to post
Share on other sites

Thanks for the tips

 

Yah ! I group evereything that is the way I get a FPS of 64 by never loading any image twice and clearing unused content in my level defined content manager class and also  proper throttling of methodes and events.

 

For how I get 4K sprite I read somewhere  it was better to load one big sprite sheet instead of multiple small one so my Xtractor platform unit is a 256X256 sprite and I got it rendered in 32 ISO directions perspectives making 2 sprite sheets of 4K X 4K maybe that is wrong ?.

 

All my sprite are not scaled they are draw 1:1 scale.

 

Anyhow ! Just finish splitting my stuff in 1k X 1k maximum like you suggested and they are now all in the power of 2  I knew my homemade  tool sprite packer /image transform would come in handy smile.png

 

Now it's back to testing  and  see if this reach profile is decent.

 

Thx

Edited by GiroKa

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this