Gamestudio Links
Zorro Links
Newest Posts
Free Live Data for Zorro with Paper Trading?
by AbrahamR. 05/18/24 13:28
Change chart colours
by 7th_zorro. 05/11/24 09:25
Data from CSV not parsed correctly
by dr_panther. 05/06/24 18:50
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
4 registered members (degenerate_762, AbrahamR, AndrewAMD, ozgur), 667 guests, and 8 spiders.
Key: Admin, Global Mod, Mod
Newest Members
Hanky27, firatv, wandaluciaia, Mega_Rod, EternallyCurious
19051 Registered Users
Previous Gallery
Next Gallery
Print Thread
Rating: 5
Page 2 of 3 1 2 3
Cubme #291016
09/22/09 22:49
09/22/09 22:49
6 Images
Joined: May 2006
Posts: 148
Latvia
MTD Offline OP
Member
Cubme

Hi everyone,

I'm presenting my first "finished" game - Cubme.

It's a game for everyone with puzzle elements where You need to complete different puzzles and tasks to complete the level.
Some levels have secret "hidden" items which You need to find to get a better score - so watch out.
(some items become only visible when You do something special)

Shortly whats in the game:
- Lots of snow cubes
- Puzzles form easy to confused ?
- Chance to drive a sledge from hill
- Play a Free mode (You get a big space where You can write something in snow)
- Funny kids that cheer You up wink
- Levels where You need to run against time
- And many other things that are included in Cubme web page

Cubme Trailer:
http://www.youtube.com/watch?v=JTW847PfZaQ

There's also a demo version which You can download here

Thanks for reading.
Suggestions and comments are welcome. smile
23 Comments
Re: Cubme [Re: MTD] #292990
10/08/09 12:53
10/08/09 12:53
Joined: May 2006
Posts: 148
Latvia
MTD Offline OP
Member
MTD  Offline OP
Member

Joined: May 2006
Posts: 148
Latvia
New video for Cubme
Level 6 step by step. Try to get a key from dog + Find a secret. wink

Cubme - Level 6

Re: Cubme [Re: MTD] #293009
10/08/09 15:59
10/08/09 15:59
Joined: Feb 2006
Posts: 2,185
mpdeveloper_B Offline
Expert
mpdeveloper_B  Offline
Expert

Joined: Feb 2006
Posts: 2,185
The game looks pretty good. Very professional. The only thing I recommend is a good toon shader, here's my modification of BoH_Havoc's toon shader:

Code:
/******************************************************************************************************
Toon-Shader by Wolfgang "BoH_Havoc" Reichardt Modified by MangaPage

Entity Textures:
	Skin1 = Colormap 
	Skin2 = Normalmap (RGB) + Hatchmap (A)

Material Textures:
	Skin1 = Toon Lookupmap (not used yet)
	
Usage:
	Uncomment/Comment the #defines to add/remove an effect.
	vecSkill1.x sets the diffuse shadow alpha (mtl.skill1)
	vecSkill1.y sets the specular power (mtl.skill2)
	
******************************************************************************************************/

/***************************************TWEAKABLES*****************************************************/

// Default Values (will be used if vecSkill1, vecSkill5 or vecSkill9 hasn't been set): 
float specularExp = 30; // vecSkill1.y | sharpness of the specular lighting
float shadowAlpha = 0.5; // range: 0-1 | 0 = pure black shadow | 1 = no shadow at all
float brightness = 1.5; //0-inf 0 = black recommended betweeen 1 and 2
float diffusecoverage = 3;
//

//misc
float3 specColor = {0.4, 0.4, 0.4}; // <--- this is new. Sets the specular color. Range 0-1
float outlineStr = 0.15; //outline shadow strength -1 to 1 : -1=off 1=full coverage
float colorRamp = 2; //sets the colorramp, low values result in a more cartoony look
float bumpStrength = 2; // bumpmapping strength
float hatchTile = 10; //tilingof hatch texture
//

// UNCOMMENT/COMMENT TO ACTIVATE/DEACTIVATE

//Use Diffuse Lighting
#define DIFFLIGHT

//Use Specular Lighting
#define SPECLIGHT

//Use Normalmapping
//#define NORMALMAPPING

