I am having issues while running my project on low end machines. When I run a windows build on the following machine. Most of the 3D objects weren't showing up & some were showing up as pink:
DELL Optiplex 745
Intel (R) Core(TM)2Duo 2.20GHz
Bit OS, Windows 7
RAM: 2.00 GB
Video Card: Intel(R) Q965/Q963
Unity Version: 5.6.1f1
Upon investigating I came to know that Unity's minimum requirement for Windows is DirectX 9 with shader model 3.0 where as this system has shader model 2.0. I guess that is the reason its isn't working on this particular system. I tried creating a separate project & used some of the built-in shaders in it. Some of them work on the separate build (Like Standard shader works if Emission property is turned off. If I turn on emission the object doesn't show up in the scene) but when I try to add that same scene in my main project it doesn't work. I have also tried by changing all the materials to standard & turned off emission on my main project but still it doesn't work.
Can anyone guide me how I can resolve this issue? And is there a way for me to run my application on systems that don't support shader model 3.0. Or How can I setup a project on Unity that supports shader model 2.0?
In short, games typically are not locked to a specific graphic fidelity, rather the user is able to choose options like AA; bloom; ambient occussion and so forth which in relatity results in the application either choosing a preset of shaders (those marked low detail for example) or to regenerate new shaders based on the chosen options and tailored for the custom machine prior to the game launching.
You can always tell when the latter is occurring when a AAA game says "optimising shaders for your machine".
XNA had the concept of Reach and HiDef graphic profiles.
For more info, ask over at gamedev.net.
Related
I was experimenting in unity with just 2 game objects, no textures and only 40 lines of code, but when I built it to android it was about 17 mb, then I changed the managed stripping level to high and it went down to 11mb, but after that it wouldn't go down even if I deleted every game object and script in the project. what can I do to make it smaller.
That's the size of the engine, you can't get lower than that. I guess you're looking for making an instant game. You can't do it in Unity! In Unity they're working on a specific version named "Unity Tiny" for this purpose but it's still not released!
I think you did everything you need to do, but take in practice to always compress the texture, meshes and animation clips also just put what you need, also care about object's vertices and polygons number.
to check the assets contributions in the built file size go to the Console window
(menu: Window > General > Console) click the small drop-down panel in the top right, and select Open Editor Log and check your assets contribution for optimization.
And last thing you can do to reduce size is reducing .NET library size.
Unity supports two .NET API compatibility levels: .NET 4.x and .NET Standard 2.0. The .NET Standard 2.0 restricts you to a smaller subset of the .NET API, which can help keep size down.
and if this solution does not help so you reached the smallest size which is just the rendering and mono functions.
You need to build only for one plaform and use L2CPP:
Edit -> Project Settings -> Player -> Configuration
Check only ARMv7.
Screenshot
I can clearly remember building 7mb applications.
This issue is getting real tiresome and I've been spending atleast 2 days looking around for an answer. Basically, I want to publish a game, and I've hired a friend of mine to test it out before I officially release it. Whenever he runs it, reports as "nothing happends".
These conditions are met:
He has installed the .NET Framework 4.0 and the XNA Redistributable 4.0 (he most likely also has installed other .NET Frameworks and XNA Frameworks as well, because nothing worked).
The game is compiled onto a Release build.
GamerService referenced is removed.
A possible issue could be that he's using Win8, but as my searching experience goes, XNA DEVELOPMENT is only restricted on Windows 8, right?
So, what's going on? I'm clueless.. I even put a MessageBox.Show(); after the execution of my game in my Program.cs file via try/catch, and no results.
Are there any extreme conditions in my code that I need to meet?
Any site describing 100% of all requirements to run an XNA game and the most proper way to build it?
Any issues when using non-distributable "developer tools" in XNA coding? If so, what includes in these "developer tools", and what do I need to modify? (I noticed that on another thread).
An answer to this issue would more than make my day...
Ah, and also, I tried running it on a virtual machine ( Windows 7 ) but then it spat out a messagebox saying Index outside the bounds of the array on a perfectly valid code execution, and various other random errors such as missing files when they clearly are there.
Thank you greatly!
In summary I think your app wont run on Windows 8, let me explain:
Windows 8
A possible issue could be that he's using Win8, but as my searching experience goes, XNA DEVELOPMENT is only restricted on Windows 8, right?
Officially, desktop games using unmodified Microsoft XNA 4/is not supported on Windows 8 in any form:
Microsoft officials have said the XNA tools/runtime environment used primarily by game developers isn't supported on Windows 8. - Read more...
Redistributables
Any issues when using non-distributable "developer tools" in XNA coding?
That depends on whether they are required at runtime on the target machine. That might sound like an oxymoron but in Windows c/c++, I can have an app that depends on Microsoft DLLs but we are not allowed to deploy the DLLs, one must depend on it being present in the OS; service pack or some other form. Is there something you are missing?
Windows 7
Ah, and also, I tried running it on a virtual machine ( Windows 7 ) but then it spat out a messagebox saying Index outside the bounds of the array on a perfectly valid code execution
This is more interesting and I suspect is one of the more testable aspects of your application (also that it is not Windows 8). I suggest you setup a remote-debug session to your Win7 VM or if that is not possible, use Debug.WriteLine() or equivalent displaying critical state contents.
When i try to run my program i get this error:
"No suitable graphics card is found. Could not find a Direct3D device
that supports the XNA Framework Hi-Def profile. Verify that a suitable
graphics device is installed. Make sure your desktop isn't locked, and
that no other application is running in full screen mode. Avoid
running under Remote Desktop or as a Windows service. Check the
display properties to make sure hardware acceleration is set to Full."
I tryied to search: i can't set Rearch profile because i have to use Hi-Def libraries. I tryied to uninstall and install XNA 4.0 and .NET 4.5 but it doesn't work.
What i should do?
My laptop:
Pentium (R) Dual-Core CPU 2.2GHz
RAM: 4GB
Windows 7 Ultimate 32 bit
DirectX 11
Mobile Intel(R) 4 Series Express Chipset Family
Intel Graphics Media Accelerator (GMA) 4500MHD
Your graphics card does not meet the XNA requirements. Why do you have to use Hi-Def? Your DirectX sounds up to date, but those are still very low end cards. Read the exact specifications on Shawn Hargreaves blog for more information.
You can set your XNA project settings in the corresponding tab to target Reach profile, not the HD one. This will probably let you run the app, but beware the performance may be very low.
You may still be able to reference the HD libs and call their methods. Try to solve specific problems you have with that approach instead.
But really get a discrete graphics card if you want high performance and less problems.
Im trying to create a media player (in C# .net 4.0) that will work on windows XP (SP3), vista and 7. Normally I would just go the easy way and use WPF's own MediaElement, but since that relies on Windows Media Player 10 or newer, that wont work as Windows XP SP3 may only have WPM9.
First I tried downloading Jerimiah Morill's WPF MediaKit sample application, but this used the EVR which wont show on my test machine (a Windows xp SP3 only with default codecs and default programs, plus the various .Net framework installations). I also downloaded the binaries and tore these apart, creating a new project only with reference to the DirectShow-dll and the bare minimums from the WPF mediakit, this time with no reference whatsoever to EVR. Still no luck. This i'm having a hard time understanding - should'nt even Windows XP be able to play movies using VMR stright out of the box?
I found some samples of media players where one of these works. This one is called DxPlay and uses directshow's graphbuilder, but is built in winforms, has some rather raw-looking code, and will not scale, seek, handle audio, and in general seems rather sketchy.
So, Is there any easy way to create a media player that will play on all the mentioned platforms without pushing WMP10+? I had high hopes for WPF MediaKit, but something is preventing it from playing on Windows XP SP3 (any solution to this would be very interesting).
Thank you very much in advance!
-ruNury
I would try to wrap VLC media player in your .Net project.
Here are some .Net projects that might help you:
http://vlcdotnet.codeplex.com/
http://sourceforge.net/projects/libvlcnet/
http://www.codeproject.com/Articles/109639/nVLC
MSDN suggest EVR (Enhanced Video Renderer) for video output in systems where it is supported: Windows Vista and later. With its introduction, its predecessors - Video Mixing Renderer filter (versions 7 and 9) were cut on smooth scaling of video. Video Mixing Renderer 7 is also less capable in terms of customization, however it consumes far less resources (does not use Direct 3D) and you can output way more videos at once.
Your standard solution here is to support both VMR and EVR output and use the latter starting Windows Vista, fall back to the former otherwise.
EVR is "unofficially" installed in Windows XP with .NET runtime and can be used with an instantiation trick: you the respective DLL is not COM registered and you cannot create an instance using CoCreateInstance API, however you succeed if you do CoLoadLibrary, DllGetClassObject and friends.
For C# development you typically consume DirectShow through DirectShow.NET Library.
This question already has answers here:
Graphics Card and XNA 4.0
(3 answers)
Closed 2 years ago.
My problem is that I have written code in Visual C# for a background for a game that is part of my grade in a class. The background has multiple layers moving at different speeds is how I modified some code... I did this in 2008 version with XNA 3.1 and it worked fine and the background ran like intended. But when I went and ran the exact same code in the 2010 version on XNA 4.0 this error message appeared that states:
"No suitable graphics card found.
Could not find a Direct3D Device that supports the XNA Framework
HiDef profile.
Verify that a suitable graphics device is installed.
Make sure the desktop is not locked, and that no other application is
running in full screen mode.
Avoid running under Remote Desktop or as a Windows service.
Check the display properties to make sure hardware acceleration is set
to Full."
I understand that is says I need a better graphics card,but i was confused at the fact is worked in 2008 easily... so I went and change my setting to try and fix the problem to no avail. Is my graphic card not good, even though it worked in 2008 consistently? Have anyone else encountered this message and if so how did you fix it? I am wondering how do I make it so that I can run the said background in 2010 version. Appreciate any assistance...
There are many breaking changes between XNA 3 and 4. I would finish out the project in 3.1 if I were you. In 4.0:The HiDef profile requires DX10 hardware. The Reach profile supports older hardware.
This covers how to get to the older profile and what is covered by it.
Link
You need to have a better graphics card... Xna 3.1 uses Shader version 1.2 and Xna 4 uses shader 3 version. Your card doesn't support the correct shader version.