• Archive
  • RSS
Splash screen for #DTGMA game jam with @technobeanie & @mcnostrilcom (read as both french and english)
Pop-upView Separately

Splash screen for #DTGMA game jam with @technobeanie & @mcnostrilcom (read as both french and english)

    • #game jam
    • #gamedev
    • #pixel
    • #pixel art
    • #luchador
    • #character
  • 2 weeks ago
  • 9
  • Permalink
Share

Short URL

TwitterFacebookPinterestGoogle+
Character concept for a game idea…
Pop-upView Separately

Character concept for a game idea…

    • #pixel
    • #pixel art
    • #games
    • #character
  • 1 month ago
  • 9
  • Permalink
Share

Short URL

TwitterFacebookPinterestGoogle+

Alphanauts - Indie Speed Run 2012 & Ludum Dare 25

So, it’s been awhile! A lot happened since my last post. I’ll come back to that later. For now, I wanna talk a bit about the game jam I just did the past weekend. The Neverpants team (Dom2D, Technobeanie and I) assembled for an intense 48 hours game jam combining both the Indie Speed Run and Ludum Dare into one awesome game. We ended up with the themes “loss” and “skeleton” for Indie Speed Run and “You are the villain” for Ludum Dare. You can check out Dom2D’s blog for a great summary about the game. I couldn’t have done better!

Anyhow, here’s my technical post mortem.

Our idea was about controlling a bunch of characters to avoid random obstacles on a screen. By assigning a letter to everyone, you would move them by holding the associated key down and use the arrow keys to direct them. We hit a wall pretty fast. I’m still not sure if it’s either Unity or the OS, but it seems like some keys don’t respond correctly when holding more than one key down. One would say don’t use those “bugged” keys, but it appears that they’re specific to every OS… Our hole idea was kinda based on this particular behavior, so we decided to go ahead anyway and don’t bother about it.

Our first prototype was simple, but sad Keanu in the role of black holes added some style to it. Dom2D, as our game designer and artist, had a very specific idea in mind for the black holes. He wanted them to reveal a sort of outer-space parallel world that was taking over the screen. It didn’t take me long to come up with the way to do it. A shader! Shaders are our best friends. So, we stack a bunch of planes, and then we assign them the same material with a shader converting the UVs to screen space.

Shader "Seventy Sevian/Black Hole" 
{
	Properties 
	{	
		_Color ("Color", Color) = (1.0, 1.0, 1.0, 1.0)
		_MainTex ("Texture", 2D) = "white" {}
		_Detail ("Detail", 2D) = "gray" {}
		_Scale ("Scale", Float) = 2.0 
	}
	
	SubShader 
	{
		Lighting Off
		Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
		Blend SrcAlpha OneMinusSrcAlpha 
		
		CGPROGRAM
		#pragma surface surf Unlit alpha 
		
		struct Input 
		{
			float2 uv_MainTex;
			float4 screenPos;
		};
		
		sampler2D _MainTex;
		sampler2D _Detail;
		float _Scale;
		uniform float2 _Offset = float2(0.0f, 0.0f);
		
		half4 LightingUnlit(SurfaceOutput s, half3 lightDir, half atten) 
		{
			half4 c;
			c.rgb = s.Albedo;
			c.a = s.Alpha;
			return c;
		}
		
		void surf (Input IN, inout SurfaceOutput o) 
		{
			float2 screenUV = (IN.screenPos.xy / IN.screenPos.w) * _Scale;
			screenUV.x += _Offset.x;
			screenUV.y += _Offset.y;
			
			o.Albedo = tex2D(_Detail, screenUV).rgb;
			o.Alpha = tex2D(_MainTex, IN.uv_MainTex).a;
		}
		ENDCG
	} 
	
	Fallback "Diffuse"
}

It’s fairly simple and not that elegant, but it works. I use _Offset to scroll the UVs with a constant velocity. I update it through Unity with a simple script.

private void Update()
{
	if (m_Velocity != Vector2.zero)
	{
		m_Offset.x += m_Velocity.x * Time.deltaTime;
		m_Offset.y += m_Velocity.y * Time.deltaTime;
		
		if (m_Offset.x > 1.0f)
		{
			m_Offset.x -= 1.0f;
		}
		if (m_Offset.y > 1.0f)
		{
			m_Offset.y -= 1.0f;
		}
		
		if (m_Offset.x < 0.0f)
		{
			m_Offset.x += 1.0f;
		}
		if (m_Offset.y < 0.0f)
		{
			m_Offset.y += 1.0f;
		}

		Shader.SetGlobalVector("_Offset", m_Offset); 
	}
}