//Use Hatching Effect
//#define HATCHING

//Create black outline
#define OUTLINE

//Create black shadow
//#define OUTLINESHADOW

//Above Effects will react to sunlight (only needed if you have dynamic lights in your level)
#define DOSUN

//Diffuse Lighting will react to 5 additional dynamic lights including the sun
#define DYNLIGHTS

//Use PixelShader 2.a | set this if you get an errormessage ("code uses too many many arithmetic instruction slots")
//#define PS2A


/***************************************SHADER*CODE****************************************************/

// Matrices
float4x4 matWorldViewProj;
float4x4 matWorldInv;
float4x4 matViewInv;
float4x4 matWorld;

// Passed by the engine
float4 vecTime;
float4 vecFog;
float4 vecViewPos;
float4 vecViewDir;
float4 vecLight;
float4 vecSunPos;
float4 vecSunColor;
float4 vecLightPos[8];
float4 vecLightColor[8];
float4 vecSkill1;
float4 vecSkill5;
float4 vecSkill9;
float4 vecSkill41;

//Textures
texture entSkin1; // Colormap
texture entSkin2; // Lookup-Map
texture entSkin3; // Normalmap

// Color map sampler
sampler ColorMapSampler = sampler_state 
{ 
   Texture = <entSkin1>; 
   MinFilter = Linear;
	MagFilter = Linear;
	MipFilter = Linear;
}; 

//Toon Map
sampler1D lookupSampler = sampler_state 
{ 
   Texture = <entSkin2>;
   MinFilter = Linear;
	MagFilter = Linear;
	MipFilter = Linear;
};

//NormalMap
sampler NormalMapSampler = sampler_state 
{ 
   Texture = <entSkin3>;
   MinFilter = Linear;
	MagFilter = Linear;
	MipFilter = Linear;
};

 
 
// Vertex Shader
void DiffuseVS( 
   in float4 InPos: POSITION, 
   in float3 InNormal: NORMAL, 
   in float2 InTex: TEXCOORD0,
   in float3 InTangent : TEXCOORD0,
   in float2 InShadow : TEXCOORD1,
   out float4 OutPos: POSITION, 
   out float4 OutTex: TEXCOORD0, 
   out float4 OutLight: TEXCOORD1,
   out float3 OutViewDir: TEXCOORD2,
   out float3 OutWorldNormal	: TEXCOORD3,
	out float3 OutWorldTangent	: TEXCOORD4,
	out float3 OutWorldBinorm	: TEXCOORD5,
	out float3 OutWorldPos	: TEXCOORD6,
   out float OutFog : FOG) 
{ 
	// Transform the vertex from object space to clip space: 
   OutPos = mul(InPos, matWorldViewProj); 
	// Pass the texture coordinate to the pixel shader: 
   OutTex.xy = InTex;
   // Pass the shadow coordinate to the pixel shader: 
   OutTex.zw = InShadow;
   
   float3 PosWorld = mul(InPos, matWorld);
  	
   //Light
   #ifdef DOSUN
   OutLight.xyz = vecSunPos - PosWorld;;
   OutLight.w = 100000;//distance(PosWorld,vecLightPos[0])/vecLightPos[0].w;
   #else
   OutLight.xyz = vecLightPos[0] - PosWorld;
   OutLight.w = 0;
   if(vecLightPos[0].w < 100000) OutLight.w = 1-distance(PosWorld,vecLightPos[0])/vecLightPos[0].w;
   #endif
  	//

	//Specular Lighting
	#ifdef DOSUN
	OutViewDir = (vecSunPos) - mul(InPos, matWorld);
	#else
	OutViewDir = (vecLightPos[0]) - mul(InPos, matWorld); 
	#endif
	//
	
	//Environment Mapping
	float3 Binormal = cross(InNormal,InTangent);
	OutWorldNormal.xyz = mul(InNormal, matWorld).xyz;
	OutWorldTangent.xyz = mul(InTangent, matWorldInv).xyz;
	OutWorldBinorm.xyz = mul(Binormal, matWorldInv).xyz;
	OutWorldPos = PosWorld;
	//
	
	//Fog
	OutFog = 1 - (distance(PosWorld, vecViewPos) - vecFog.x) * (vecFog.z);
   //
}

// Pixel Shader: 
float4 DiffusePS( 
   in float4 InTex: TEXCOORD0, 
   in float4 InLight : TEXCOORD1,
   in float4 InViewDir: TEXCOORD2,
   in float3 InWorldNormal	: TEXCOORD3,
	in float3 InWorldTangent	: TEXCOORD4,
	in float3 InWorldBinorm	: TEXCOORD5,
	in float3 InWorldPos	: TEXCOORD6
): COLOR 
{ 
	float3 Ln = normalize(InLight.xyz);
   float3 Nn = normalize(InWorldNormal);
   float3 Tn = normalize(InWorldTangent);
   float3 Bn = normalize(InWorldBinorm);
   float3 Nb = 0;
   float3 Vn = 0;
   float3 Hn = 0;
   float4 lighting = 0;

	//check if vecSkill1 has been set. If not, use default values
	#ifdef DIFFLIGHT
		if(vecSkill1.x == 0) vecSkill1.x = shadowAlpha;
	#endif
	#ifdef SPECLIGHT
		if(vecSkill1.y == 0) vecSkill1.y = specularExp;
	#endif
 
 	//get color
 	float4 Color = tex2D(ColorMapSampler,InTex.xy)*brightness; 
   
   float3 Light1 = Color.xyz;
   
   float3 bumpNormal = 0;
   #ifdef NORMALMAPPING
   	bumpNormal= bumpStrength * (tex2D(NormalMapSampler,InTex.xy).xyz-(0.5).xxx);
   #endif
   
   #ifdef DIFFLIGHT
   	Nb = Nn + (bumpNormal.x * Tn + bumpNormal.y * Bn);
   	Nb = normalize(Nb);
   	Vn = normalize(InViewDir);
   	Hn = normalize(Vn + Ln);
   	lighting = lit(dot(Ln,Nb),dot(Hn,Nb),vecSkill1.y);
   #else
   	#ifdef SPECLIGHT
   		Nb = Nn + (bumpNormal.x * Tn + bumpNormal.y * Bn);
   		Nb = normalize(Nb);
   		Vn = normalize(InViewDir);
   		Hn = normalize(Vn + Ln);
   		lighting = lit(dot(Ln,Nb),dot(Hn,Nb),vecSkill1.y);
   	#else
   		#ifdef HATCHING
   			Nb = Nn + (bumpNormal.x * Tn + bumpNormal.y * Bn);
   			Nb = normalize(Nb);
   			Vn = normalize(InViewDir);
   			Hn = normalize(Vn + Ln);
   			lighting = lit(dot(Ln,Nb),dot(Hn,Nb),vecSkill1.y);
   		#endif
   	#endif
   #endif
   
     //float4 gooch = lerp(float4(0,1,0,1), float4(0,0,1,1) , 1+dot(Nn,Ln)*0.95); //Gooch Shading
      
   #ifdef DIFFLIGHT
   #ifdef DOSUN
   	Light1.xyz *= round(clamp((lighting.y*vecSunColor*diffusecoverage),shadowAlpha,1)*colorRamp)/colorRamp;
   #else
   	Light1.xyz *= round(clamp((lighting.y*vecLightColor[0]*2*InLight.a),shadowAlpha,1)*colorRamp)/colorRamp;
   #endif
   #endif
   
   #ifdef SPECLIGHT
   	#ifdef DOSUN
     		Light1.xyz += (round(lighting.z*colorRamp)/colorRamp)*specColor;
     	#else
     		Light1.xyz += (round((lighting.z*InLight.a)*colorRamp)/colorRamp)*specColor;
     	#endif
   #endif
   
   
   #ifdef HATCHING
   
   	float2 Tile = InTex.xy*hatchTile;
		Tile = frac(Tile)*(float2(0.5,0.5)-2*0.004)+0.004;
		
		float hatchFactor = lighting.y * 4.0;
		float3 weight0 = 0.0;
		float3 weight1 = 0.0;
		if (hatchFactor>3.0) { weight0.x = 1.0; }
		else if (hatchFactor>2.0)
		{
			weight0.x = 1.0 - (3.0 - hatchFactor);
			weight0.y = 1.0 - weight0.x;
		}
		else if (hatchFactor>1.0)
		{
			weight0.y = 1.0 - (2.0 - hatchFactor);
			weight0.z = 1.0 - weight0.y;
		}
		else if (hatchFactor>0.0)
		{
			weight0.z = 1.0 - (1.0 - hatchFactor);
			weight1.x = 1.0 - weight0.z;
		}
		float4 hatchTex0 = tex2D(NormalMapSampler,Tile).a * weight0.x;
		float4 hatchTex1 = tex2D(NormalMapSampler,Tile+float2(0.5, 0.0)).a * weight0.y;
		float4 hatchTex2 = tex2D(NormalMapSampler,Tile+float2(0.0, 0.5)).a * weight0.z;
		float4 hatchTex3 = tex2D(NormalMapSampler,Tile+float2(0.5, 0.5)).a * shadowAlpha;
		float4 hatchColor = hatchTex0 + hatchTex1 + hatchTex2 + hatchTex3;
   	Light1.xyz *= hatchColor.xyz;
		
   #endif
      
   #ifdef OUTLINESHADOW
   	Vn = normalize(matViewInv[3].xyz - InWorldPos);
   	half3 velvety1;
   	float vdn = outlineStr-dot(Vn,Nn);
   	float3 vecColor = float4(vdn.xxx,1.0);
   	velvety1 = float4((vecColor).xyz,1);
   	velvety1 = clamp(velvety1,0,1);
   	Light1 *= pow(1-velvety1,400);
   #endif
   
   return float4(Light1,Color.a);
} 



