Play now

вторник, 25 ноября 2014 г.

Alco Invaders is FREE


We made Alco Invaders FREE ! We want to show our game as many people as possible. Mix, drink, go to space !

Thanks to all , who took part in development . Making of this game takes more then 8 month of work. We made all,that planning in beginning, but we will not stop !

I started to love this game after such time. Making of all this was a great experience for me. I dream to make  this game more musical, more social. And I think it's all real tasks. If you know how to make game better - share with us. We will try to realize all yours wishes. If you want to be part of our team - also write to us, because we are thinking about next interesting projects.

 Advice for players: 
- Play with your favourite music on background
- Find secret powerfull cocktails ( exist 4 types now) 

- Press "C" for movie mode 

Get Alco Invaders for Free

Play this music when play game :)

понедельник, 10 ноября 2014 г.

Новости разработки. Волны частичек и мобильный интерфейс.

Решил рассказать, чем занимался последние недели и показать результаты. Начну с того,что наш с другом проект находится на финальной стадии, когда сделано все что планировалось изначально и даже больше. 

Сейчас все время уходит на улучшения внешнего вида (эффекты, фоны) и оптимизацию производительности. С внешним видом получилось очень даже хорошо. Частички, о которых я писал ранее удачно сочетаются с космосом и общей атмосферой  dicso-party. 




После этого мы выпустили обновление 1.66 для PC,Mac версии, которая доступна здесь . 
Вторым важным направлением стала мобильная разработка. Хоть собрать android/ios сборку не сложно на Unity, но самые большие измения пришлось сделать в интерфейсе и управлении. Если на PC хорошо работает сочетание мышка/клавиатура, то для touch screen нужен совсем другой подход. 

Сначала мы ничего не меняли, и процесс игры был похож на закликивание экрана планшета. Это было утомительно для новых игроков, и иногда приводило их в ярость (когда не успевали за скоростью игры) . В итоге решили сменить систему управления на более простую - автоматическая атака выбранной цели. Это позволило уменьшить колличество кликов раз в 10 и освободило внимание для более стратегического подхода и использования скиллов. 



Также мы изменили положение и внешний вид джойстика. Он стал более чувствительным и главное, не закрывает собой корабль игрока. 

В других разделах игры ( Cocktail Mixer и Upgrade Shop ) мы увеличили размер всех кнопочек и иконок. Перетаскивание ингридиентов для коктейля заменили простым нажатием по иконкам. 

Сейчас заново настраиваем баланс для мобильной версии, и скорее всего сделаем несколько уровней сложности. 

На этом этапе очень не хватает игроков для тестирования. Так как хочется, чтобы игру могли оценить свежим взглядом и заметить те вещи, к которым мы уже привыкли в процессе разработки. Размещать ее в маркет пока не будем - еще есть шансы найти издателя, которому игра прийдется по душе. 

Если кто хочет помочь в тестировании - пишите на почту oxygamer@gmail.com или в скайп Oxygame. Всем тестировщикам - ключи для PC/Mac версии и попадание в титры :) 

воскресенье, 19 октября 2014 г.

Симуляция волн на системе частиц Hexagon Lab

Испитываю HexagonLab для динамического фона в игре. 
Добавил поддержку нескольких источников волн (взрыва) - и получась такая движимая поверхность. Если интеграция в игру пройдет успешно - сделаю ассет :)
Может у кого-то еще идеи как использовать данную систему частиц- обращайтесь, поделюсь.


четверг, 16 октября 2014 г.

Unity: мобильная оптимизация на примере Alco Invaders


Две недели работал над портирование мобильной версии. Оптимизировал все что можно, и теперь игра работает на 40-60 fps на моем Kindle Fire.

Но даже со всеми улучшениями на Android сложно получить ту же картинку, что на скриншоте. Все дело в Image Effect , которые требуют Shader Model 2 (Bloom в моем случае). Даже на топовых Android девайсах этот эффект отключается при запуске игры. 

Намного лучше ситуация с iOS. При тестах на iPhone 5 и iPad mini все эффекты работали корректно, и графика выглядит на уровне PC. 

Теперь про оптимизацию производительности: 

- Cамым большим разочарованием стал iTweens. После 3 лет использования этой библиотеки оказалось,что она главный источник всех тормозов. И если на PC это не было явно заметно, то на планшете скорость падала в 1.5-2 раза. Особенно не советую использовать ее в циклах и Update. Поэтому от нее пришлось отказаться. 

