Gradients do work, fairly reliably, it's the way that applications handle the code that causes the problem... (well it's GTS's intolerant execution of SVG too.. but we can't control that!)
This is the simplest gradient I've uploaded to the game...
<svg xmlns="
http://www.w3.org/2000/svg" width="1200" height="400" version="1.1">
<defs>
<linearGradient id="G1">
<stop offset="0%" style="stop-color:red"/>
<stop offset="20%" style="stop-color:brown"/>
<stop offset="40%" style="stop-color:yellow"/>
<stop offset="60%" style="stop-color:blue"/>
<stop offset="80%" style="stop-color:green"/>
<stop offset="100%" style="stop-color
urple"/>
</linearGradient>
</defs>
<rect fill="url(#G1)" x="0" y="0" rx="0" ry="0" width="1200" height="400"/>
</svg>
it looks like this...
Inkscape tends to use "matrix transforms" for gradients IIRC, which don't work in GTS. I think it does this if you alter any aspect of the shape or gradient after applying it. It doesn't re-write the code - it just kind of applies a transformation to it.
Radial gradients work too, and you can include opacity to the styles.
A more practical application would look like this...
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "
http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><!-- Creator: CorelDRAW --><svg xmlns="
http://www.w3.org/2000/svg" xmlns:xlink="
http://www.w3.org/1999/xlink" xml:space="preserve" width="32.6619mm" height="18.5409mm" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" clip-rule="evenodd" viewBox="0 0 28.6077 16.2395">
<defs>
<linearGradient id="id0" gradientUnits="userSpaceOnUse" x1="5.35711" y1="7.63342" x2="22.3375" y2="8.56378">
<stop offset="0" stop-color="#8A0000"/>
<stop offset="1" stop-color="#FF0400"/>
</linearGradient>
<linearGradient id="id1" gradientUnits="userSpaceOnUse" x1="16.8464" y1="-0.0271521" x2="16.8464" y2="1.71987">
<stop offset="0" stop-color="#B8B800"/>
<stop offset="1" stop-color="yellow"/>
</linearGradient>
<linearGradient id="id2" gradientUnits="userSpaceOnUse" x1="15.0295" y1="3.52067" x2="15.0295" y2="5.32129">
<stop offset="0" stop-color="#B8B800"/>
<stop offset="1" stop-color="yellow"/>
</linearGradient>
<linearGradient id="id3" gradientUnits="userSpaceOnUse" x1="13.4465" y1="7.12218" x2="13.4465" y2="8.9228">
<stop offset="0" stop-color="#B8B800"/>
<stop offset="1" stop-color="yellow"/>
</linearGradient>
<linearGradient id="id4" gradientUnits="userSpaceOnUse" x1="11.9198" y1="10.7237" x2="11.9198" y2="12.5243">
<stop offset="0" stop-color="#B8B800"/>
<stop offset="1" stop-color="yellow"/>
</linearGradient>
<linearGradient id="id5" gradientUnits="userSpaceOnUse" x1="10.8866" y1="14.4209" x2="10.8866" y2="16.1438">
<stop offset="0" stop-color="#B8B800"/>
<stop offset="1" stop-color="yellow"/>
</linearGradient>
</defs>
<g id="Capa_x0020_1">
<path fill="url(#id0)" d="M28.6077 0.0007007l-5.89665 12.7558c-0.673022,1.5129 -2.03685,3.14509 -4.70914,3.483 -4.88931,0 -9.79377,-0.0524649 -14.684,-0.0984483 -4.23109,-0.0483483 -3.59958,-2.75874 -2.52024,-5.34809l2.83556 -6.80266c1.0634,-2.55125 3.19826,-4.03253 4.93179,-3.98961 6.68109,0 13.3614,0 20.0426,0z"/>
<path fill="url(#id1)" d="M28.6077 0.0007007l-0.794681 1.71917 -22.7281 0c1.06068,-1.13251 2.35479,-1.74702 3.48011,-1.71917 6.68109,0 13.3614,0 20.0426,0z"/>
<path fill="url(#id2)" d="M26.9805 3.52067l-0.832431 1.80071 -23.0697 0c0.250237,-0.600325 0.480067,-1.21738 0.768493,-1.80071l23.1336 0z"/>
<polygon fill="url(#id3)" points="25.3157,7.12218 24.4832,8.92289 1.57728,8.92289 2.32781,7.12218 "/>
<path fill="url(#id4)" d="M23.6508 10.7237l-0.832431 1.80071 -22.6297 0c0.147235,-0.562312 0.366641,-1.14976 0.609083,-1.73143l0.0289039 -0.0692817 22.8242 0z"/>
<path fill="url(#id5)" d="M21.7265 14.3252c-0.696496,0.805455 -2.0231,1.70086 -3.72457,1.91431l-15.1092 -0.113601c-1.87236,-0.111061 -2.65819,-0.814038 -2.84607,-1.80071l21.6798 0z"/>
</g>
</svg>
Which looks like this...
Yes, I know that's not optimised very well, but if it's under 15kb I don't care!
@BLiTZ had some thoughts on the resolution issue, not sure if he got anywhere.