//----------------------------------------------------------------------------------------------------------------
// LIGHTS
//----------------------------------------------------------------------------------------------------------------

struct VS_LIGHTS0
{
    float4 Pos  : POSITION;

    float4 Light1 : TEXCOORD0;
    float4 Light2 : TEXCOORD1;
    float4 Light3 : TEXCOORD2;
    float4 Light4 : TEXCOORD3;
    float4 Light5 : TEXCOORD4;
    
    float2 Tex : TEXCOORD5;
    float Fog : FOG;
};

VS_LIGHTS0 LightsVS(float4 Pos : POSITION, float3 texcoord0 : TEXCOORD0, float3 Normal : NORMAL, float3 Tangent : TEXCOORD0  )
{
    VS_LIGHTS0 Out = (VS_LIGHTS0)0;
    Out.Pos = mul(Pos, matWorldViewProj);	// transform Position
    
    // compute the 3x3 tranform matrix 
    // to transform from world space to tangent space
    float3x3 worldToTangentSpace;
    worldToTangentSpace[0] = mul(Tangent, matWorld);
    worldToTangentSpace[1] = mul(cross(Tangent, Normal), matWorld);
    worldToTangentSpace[2] = mul(Normal, matWorld);
        
    float3 PosWorld = mul(Pos, matWorld);
	
    //Light1	 
    float3 Light1 = PosWorld - vecLightPos[0].xyz  ; 
    Out.Light1.xyz = normalize(mul(worldToTangentSpace, -Light1));
    Out.Light1.xyz = saturate(dot(1, Out.Light1.xyz));
    Out.Light1.w = distance(PosWorld,vecLightPos[0])/vecLightPos[0].w;
    Out.Light1.xyz *= 1-saturate(dot(Out.Light1.w, Out.Light1.w));
    
    //Light2	 
    float3 Light2 = PosWorld - vecLightPos[1].xyz  ; 
    Out.Light2.xyz = normalize(mul(worldToTangentSpace, -Light2));
    Out.Light2.xyz = saturate(dot(1, Out.Light2.xyz));
    Out.Light2.w = distance(PosWorld,vecLightPos[1])/vecLightPos[1].w;
    Out.Light2.xyz *= 1-saturate(dot(Out.Light2.w, Out.Light2.w));
    
    //Light3	 
    float3 Light3 = PosWorld - vecLightPos[2].xyz  ; 
    Out.Light3.xyz = normalize(mul(worldToTangentSpace, -Light3));
    Out.Light3.xyz = saturate(dot(1, Out.Light3.xyz));
    Out.Light3.w = distance(PosWorld,vecLightPos[2])/vecLightPos[2].w;
    Out.Light3.xyz *= 1-saturate(dot(Out.Light3.w, Out.Light3.w));
    
    //Light4	 
    float3 Light4 = PosWorld - vecLightPos[3].xyz  ; 
    Out.Light4.xyz = normalize(mul(worldToTangentSpace, -Light4));
    Out.Light4.xyz = saturate(dot(1, Out.Light4.xyz));
    Out.Light4.w = distance(PosWorld,vecLightPos[3])/vecLightPos[3].w;
    Out.Light4.xyz *= 1-saturate(dot(Out.Light4.w, Out.Light4.w));
    
    //Light5	 
    float3 Light5 = PosWorld - vecLightPos[4].xyz  ; 
    Out.Light5.xyz = normalize(mul(worldToTangentSpace, -Light5));
    Out.Light5.xyz = saturate(dot(1, Out.Light5.xyz));
    Out.Light5.w = distance(PosWorld,vecLightPos[4])/vecLightPos[4].w;
    Out.Light5.xyz *= 1-saturate(dot(Out.Light5.w, Out.Light5.w));
    
    float ofog = 1 - (distance(PosWorld, vecViewPos) - vecFog.x) * (vecFog.z);
    Out.Fog = ofog;
    
    Out.Tex = texcoord0.xy;
    
    return Out;
}