Взамен написал свои функции плавного движения, используя  Mathf.Lerp(). Получился такой скрипт, который можно повесить на любой обьект http://pastebin.com/R7QUVmeu . Обращатся к нему через GetComponent<SmoothMove> ().SetTarget(Vector3) .

- Следующей простой оптимизацией стала замена всех new Vector3(), new Color() внутри циклов. Для этих целей лучше использовать глобальные переменные данных типов. Например как moveVector в коде выше. В результате не будут создаватся лишние новые обьекты по 60 раз в секунду.

- Тажке рекомендую отключить все динамические источники света ( у меня они были на лазерах :) Согласно документации Unity отрисовка (drawcall) происходит для каждого такого источника света. В итоге среднее колличество drawcall снизилось с 200 до 60, что было очень заметно на Android.

- Particles. Максимальное колличество частиц лучше ограничить 100-200 на один источник. А одновременное колличество источников частиц - не больше 10. Но это во многом зависит от того, как нагружает CPU все остальное в игровой сцене.


- Meshes. В результате тестирования оказалось, что мобильные устройства вполне справляются с 20 k полигонов. Конечно, чем меньше тем лучше, но и качество моделей от этого не должно сильно страдать. По возможности замените все мелкие 3d обьекты на 2d спрайты  (лазеры, ракеты и частички)



- Textures. Размер текстур я ограничил до 1024 px. Больше может потребоватся только для текстурных атласов. Если размер текстуры больше 1024 (например фона) то улучшения качества на мобильных практически не заметно. 
При этом размер инсталлера снижается значительно:  2 мб против 8 мб на каждую текстуру. По этим же причинам старайтесь использовать одни текстуры в разных местах (например один фон, но с разным цветом в материале)

- Управление. Отдельная тема- мобильное управление. Старайтесь всегда использовать Unity Remote, так как управление на touchscreen очень отличается от его симуляции мышкой. Это поможет избежать лишних багов и ускорит весь процесс портирования.

Больше по оптимизации можно прочитать в оффициальной документации:
 - Оптимизация графики
 - Оптимизация физики
 - Оптимизация скриптов

Другие способы оптимизации буду добавлять в статью со временем. 
Удачи в ваших разработках !

среда, 1 октября 2014 г.

Hexagon Lab Coub

Решил записать видео системы частиц, над которой работаю. Сейчас она называется "Hexagon Lab". 
Ее можно применить в очень разных играх или видео. Например, тот эффект волны, что на видео можно использовать для обьемного фона. Сейчас волна движется за камерой, но можно задать любые точки ( взрывы,порталы и т.д). Если кто-то хочет использовать такую штуку в играх - пишите, сделаю asset :)




понедельник, 15 сентября 2014 г.

Demo !

Я решил выпустить Demo версию Alco Invaders, в которой есть все фичи игры. Единственное ограничение - это колличество открытых уровней.




воскресенье, 7 сентября 2014 г.

Новые боссы в игре

Сегодня закончил последнего босса из AlcoInvaders. Всего их 6, как и планет. Больше всего времени заняла система разрушения боссов. 
Каждый из них состоит из 3-5 частей, а при взрыве эти части распадаются на мелкие кусочки. Все они будут доступны в обновлении 1.3




суббота, 7 июня 2014 г.

Alco Invaders: cocktail bar

Рад показать всем новую фичу в моей игре. Поскольку игру называется Alco Invaders, то без алко коктейлей тут не обошлось. 

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

Также есть возможность создать 4 секретных коктейля, под разные стили игры: Turtle, Butcher, Kamikadze,Rocket Master cocktails.





В ближайшее время игра может появится на Desura. Все желающие поиграть уже сейчас или сделать обзор пишите мне oxygamer@gmail.com

суббота, 19 апреля 2014 г.

пятница, 11 апреля 2014 г.

Разрушение объектов на кусочки. Mesh destruction

Привет юнити девелопер ! Сегодня хочу поделится своим опытом в создании интересного эффекта для игры.

Игра называется AlcoInvaders, поэтому события происходят в космосе.
Особенностью игры должны стать визуальные эффекты и разрушение всего,что в игре можно увидеть . Поэтому реалистичные взрывы - очень важная часть игры.

