(08-17-2010, 07:12 PM)Odin Wrote: Or you could render the SVGs into textures at load time, at a resolution that scales with the screen resolution.
That's it! Rendering engine would have just textures as big and detailed as needed.
(08-17-2010, 11:01 PM)divVerent Wrote: Especially for crosshairs, with pixel graphics you can work way more exact and provide way better quality (if done right).
Well, I think that in theese days, when you can play the game in 640x480 or 1600x1200, not scalable crosshairs are in danger beacuse they easily get pixelized or they has to be unscalable.
Those would be great if we had a hard-coded screen resolution. Then they could be designed with pixels in mind.
Personally, I'd prefer those things to be sharp and simple. Thinking of that, SVG would give us another advantage: as it is all written in XML file, finding some marker and hiding/unhiding stuff that is needed would be easy. Then, engine could render several layers of crosshair, and show proper layers to indicate things.
When you get hurt, your crosshair could spawn a red ring of death around it (or show you approximate direction from where the shot came from), or turn red completely when your health is below 10, when you pick up something, it could flash gently in yellow or blue, when you aim at enemy, a dot in the center could get red instead of black etc (and flash green/blue if your shot was aimed good
, your crosshair could tell you if you're going to be out of ammo soon, or if you're empty already.
Possibilites are endless
Fun is endless
I've never seen things like theese in any game, that would be something innovative
Cerianly, it would require to re-make all crosshair, or simply create one universal design for the beginning, to test (and develop) this feature.
One design could contain weapon-specific parts like different base shape for every weapon. That would make one SVG file a whole crosshair set! In a very consistent style. That would be very development-friendly IMHO
SVG got layers, naming them properly will make them recognisable by the engine, then it can generate proper textures and react for events with the crosshair!
Proposed SVG layer definition:
- base - always visible layer of stuff that is not changing
- pickup - ges visible when player pickup something (different colour could indicate what pickup e.g: green=armor, white=health, yellow=ammo/gun)
- empty - gets visible when player has no ammunition left for the gun he handles
- enemy - gets visible when hitscan detects an enemy in sight (useful for Nex)
- friend - gets visible when you aim at a teammate (should indicate to hold fire)
- hit - gets visible when player give damage to somebody (could be a friend), works same as the 'plink' sound of hit indicator
- wall - gets visible when player would hurt himself (just like blurring the crosshair with TrueAim)
- left - gots visible when player recieve damage from left
- right
- front - in your face!
- back
- hurt - fades from 0 to 100% opacity for health in range of 50-0. So it is 50% transparent for health 25 and 100% opaque (fully visible) for health 0 (meaning player dead
- armor - fades from 0 to 100% for 0 to maximum armor.
Layers priority should be the same is in SVG file to make it configurable by artists.