struct PS_LIGHTS0
{
    float3 Light1 : TEXCOORD0;
    float3 Light2 : TEXCOORD1;
    float3 Light3 : TEXCOORD2;
    float3 Light4 : TEXCOORD3;
    float3 Light5 : TEXCOORD4;
    
    float2 Tex : TEXCOORD5;
};

float4 LightsPS( float4 Light1 : TEXCOORD0,
    float4 Light2 : TEXCOORD1,
    float4 Light3 : TEXCOORD2,
    float4 Light4 : TEXCOORD3,
    float4 Light5 : TEXCOORD4,
    float2 Tex : TEXCOORD5
     ):COLOR0
{
	float3 color = tex2D(ColorMapSampler,Tex);

    float4 shadow1 = Light1;
    float4 shadow2 = Light2;
    float4 shadow3 = Light3;
    float4 shadow4 = Light4;
    float4 shadow5 = Light5;
 
    float3 result =
   	(shadow1*vecLightColor[0])+
   	(shadow2*vecLightColor[1])+
   	(shadow3*vecLightColor[2])+
   	(shadow4*vecLightColor[3])+
   	(shadow5*vecLightColor[4]);
   
   result *= color;
   result *= 4;     
   
//-------------------------------------------
//Finalize
//-------------------------------------------

    return float4(result,8.0);

}



 
technique t01
{ 

   pass P0 
   {
		VertexShader = compile vs_2_0 DiffuseVS();
   	#ifdef PS2A
      	PixelShader  = compile ps_2_a DiffusePS();
      #else
      	PixelShader  = compile ps_2_0 DiffusePS();
      #endif
   }
 	
 	#ifdef DYNLIGHTS
   pass P1 //lights
    {
    	
    	 alphablendenable=true;
   	 srcblend=one;
    	 destblend=one;
       VertexShader = compile vs_1_0 LightsVS();
       PixelShader  = compile ps_1_4 LightsPS();
    }
    #endif
    
	#ifdef OUTLINE
	pass p1 // do a real outline
	{
		alphablendenable=false;
		shademode = Flat;
		CULLMODE=CW;
		vertexShaderConstant[0]=<matWorldViewProj>;
		vertexShaderConstant[16]=<vecSkill41.x>; // outline thickness
		vertexShader =	asm
		{
			vs_1_0
			dcl_position v0
			dcl_normal v3
			dcl_texcoord v7
			mov r0,v0
			mul r1,c16.x,v3
			// Scale the normal
			add r0.xyz,r0.xyz,r1.xyz
			m4x4 oPos,r0,c0
			// Transorm position to clip space
			mov oD0, c0
			mov r0,c0
		};
	}
	#endif
}



edit: sorry i didn't notice it was released, but hey there's always room for a patch grin

