Pull to refresh
66
0
Андрей Мишкинис @AndreyMI

Indie Game Developer

Send message
Думаю потянет, там просто пункт есть «У меня есть рабочая сборка моего продукта», без него не пускают.
В нашей демке сейчас вообще интерфейса нет, все на весьма сомнительных хоткеях, поэтому не публиковали.
У нас есть мысли сделать видео с прямой речью на русском и английскими титрами:)
Спасибо! Я встречал несколько отзывов, что у нас плохое видео:)
Как вы считаете, что нам в нем стоит поменять?
Да, не было уверенности в его правильности
Отличная тема для DLC и сиквелов:)
Пробовали, но оказывается для публикации на Greenlight'е обязательно нужна рабочая демка.
На подготовку мы потратили около 2х человеко-месяцев + комиссия штатовских партнеров.
Про стоимость PR'а сейчас говорить рано, так как кампания идет только 4й день.
С учетом комиссии Кикстартера действительно получается около 15-20%
Нашу реализацию данного алгоритма можно найти на Unity3D Asset Store
Я старался сделать упор именно на алгоритме, а не на конкретной реализации.
Совершенно верно
Карта прозрачности готовится прямо в Unity в самописном редакторе.
Но она легко может меняться даже непосредственно в игре.
Да, именно так
Шейдер как раз и разрабатывался для изометрической 2D стратегии.
С островками никаких проблем нет, мы просто рисуем их на карте прозрачности слоев.
Карта прозрачности



В основном для наглядности, в конечном шейдере нет условных переходов.

Не вижу mix в Cg, наверно lerp?
Очень просто. Добавьте еще один слой в графики:)
Или, как уже заметил mayorovp, последовательное расширение.



В шейдере для своей игрушки я смешиваю 4 разных текстуры вместе с картами нормалей и одну карту шума.
После игр с математическими операциями мне даже удалось уложиться в ограничения SM2.0.
Оригинальный шейдер является частью коммерческого проекта, поэтому его исходников не будет.
Но если вы хотите повторить эксперимент в Unity 3D, то создайте сцену с плоскостью и назначьте ей следующий шейдер:
Код шейдера из статьи
Shader "Custom/Demo" {
	Properties {
		_Tex1 ("Texture 1 (RGB) Depth (A)", 2D) = "white" {}
		_Tex2 ("Texture 2 (RGB) Depth (A)", 2D) = "white" {}
	}
	SubShader {
		Tags { "RenderType"="Opaque" }
		LOD 200
		
		CGPROGRAM
		#pragma surface surf Lambert

		sampler2D _Tex1;
		sampler2D _Tex2;

		struct Input {
			float2 uv_Tex1;
			float2 uv_Tex2;
		};

		float3 blend(float4 texture1, float a1, float4 texture2, float a2)
		{
			float depth = 0.2;
			float ma = max(texture1.a + a1, texture2.a + a2) - depth;
			float b1 = max(texture1.a + a1 - ma, 0);
			float b2 = max(texture2.a + a2 - ma, 0);
			return (texture1.rgb * b1 + texture2.rgb * b2) / (b1 + b2);
		}

		void surf (Input IN, inout SurfaceOutput o) {
			half4 c1 = tex2D (_Tex1, IN.uv_Tex1);
			half4 c2 = tex2D (_Tex2, IN.uv_Tex2);
			o.Albedo = blend(c1, IN.uv_Tex2.x, c2, 1 - IN.uv_Tex2.x);
		}
		ENDCG
	} 
	FallBack "Diffuse"
}

Сократить маркетинговые издержки и получить аудиторию, которая точно скачает первый эпизод вашей игры, можно, используя IP

А что такое IP?
А зачем в последнем блоке кода использовать switch, если можно обойтись массивом int[] colors?
Правда я на linq to sql проверял…

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity