forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты на Unity (http://forum.boolean.name/forumdisplay.php?f=147)
-   -   Into Orbit (http://forum.boolean.name/showthread.php?t=20236)

RegIon 26.03.2016 08:46

Into Orbit
 


Into Orbit

Шаблонная игра, где необходимо на ракете вылететь на орбиту, до SimpleRockets далеко, и не было желания сделать ее клона.
Главная цель - выйти на орбиту, что довольно затруднительно, так как управление не из приятных, не хватает топлива и всякий летающий хлам мешается.


Графическая составляющая на 3, так как все же рисовать просто так не получается, нужен какой-то навык, но со временем попробую все привести к одному стилю.

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

Система прокачки:
  • CONE - обтекатель, чем он круче, тем меньше сопротивление, тем быстрее разгон и ниже вращающий момент.
  • Fuel - топливый бак, чем он круче, тем медленнее тратится топливо. Вначале это 8% в секунду.
  • Engine - двигатель, чем круче - тем выше подъемная сила. Так как g=10, а масса ракеты 10, то начальная сила = 102H. Максимум - 110H
  • Stab - стабилизаторы. Чем круче - тем меньше горизонтальная скорость.
Что еще необходимо сделать:
  • Система прокачки ракеты, меню уже есть, но так как нету спрайтов - не работает. - Сделано!
  • Придумать куда деть топливную панель. - Под индикатор высоты
  • Нарисовать и ввести новые объекты. В плане: вертолет, самолет, облачко с молнией, космический мусор на высоте > 120 км
Скачать с SlideME (старая версия)
Скачать с GoogleDrive

GooglePlay аккаунтом не обзавелся вовремя, теперь дорого, так что как более-менее презентабельная версия будет, то кто-нибудь выложит.

ОБНОВЛЕНО(31.03)!
  • Изменена механика "полета" ракеты
  • Перерисованы некоторые объекты
  • Добавлены некоторые эффекты и объекты
  • Добавлено управление гироскопом
  • PixelPerfect, не больших экранах будет маленькая ракета. Оптимизированно под 960 и 1280.

Скрины (устарели):


RegIon 26.03.2016 19:56

Ответ: Into Orbit
 
UPD:
  • Рабочая система прокачки, конфигурация и бюджет сохраняются
  • Unity ADS
  • Небольшая оптимизация, подрисовал UI
Ссылка: https://goo.gl/NpJ5xy


Понял, что когда дофига UI элементов, то очень сложно их всех обновлять.
PAX, как вы работаете с UI, есть какой-то скрипт менеджер, который обновляет текст, иконки и т.д, или есть какой-то компонент-слушатель у элемента, привязанный к определенной переменной и он обновляется при ее обновлении? (я так хотел сделать, но нельзя же вроде узнать о изменении поля класса без проверки, или можно?)

Nex 26.03.2016 21:15

Ответ: Into Orbit
 
Цитата:

Сообщение от RegIon (Сообщение 305011)
я так хотел сделать, но нельзя же вроде узнать о изменении поля класса без проверки, или можно?

Можно сделать так если я тебя правильно понял.
PHP код:

private double _seconds;
public 
double Seconds{
    
get { return _seconds; }
    
set _seconds value; }


В set {} например можно вызывать функцию перерисовки или даже условие запилить типа:
PHP код:

set {
    if(
value == true) { Debug.Log("Ololo"); }


get - https://msdn.microsoft.com/ru-ru/library/ms228503.aspx
set - https://msdn.microsoft.com/ru-ru/library/ms228368.aspx

impersonalis 26.03.2016 22:19

Ответ: Into Orbit
 
Концептуально, абстрактно от языков - решение от Nex лучшее.
Ещё можно велосипедить с многопоточностью* и отслеживанием через указатель*, но запаришься решать проблемы с синхронизацией ("ABA","состояние гонки" и проч), блокировками и атомарностью операций.

*- без понятия: в каком виде это реализовано в Юнити

RegIon 26.03.2016 23:23

Ответ: Into Orbit
 
Get/set конечно хорошо, но это все равно получать ссылку на объект и различные классы для различных переменных.
Тогда проще в апдейте обновлять, проверяя на изменение. (Перерисовка текста довольно тяжёлая )

h1dd3n 27.03.2016 09:43

Ответ: Into Orbit
 
В обычном C#, это делается через биндинги и INotifyPropertyChanged.
https://msdn.microsoft.com/ru-ru/lib...vs. 110).aspx
Весь WPF на этом построен.

Однако в unity старый как говно мамонта mono, так что не скажу наверняка сработает ли это там.

RegIon 27.03.2016 20:30

Ответ: Into Orbit
 
Никак не могу понять как ограничить скорость перпендикулярную оси направления.


Двигается с помощью AddForce, из-за этого очень сильно разгоняется перпендикулярно оси UP при малейших поворотах вектора приложенной силы, что хотелось бы ограничить. Что-то туплю.
Кусок кода, в котором уже нету того, что могло бы ограничить скорость:
PHP код:

var force_vector transform.up;
                
force_vector *= (rocketConfig.forceMultiplier 10f 100f);

                
_rigid.AddForce(force_vector);

                
float airPres = (1f rocketConfig.airDragRotate) * transform.right._rigid.velocity.magnitude 0.15f;
                
_rigid.AddTorque(-direction maxRotSpeed rocketConfig.horizontalStability airPres);
                
_rigid.angularDrag rocketConfig.horizontalStability maxRotSpeed

Раньше просто ограничивал _rigid.velocity.x, но не знал, что он в мировых координатах, и по этому по X он совсем переставал двигатся, а по Y ускорялся.

UPD. Сделал кастыль - меняю rigidbody.drag линейно зависимо от скорости по X, более-менее устраивает поведение.

Nex 27.03.2016 23:07

Ответ: Into Orbit
 
Тут наверно поможет Rigidbody2D.angularDrag ну или Rigidbody2D.angularVelocity.

RegIon 27.03.2016 23:19

Ответ: Into Orbit
 
Обновил. Подробности в шапке. Ссылка: http://goo.gl/IDHJfF

UPD. Русую более качественные спрайты всякой фигни:

RegIon 31.03.2016 20:20

Ответ: Into Orbit
 
Обновил.
Подробности в шапке.
Скачать: https://goo.gl/bbyvJw

Было бы неплохо, если бы поигрались и отписались результатом.

RegIon 04.04.2016 23:44

Ответ: Into Orbit
 
Поздравьте меня, я приобрел аккаунт Google Play developer, жду одобрения публикации!

Не могу менять шапку.

Ссылка GooglPlay
Into Orbit
Тестовая версия 0.5.1t, довольно много правок. BetaTest
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 100 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.



Nex 05.04.2016 06:38

Ответ: Into Orbit
 
Цитата:

Сообщение от RegIon (Сообщение 305240)
Поздравьте меня, я приобрел аккаунт Google Play developer, жду одобрения публикации!

Поздравляю! Теперь надо всегда помнить, что девелопер акк, ютуб канал и почта связаны и если где то накосячить, то все могут разом забанить. ;)
Кстати линк на игру в маркете можно сразу выкладывать правда можно будет зайти по нему только после одобрения публикации.

Жека 05.04.2016 14:41

Ответ: Into Orbit
 
"Будь проклят тот день, когда я сел за баранку этого пылесоса!" :-)
Тяжко летать. Прочёсывая небо из стороны в сторону подобрал горючку, но улетел за экран! Абидна.)
Кнопка "жмяк" наверное не уместна.
Цвета приятные, кроме серых менюшек.
Ещё у тебя размер проги всего 11мб. Забиваешь на x86 процы?