Last edited by mpdeveloper_B; 10/08/09 16:02.
Re: Cubme [Re: mpdeveloper_B] #293019
10/08/09 17:11
10/08/09 17:11
Joined: May 2006
Posts: 148
Latvia
MTD Offline OP
Member
MTD  Offline OP
Member

Joined: May 2006
Posts: 148
Latvia
Big thanks.
Will try out and post results.
laugh

Re: Cubme [Re: MTD] #293089
10/09/09 09:23
10/09/09 09:23
Joined: Apr 2008
Posts: 2,488
ratchet Offline
Expert
ratchet  Offline
Expert

Joined: Apr 2008
Posts: 2,488
It is positive for your mind
I agree with that said on the site, a fresh and fun game, changes a lot from all today zombies, blood and violence.

It don't concern me and my Nvidia video card , but :
why not having toon shader on options : to allow even old hardware ro laptops to run the game ?
I like the game like that, with simpel shading it gives it a good and simple style, perhaps toon shader will destroy the overall style and perfect integration of scene and characters ?

Yeah , the HUD now is really cool ,great job laugh



Last edited by ratchet; 10/09/09 09:27.
Re: Cubme [Re: MTD] #294083
10/16/09 05:54
10/16/09 05:54
Joined: Oct 2009
Posts: 21
Redneck country USA
Crazykins Offline
Newbie
Crazykins  Offline
Newbie

Joined: Oct 2009
Posts: 21
Redneck country USA
MTD the demo is awesome! Though I wanted to buy the full game but www.plimus.com will not let me have it though they have already charged me. If I was you in order not to loose customers I would go with sharit.com or someone else. They will not provide me with a phone number to call them but want to call me before they give me the game. lol I had no issue buying 3dgs A7 from sharit. Hopefully I will get to play the game sometime this year.

Good job on the development though. laugh

Update: They rejected my order but still charged me. Shouldn't that be stealing. They wont let me download the game but will not give me a refund and sent me an email stating my order was rejected. LMFAO!

Last edited by Crazykins; 10/16/09 06:45.
Re: Cubme [Re: Crazykins] #294085
10/16/09 07:06
10/16/09 07:06
Joined: Jul 2004
Posts: 4,206
Innsbruck, Austria
sPlKe Offline
Expert
sPlKe  Offline
Expert

Joined: Jul 2004
Posts: 4,206
Innsbruck, Austria
i agree to go with share-it instead. I use share-it and i am very happy with it laugh

Re: Cubme [Re: sPlKe] #294200
10/16/09 23:15
10/16/09 23:15
Joined: May 2006
Posts: 148
Latvia
MTD Offline OP
Member
MTD  Offline OP
Member

Joined: May 2006
Posts: 148
Latvia
Wow. Really sorry Creazykins.
Hope that the Plimus guys will refund and explain why they do so, because i have no information about such thing. If I can help anyway, send me an PM or e-mail.

Updated the web page and added Share*it

New Buy options at: Cubme Full Version

Re: Cubme [Re: MTD] #294207
10/17/09 00:17
10/17/09 00:17
Joined: Oct 2009
Posts: 21
Redneck country USA
Crazykins Offline
Newbie
Crazykins  Offline
Newbie

Joined: Oct 2009
Posts: 21
Redneck country USA
Cool... Now I can get the game grin

Thanks!

Re: Cubme [Re: Crazykins] #294222
10/17/09 09:40
10/17/09 09:40
Joined: Oct 2009
Posts: 21
Redneck country USA
Crazykins Offline
Newbie
Crazykins  Offline
Newbie

Joined: Oct 2009
Posts: 21
Redneck country USA
You should think about adding your game to Steam (Valves game client). I think it would do very well. www.steampowered.com

Got the full game now and it is very fun. grin

Last edited by Crazykins; 10/17/09 09:40.
Re: Cubme [Re: MTD] #294813
10/21/09 12:12
10/21/09 12:12
Joined: Aug 2009
Posts: 46
gfxExp Offline
Newbie
gfxExp  Offline
Newbie

Joined: Aug 2009
Posts: 46
Looks well made! I saw the trailer. I'll definitely download the demo and check it out laugh

Page 2 of 3 1 2 3

Moderated by  jcl, Realspawn, Spirit 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1