Friday, May 7, 2010

GameDesign-Note(Level.2)

GameDesign -

"Game design" 創造規則和遊戲內容,不包含 programing , art , animation , marketing,而這些全部稱為"Game development",而"Game design"是"Game development"的一部分。

SystemDesign -

1.遊戲如何開始?(Rule for setup)
2.遊戲開始,什麼事情會發生在玩家身上且玩家人做什麼事?(Rule for progression of play)
3.遊戲如何結束,當勝利或失敗,這些如何判斷?(Rule for resolution)

What is a Game Designer -


1.Artits -遊戲可以是一種藝術的格式。
2.Architects - 創造藍圖(in the form of prototypes)。

3.Party hosts -邀請玩家到遊戲裡。
4.God - 創造世界、物理規則,管理世界。

How is a game designed?

1.Waterfall method


2.Iterative approach
In general, the more times you iterate, the better your final game will be.


缺點:implementation risk,market risk

------------未完成






XNA-Animation-(part3)



Holding Item

Sunday, April 18, 2010

XNA-ShaderEffect(Step.3)



Norma Map:

  float3x3 tgtSpace;
  tgtSpace[0] = mul(input.Tangent,skinTransform);
  tgtSpace[1] = mul(cross(input.Tangent,input.Normal),skinTransform);
  tgtSpace[2] = mul(input.Normal,skinTransform);

  float3 tgtLightDir1 = mul(lightDir1,tgtSpace); ***
  float3 tgtLightDir2 = mul(lightDir2,tgtSpace); ***


-----------------------------------------------------------------------------------
PixelShader

return    outColor * (diffuse*2) +Specular Light;

Wednesday, March 31, 2010

XNA-ShaderEffect-Shadow(Step.2)




Disable Diffuse light

DepthStencilFormat :DepthFormat.Depth24Stencil8;(According to Computer Hardware)
----------------------------------------------------------------------------------------------

            GraphicsDevice.Clear(ClearOptions.Stencil, Color.Black, 0, 0);
            GraphicsDevice.RenderState.StencilEnable = true;
            GraphicsDevice.RenderState.ReferenceStencil = 0;
            GraphicsDevice.RenderState.StencilFunction = CompareFunction.Equal;
            GraphicsDevice.RenderState.StencilPass = StencilOperation.Increment;
            GraphicsDevice.RenderState.AlphaBlendEnable = true;
            GraphicsDevice.RenderState.SourceBlend = Blend.SourceAlpha;
            GraphicsDevice.RenderState.DestinationBlend = Blend.InverseSourceAlpha;

----------------------------------------------------------------------------------------------
Control ShadowEffect

Tuesday, March 30, 2010

XNA-ShaderNote

GlobleVaule

struct VertexShaderINPUT
{
   float4 Postition : POSITION0;     //Require
}
struct VertexShaderOUTPUT
{
     float4 Postition : POSITION0;   //Require
}

VertexShaderOUT VSBasic(VertexShaderINPUT input)
{
   float4 WorldPostition= mul();
   float4 ViewPosirion= mul();
   return output;
}

float4 PixelShader() : COLOR0
{
   return float4;
}

technique NAME
{
   pass NAME2
   {
    compile Version;
    }
}
----------------------------------------------------------------------------------------------
Shadow

FX:

1.Create PixelShader for technique
2.Define technique
C#:

1.Define Matrix for shadow
                 Matrix.CreateShdow(Light,Plane)
Draw Funtion()
1. Define Matrix[] for shadowBones And get Bones.Length
2. Bones[i]*shadow
3.Draw Model
4.Check RenderState

            GraphicsDevice.Clear(ClearOptions.Stencil, Color.Black, 0, 0);
            GraphicsDevice.RenderState.StencilEnable = true;
            GraphicsDevice.RenderState.ReferenceStencil = 0;
            GraphicsDevice.RenderState.StencilFunction = CompareFunction.Equal;
            GraphicsDevice.RenderState.StencilPass = StencilOperation.Increment;
            GraphicsDevice.RenderState.AlphaBlendEnable = true;
            GraphicsDevice.RenderState.SourceBlend = Blend.SourceAlpha;
            GraphicsDevice.RenderState.DestinationBlend = Blend.InverseSourceAlpha;

Monday, March 29, 2010

XNA-ShaderEffect-Shadow(Step.1)




Shadow

Matrix[] Shadow;
Matrix[] shadowBones = new Matrix[Bones.Length];
for()
{
    shadowBones[i] = Bones[i] *shadow;
}
foreach()
{
draw View,Bone,Projection
}
------------------------------------------------------------------------
//GraphicsDevice.RenderState.FillMode = FillModel.Point;
//GraphicsDevice.RenderState.FillMode = FillModel.Solid;
                                                                          

Sunday, March 28, 2010

XNA-ShaderEffect(Step.2)


Normal Map with Diffuse Light

BlackLine: The Diffuse Light  Direction (1,1,1) And (-1,-1,-1,-1)

float3 Data1: TEXCOORD1

Remove :
                  saturate(dot(input.Date1,normalize(lightDir1)));