Речь пойдет о том, как сделать эффект разрушения объекта на части (mesh destruction) . В этом мне помог  плагин Exploder (asset store link). При желании его можно найти и на других сайтах.

Сам плагин неплохо взрывает объекты, но когда нужно взрывать много моделей, то начинаются проблемы с производительностью. Взрывы начинают подвисать и играть становится сложно. 

Чтобы решить эту проблему я немного переписал код плагина. Главная идея в том, чтобы сохранять полученные кусочки модели как ассеты и потом заменять ими модель во время взрыва. Это очень улучшает производительность и уменьшения FPS практически нету.

Вот как выглядят полученные кусочки изначально :


Чтобы создать такой взрыв - создаем в сцене объект со скриптом ExploderObject. Нужную модель отмечаем тегом "Explode" и вызываем функцию Explode() у ExploderObject.  Вот его параметры. 

Если поставить Force > 0 то частички будут разлетаться как при взрыве ( на скриншоте) . Но если Force =0 то частички останутся на своих местах и их можно будет сохранить.  Также лучше заблокировать движение частиц через параметры Freeze Position X,Y,Z и Freeze Rotation X,Y,Z .

Для этого я изменил код скрипта FragmentPool. Ее можно вызывать сразу после разрушения нужного мэша.

public void SaveMeshes()
 {
            int count=0;
            string folder_name="fragment"+Random.RandomRange(1,1000);
            AssetDatabase.CreateFolder("Assets/fragments", folder_name);
            foreach (Fragment frag in pool)
            {
                if (frag.gameObject.activeInHierarchy)
                {
            GameObject obj=PrefabUtility.CreatePrefab("Assets/fragments/" +                   folder_name + "/part" + count + ".prefab", frag.gameObject);

            obj.GetComponent<MeshFilter>().mesh = frag.meshFilter.sharedMesh;
                                      AssetDatabase.CreateAsset(frag.meshFilter.sharedMesh,"Assets/fragments/"+folder_name+"/part"+folder_name+count+".asset");
                    AssetDatabase.SaveAssets();
                    count++;
                }
             }

}

Функция будет сохранять кусочки всех взорванных моделей. Поэтому для сохранения фрагментов каждого объекта лучше перезапускать сцену.
В результате полученные кусочки можно сохранить для дальнейшего использования.

В полученных фрагментах лучше убрать все скрипты и MeshCollider заменить на SphereCollider. Также частички можно пометить как отдельный layer и выключить его столкновения друг с другом  (Project Setting-> Physics )

После этого все фрагменты можно объединить в один объект и прикрепить к нему скрипт взрыва. Например такой :

void Start () {

     Time.timeScale = 1f;
     Collider[] MeshList=gameobject.transform.GetComponentsInChildren<Collider>();
     foreach (Collider m in MeshList)
        {                           
                m.rigidbody.AddExplosionForce(Random.Range(1500f,3000f),                         m.transform.position, 100f, 0f);
        }
}

У нас получился объект взрыва частичек. Его нужно создавать в сцене сразу при взрыве модели ( в моем случае корабля ).  Результат будет примерно такой:






Update:


- Для оптимизации можно создать low-poly модель разрушаемого обьекта и разрушать ее. При взрыве разницу будет мало заметно, даже если уменьшить колличество полигонов в 3-4 раза

(например в Maya через Polygon>Cleanup а потом Polygon>Reduce )

- Для всех полученных кусочков старайтесь использовать один и тот же материал. Это значительно уменьшит колличество Drawcall.

- Для тех, кто дочитал до конца - даю прямую ссылку на сам плагин :) Exploder 1.2

Спасибо за интерес к материалу. Подписывайтесь в twitter @Oxygamer . Буду рад любым предложениям и вопросам.


среда, 9 апреля 2014 г.

Alco Invaders - последние новости

Сегодня решили больше писать про создание игры, хотя она уже в бета тесте, но сделать нужно еще много. Снимаем трейлер для Desura. Последние скриншоты с эффектом разламывание моделей на кусочки :




понедельник, 17 февраля 2014 г.

Бета тест



Началось бета тестирование первой игры нашей студии ! Играйте, делитесь мнением, идеями. 
Лучшие из них реализуем в игре !


сайт студии : http://indiagamestudio.org/
и смотрите видео здесь : канал на Youtube