RegIon 05.04.2016 18:00

Ответ: Into Orbit
 
Цитата:

Сообщение от Жека (Сообщение 305248)
"Будь проклят тот день, когда я сел за баранку этого пылесоса!" :-)
Тяжко летать. Прочёсывая небо из стороны в сторону подобрал горючку, но улетел за экран! Абидна.)
Кнопка "жмяк" наверное не уместна.
Цвета приятные, кроме серых менюшек.
Ещё у тебя размер проги всего 11мб. Забиваешь на x86 процы?

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

Есть идея миникарты в виде пикселей, где показаны объекты (любого типа одинакового) и границы, относительно ракеты в определенном радиусе
На какой тогда сменить, а то мне кажется, что я гот какой, всегда темное делаю?

Да, хотел отдельно билды под платформы делать, но не нашел куда пихать билд под x86. Не охота раздувать до 40метров, не охота создавать копию приложения, но под другую платформу. Или придется что-то выбрать?

Там косяк с акселерометром, я усредню каждые 10 тактов его значение, думал от флуктуаций значения избавит. Избавляет, но резко не развернуть, и если косо всегда держать, то смещается точка нуля. И все забываю калибровку вставить.

Жека 06.04.2016 05:26

Ответ: Into Orbit
 
В экспорте под андроид просто выбрать 2 проца. Получишь около 24мб прогу. Да и всё.

Миникарта прикольно.

Ещё может при старте давать ракете небольшой рывок вверх?
Щас если при старте есть наклон то при взлёте сразу взрываешься.

Антихрист 06.04.2016 07:19

Ответ: Into Orbit
 
Заливай в маркет обе версии,он сам должен всё определить.

RegIon 06.04.2016 08:09

Ответ: Into Orbit
 
Цитата:

Сообщение от Жека (Сообщение 305266)
В экспорте под андроид просто выбрать 2 проца. Получишь около 24мб прогу. Да и всё.

Миникарта прикольно.

Ещё может при старте давать ракете небольшой рывок вверх?
Щас если при старте есть наклон то при взлёте сразу взрываешься.

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

UPD. Гугл меня не покарает, если правлю чуть ли не каждые 2-3 часа?
UPD. Перевел последнюю бету в релиз

Nex 06.04.2016 12:01

Ответ: Into Orbit
 
Камера в игре дергается сильно. Сделай обновление камеры в LateUpdate().
Как ты сделал вибрацию на android? Функция вибрации в юнити как я помню работает только на iOS или ты плагины использовал?

RegIon 06.04.2016 12:21

Ответ: Into Orbit
 
Цитата:

Сообщение от Nex (Сообщение 305272)
Камера в игре дергается сильно. Сделай обновление камеры в LateUpdate().
Как ты сделал вибрацию на android? Функция вибрации в юнити как я помню работает только на iOS или ты плагины использовал?

Некоторые говорят, что круто сделал, что камера типо как настоящая и трясётся.
LateUpdate не помогает.
Использую Lerp, так как MoveTowards проскакивает.

Да не, всегда работала, Handled.Vibrate()

Жека 06.04.2016 13:27

Ответ: Into Orbit
 
Даёшь выход по кнопке Назад!

RegIon 06.04.2016 21:25

Ответ: Into Orbit
 
Цитата:

Сообщение от Жека (Сообщение 305278)
Даёшь выход по кнопке Назад!

Дал. Еще вчера апдейт вылил. Только из главного меню.

Evgen 07.04.2016 09:39

Ответ: Into Orbit
 
Привет. На Google Play Market заливал? Что-то ссылку на главной не вижу...

RegIon 07.04.2016 12:05

Ответ: Into Orbit
 
Цитата:

Сообщение от Evgen (Сообщение 305287)
Привет. На Google Play Market заливал? Что-то ссылку на главной не вижу...

Не могу редактировать шапку уже. Вот GooglePlay

Модераторы, добавьте мне в шапку ссылку на GooglePlay, вместо SlideME:
https://play.google.com/store/apps/d...on28.intoorbit

Update 0.5.2:
  • Астероиды
  • Музыкально сопровождение (самопал)
  • Аудио-эффекты (частичный самопал)
  • Багфиксы

Жека 08.04.2016 08:32

Ответ: Into Orbit
 
1. Баг в магазине - если нажимать + затем - и так много раз, то сумма накапливается. За 10 сек получил 8 тысяч, купил почти всё на макс.

2. Метеориты разносят ракету в считанные секунды. Ты их как самонадодки генеришь что ли? )

RegIon 08.04.2016 10:06

Ответ: Into Orbit
 
Цитата:

Сообщение от Жека (Сообщение 305299)
1. Баг в магазине - если нажимать + затем - и так много раз, то сумма накапливается. За 10 сек получил 8 тысяч, купил почти всё на макс.