At some point during the first 24 hours we hit another wall. We have a custom script that can create polygons and use them as colliders. The meteorites (triangle black holes) were using it through a rigidbody and it wasn’t triggering any collisions. I spent some time playing around with the settings, but in the end I wasn’t able to make it work and it’s a game jam, so I used…mmmm…a bunch of box colliders to form that triangle. Ya I know, not proud of it, but hey it gets the job done!

After a day we were exactly where we wanted to be. We had a fully playable game that just needed polishing.

The next day we integrated all that was left to make it a full game jam game. We added music, SFX, the menus, animations, score system and a cheat when you align the characters to form KEANU. Made that last one up…or did I? We didn’t spend enough time on balancing the difficulty progression. It’s okay. After all, we only had 48 hours, but I feel like it could be better.

In the end, I’m most happy with the result we ended up with. It’s a neat little game and I had lots of fun making it with the guys. It’s a great experience as a first 48 hours game jam. I really like what we came up with for the themes.

Gâtez-vous!
Web (requires Unity Web Player)
Windows 32 bits
Windows 64 bits
Mac OS X

Cheers!
    • #gamedev
    • #unity
    • #shader
    • #game jam
    • #ludum dare
    • #indie speed run
    • #games
  • 5 months ago
  • 5
  • Permalink
Share

Short URL

TwitterFacebookPinterestGoogle+
So, it&#8217;s Movember! Let&#8217;s grow a moustache! I updated my Twitter avatar with this brand new Mo-themed picture. You can donate for the cause on my Mo space. I just happen to be the captain of this awesome Budge Studios team ;)

Note that my moustache will most likely never look as cool as that. I can barely grow a moustache at all!
Pop-upView Separately

So, it’s Movember! Let’s grow a moustache! I updated my Twitter avatar with this brand new Mo-themed picture. You can donate for the cause on my Mo space. I just happen to be the captain of this awesome Budge Studios team ;)

Note that my moustache will most likely never look as cool as that. I can barely grow a moustache at all!

    • #movember
    • #moustache
  • 6 months ago
  • 1
  • Permalink
Share

Short URL

TwitterFacebookPinterestGoogle+

It’s all about pixels

Thought I’d share a small Unity shader to achieve a Super Mario World level transition effect. Apply the pixelated shader to a material and tweak the _PixelCountU and _PixelCountV values to match the ratio of the texture. You end up with a nice pixel mosaic! The shader can eventually be modified to use a GrabPass or be applied as a camera effect with Unity pro.

Shader "Seventy Sevian/Pixelated"
{
	Properties 
	{
		_MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
		_Color ("Color", Color) = (1, 1, 1, 1)
		_PixelCountU ("Pixel Count U", float) = 100
		_PixelCountV ("Pixel Count V", float) = 100
	}

	SubShader 
	{
		Tags {"Queue"="Transparent" "RenderType"="Transparent"}
		LOD 100
		
		Lighting Off
		Blend SrcAlpha OneMinusSrcAlpha 
		
        Pass 
        {            
			CGPROGRAM 
			#pragma vertex vert
			#pragma fragment frag
							
			#include "UnityCG.cginc"
			
			sampler2D _MainTex;	
			float4 _Color;
			float _PixelCountU;
			float _PixelCountV;
					
			struct v2f 
			{
			    float4 pos : SV_POSITION;
			    float2 uv : TEXCOORD1;
			};
			
			v2f vert(appdata_base v)
			{
			    v2f o;			    
			    o.uv = v.texcoord.xy;
			    o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
			    
			    return o;
			}
			
			half4 frag(v2f i) : COLOR
			{   
				float pixelWidth = 1.0f / _PixelCountU;
				float pixelHeight = 1.0f / _PixelCountV;
				
				half2 uv = half2((int)(i.uv.x / pixelWidth) * pixelWidth, (int)(i.uv.y / pixelHeight) * pixelHeight);			
				half4 col = tex2D(_MainTex, uv);
			
			    return col * _Color;
			}
			ENDCG
	  	}
	}
}
    • #unity
    • #gamedev
    • #shader
  • 6 months ago
  • 4
  • Permalink
Share

Short URL

TwitterFacebookPinterestGoogle+

We gotta start somewhere…

So, here I am! Making my first steps as a legit human being of the 21st century. Yeah! I plan on posting stuff about the games I am working on, some Unity code snippets and who knows what else!

Cheers!

  • 6 months ago
  • 1
  • Permalink
Share

Short URL

TwitterFacebookPinterestGoogle+

Logo

About

I'm a mobile game developer working for
an awesome studio based in Montréal.
I make stunning educational games for kids and
I work on a daily basis with Unity and C#.

Pages

  • Slimeful: Greedy Piggy Chase

Twitter

loading tweets…

  • RSS
  • Random
  • Archive
  • Mobile
Effector Theme by Pixel Union