The next few weeks will concentrate on getting some art assets into the game to make it feel a bit more than just a prototype :)
Here are some images from the first enemy ship known as the A-Minor.
Concept Art
High Poly Render
Final Render
Art Direction
The aesthetic for the game is for a rounded comical 50's style ships. The art will be very simple, almost cartoony so I decided to use vertex colours rather than a texture map.
The technical art decisions for the enemy ships are as follows...
- 2000 - 5000 poly budget
- Vertex colours
- Emission map
- Normal map
- Specular/Gloss map
- Metallic map
Custom Gloss/Metallic/Emission Texture
My requirements had 3 input greyscale textures; Gloss, Metal and Emission. To optimize the shader, I decided to create a single texture which combined all this data into each of the RGB channels.
I created what I call the GME (Gloss, Metallic, Emission) texture which helps me remember what the channels are for :)
To do this, in photoshop I have each channel separated into their own folders. Then for each section which needs some value, for example the cockpit window with emission, I create a solid white layer and mask out just the section I require. I then assign a Opacity value for how much emission I wish this part to have. In this case, I wanted the cockpit window to emit, however I also wanted the other parts to have a HDR boost, so I lowered the opacity for the window to allow this.
Then, the Emission folder is told to fill only the blue channel (GME -> RGB).
The end result certainly looks 'interesting' and at first glance you would not consider this as any meaningful art asset!
However, the shader knows what to do with this ;)
While this ship was very flat in terms of it's gloss maps, here is another example from a different ship which looks a whole lot more interesting due to the way the different channels are layered.
Shading
Due to the vertex colours, I wrote a custom shader to do the shading, simply using the vertex colours while applying a gloss, metallic and emission value from the custom texture mentioned above.
Here's the shader which does all the magic...
Shader "Galactic Metal/Enemy Standard" {
Properties {
_RimColor ("Rim Color", Color) = (1,1,1,1)
_RimPower("Rim Power", Range(0, 10.0)) = 3
_GMEmap ("Gloss/Metallic/Emission Map", 2D) = "white" {}
_Normal ("Normal Map", 2D) = "bump" {}
_NormalMultiplier("Normal Multiplier", Range(0.1,5)) = 1
_Glossiness ("Gloss", Range(0,1)) = 0.5
_Metallic ("Metallic", Range(0,1)) = 0.0
_EmissionAmount("Emission Amount", Range(0,20)) = 1
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
// Physically based Standard lighting model, and enable shadows on all light types
#pragma surface surf Standard fullforwardshadows
// Use shader model 3.0 target, to get nicer looking lighting
#pragma target 3.0
// Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader.
// See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing.
#pragma instancing_options assumeuniformscaling
UNITY_INSTANCING_CBUFFER_START(Props)
// put more per-instance properties here
//UNITY_DEFINE_INSTANCED_PROP(type,var)
UNITY_INSTANCING_CBUFFER_END
sampler2D _GMEmap;
half _EmissionAmount;
sampler2D _Normal;
half _NormalMultiplier;
float4 _RimColor;
half _RimPower;
half _Glossiness;
half _Metallic;
struct Input {
float2 uv_GMEmap;
float2 uv_Normal;
float3 color : COLOR;
float3 viewDir;
};
void surf (Input IN, inout SurfaceOutputStandard o) {
float3 gme = tex2D(_GMEmap, IN.uv_GMEmap);
o.Normal = UnpackNormal(tex2D(_Normal, IN.uv_Normal));
o.Normal.z = o.Normal.z / _NormalMultiplier;
o.Normal = normalize(o.Normal);
half rim = 1-saturate(dot (normalize(IN.viewDir), o.Normal));
o.Metallic = gme.g * _Metallic;
o.Smoothness = gme.r * _Glossiness;
o.Emission = ( IN.color * (gme.b * _EmissionAmount) ) + (_RimColor * pow(rim, _RimPower));
o.Albedo = IN.color;
}
ENDCG
}
FallBack "Diffuse"
}
Which nets this cool result here, notice the gloss map has a high specular highlight on the cockpit window and the body of the ship, this ship also has more of a metallic shine while the blue jets have a mat finish, no gloss.
InGame With Shader
Conclusion
Everything is in the right direction, now it's just a matter of pumping out some art assets and polishing the UI for the alpha test :)
I'll post some more artwork as they come.