2. Метеориты разносят ракету в считанные секунды. Ты их как самонадодки генеришь что ли? )

Нет, не за секунду.
Маленький -дамаг 0.4 ед
Средний - 0.5ед
Большой -0.7ед
Генерируются рандомно в радиусе 5 ед от ракеты :-)

Отметил баг с магазином.

Nex 08.04.2016 15:20

Ответ: Into Orbit
 
Воспользовался багой и апнул все. :)
Сделай подсказки если прямо по курсы ракеты есть бафы/дебафы так как не реально подобрать или уклониться в большинстве случаев не сломав траекторию полета.
У меня на Galaxy s3 экран гаснет при игре. Приходится либо иногда тыкать по экрану либо рулить тыкая в экран, а не через гироскоп.
Метеориты убивают за пару ударов так же иногда от ударов ракета уносится за край экрана.

Тяга у ракеты на максимальном апгрейде на небольшой скорости слишком мала. При попадании в грозовое облако на разгон ракеты заного тратится все топливо. Может сделать сильную тягу до определенной скорости (аля трение об воздух)?

RegIon 08.04.2016 22:21

Ответ: Into Orbit
 
Цитата:

Сообщение от Nex (Сообщение 305307)
Воспользовался багой и апнул все. :)
Сделай подсказки если прямо по курсы ракеты есть бафы/дебафы так как не реально подобрать или уклониться в большинстве случаев не сломав траекторию полета.
У меня на Galaxy s3 экран гаснет при игре. Приходится либо иногда тыкать по экрану либо рулить тыкая в экран, а не через гироскоп.
Метеориты убивают за пару ударов так же иногда от ударов ракета уносится за край экрана.

Тяга у ракеты на максимальном апгрейде на небольшой скорости слишком мала. При попадании в грозовое облако на разгон ракеты заного тратится все топливо. Может сделать сильную тягу до определенной скорости (аля трение об воздух)?

Ну можно.
Сейчас тяга зависит вот так от уровня прокачки, в принципе можно запихать зависимость от скорости логарифмически ( в начале разгон, а потом логарифм в прямую вырождается)
PHP код:

float Sigmoid5 (float f)
    {
        return 
2f / (Mathf.Exp (-5f f)) - 1f
    } 

Метеорит дает импульс, который не превышает импульса от удара о шар. Это баг, я когда включаю партиклы взрыва, то метеорит убиваю через particles.duration, а OnTriggerEnter может сработать за это время.

Да, гаснет, это баг Unity, с какого-то момента стало усыпать приложение, пока не пойму почему, раньше такого не было.
Unity 5.3.4

Я не знаю как организовать нормально магазин, все на костылях, пока не решу - апдейтов не будет.

RegIon 08.04.2016 23:33

Ответ: Into Orbit
 
Цитата:

Сообщение от RegIon (Сообщение 305321)
Ну можно.
Сейчас тяга зависит вот так от уровня прокачки, в принципе можно запихать зависимость от скорости логарифмически ( в начале разгон, а потом логарифм в прямую вырождается)
PHP код:

float Sigmoid5 (float f)
    {
        return 
2f / (Mathf.Exp (-5f f)) - 1f
    } 

Метеорит дает импульс, который не превышает импульса от удара о шар. Это баг, я когда включаю партиклы взрыва, то метеорит убиваю через particles.duration, а OnTriggerEnter может сработать за это время.

Да, гаснет, это баг Unity, с какого-то момента стало усыпать приложение, пока не пойму почему, раньше такого не было.
Unity 5.3.4

Я не знаю как организовать нормально магазин, все на костылях, пока не решу - апдейтов не будет.

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 100 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.


Обновил.
* Фикс магазина
* Фикс астероидов, Воздушных шаров
* Буст x5 при скорости < ~90 м/c, далее только тяга
* Озвучка
* Скиповая реклама, так как все все равно при ее старте килят приложение, из-за чего fillrate - 0

У кого-нибудь есть нормальный звуковой эффект возгорания (воздушный шар именно сгорает , а не взрывается) ?

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


RegIon 12.04.2016 22:53

Ответ: Into Orbit
 

Ух, тикнула реклам=)))


Часовой пояс GMT +4, время: 20:37.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot