Hi Masfa,
I too am in the "Not enough specs" boat (though I'm hoping to get an external GPU sometime in the near future). I have a Quadro M1000M 2gb, which is kinda like a 930MX (twice as powerful rendering, but same amount of VRAM, and that's what's killing you.
Here are my tips on getting it to run better, though you still will have to restart the game every few hours potentially. And obviously, not affiliated with Egosoft, and I cannot take responsibility for results.
While I'll try to provide advice if you have problems, please exercise common sense. I cannot take responsibility for any issues you run into, and if you do not understand what these steps are doing, you probably shouldn't do them. That being said, this is personally what worked for me, and I hope someone finds it helpful.
These are roughly in order from easiest to hardest. First, the easy stuff.
- The easiest thing you can do which I found helped make things a lot less frustrating: right-click the game on the left side of Steam. Click Properties. Click "SET LAUNCH OPTIONS" in the menu that pops up. Enter -skipintro into the box and hit "OK". No more loud intro every time you launch!
- If you haven't set your graphics settings to Custom in X4, do so. Crank the LOD setting (Level of Detail) to 0. Yes, 0. I also cranked Effect Distance down to 3. This will cause stuff to not load in until you're a lot closer, but oh well. For reference, the Low Setting defaults each of these to 15. This step might be the most important of all of them.
- [Optional] When you want to play X4, go to Settings -> Display. Change your resolution to your target resolution (i.e. 1280x720 or whatever). You'll get a bunch of warnings which personally I just ignore. In my case, the native resolution is 1920x1080; what works well for you probably depends on the native resolution of your display and your exact hardware (since this has to do some scaling). This will require some trial and error; I personally found that 1280x768 makes the text look a bit better than 1280x720 did for some reason, but also you should try 1280x720 (that's exactly 2/3s of 1920x1080). Now, open X4. Go into the Graphics Settings and change Display Mode to Borderless Window. Ta-da! X4 is now full screen. Sure, the text may be a bit fuzzy (as I mentioned, worth trying several resolutions to see what looks best on your monitor), but at least it isn't tiny any more. When you're done playing X4, go back into Graphics Settings and change your resolution back to the highest it supports.
The harder stuff - only applicable to dual-GPU systems (e.g. many laptops with Intel CPU/integrated graphics + Nvidia GPU).
This set of bullet points go together; don't start it until you've read through all of it, understand what it means, and accept responsibility for anything that goes wrong. You could end up worse off if you don't do both steps .
The early steps involve trying to make sure applications default to using the integrated graphics, and the later steps deal with making sure that your games instead use the higher-performance GPU. If you don't do both, you'll end up with worse/unplayable performance in X4 and/or other apps. If you do the first part and can't get the second part, make sure you undo the first part. Again, make sure you know what you're doing.
I will refer to the integrated graphics as GPU0 and the discrete, high performance graphics as GPU1 (e.g. the 930MX in your case). This is how they show up on my machine, and hopefully how they show up on yours too. If they're reversed, then you'll need to switch GPU1 and GPU0 in these steps.
- Make sure X4 is running on your GPU1 (again, hopefully the 930MX in this case). Easiest way to do this is to open Task Manager. Go to the Performance Tab. Make sure that the 930MX (or, for other readers, whatever more powerful card exists in your laptop) corresponds to GPU1. Rightclick the row starting with name, then check GPU engine. Make sure that X4 has GPU1 in the GPU engine column that just appeared.
- Make sure absolutely nothing else is running on your 930MX, you need every bit of VRAM you can get. There's some way to set the default GPU for apps to use, but I can't find it in my settings anymore. There are probably guides online for this step for your particular flavor of graphics card. The Graphics part of Windows 10's settings app will let you tell specific apps to use specific GPUs, if everything is set up right. If everything is defaulting to running on the 930MX, tell any apps you want to have open when playing X4 to use the "power saving" (which is the Intel Integrated Graphics, unless something has gone horribly wrong) GPU instead using the Graphics setting as mentioned above.
- In my case, I think I needed to do this for Steam (so that X4 but not steam used my better graphics card. On the Graphics Setting page, Classic App should be selected. Click Browse, then rightclick the folder path bar at the top. Enter C:\Program Files (x86)\Steam and hit enter. Now rightclick on Steam.exe, and click add. Repeat for C:\Program Files (x86)\Steam\bin\cef\cef.win7x64, now selecting steamwebhelper.exe (it does all of the webpages in Steam)
- I think X4 defaulted to using GPU1 from the beginning, and if it wasn't, you probably couldn't even start a new game without crashing. However, if for some reason it isn't using GPU1 at this point in the procedure, you should be able to instead just repeat the above step for C:\Program Files (x86)\Steam\steamapps\common\X4 Foundations selecting X4.exe, but instead setting it to use the High Performance GPU.
- At this point, going into Task Manager with X4 open should show just X4 using GPU1, and everything else using GPU0. I will note that this process may make other apps run a bit less smoothly, but personally I haven't noticed it. You'll also have better battery life if they were using GPU1 before. This is most likely to matter for other games. So you may want to set up other games to use GPU1 if necessary as well, as described for X4 in the previous step.
- Similarly, when X4 is not open, and all other apps you want to have open in the background are open, the load on GPU1 in Task Manager should be zero. Click on the little graph labeled with 930MX, and make sure all the graphs and stats basically say 0, including the dedicated and shared GPU memory ones, since those are what we care most about (aka VRAM).
- A personal quirk of mine is having Youtube Videos running in the background, more or less like a podcast. At least on my system, this seems to tank performance, even though it's supposedly running on GPU0. Forcing the video to use a lower resolution (e.g. 144p since I'm not watching it anyway) seems to mitigate this.
I hope some people find this helpful. I know it's not perfect by any means, but personally, I find it reasonably playable with 2GB of VRAM with the above steps followed. I tried to make it as clear as possible, but again, if you're not comfortable messing with random settings on your computer and willing to take responsibility for the results, don't.