Результаты поиска
| |
pixeye | Дата: Пятница, 01 Июня 2018, 22:00 | Сообщение # 241 | Тема: Battlecruiser |
Red Winter Software
Сейчас нет на сайте
| завез графония : )
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
pixeye | Дата: Пятница, 01 Июня 2018, 21:11 | Сообщение # 242 | Тема: Battlecruiser |
Red Winter Software
Сейчас нет на сайте
| Цитата НезНaл ( ) (извини, что не целую в зад)
Мой зад переживёт XD
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
pixeye | Дата: Пятница, 01 Июня 2018, 19:48 | Сообщение # 243 | Тема: Battlecruiser |
Red Winter Software
Сейчас нет на сайте
| Он самый) жаждет плоти и бряцает своими культяпами
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Сообщение отредактировал pixeye - Пятница, 01 Июня 2018, 19:48 |
|
| |
pixeye | Дата: Пятница, 01 Июня 2018, 19:36 | Сообщение # 244 | Тема: Battlecruiser |
Red Winter Software
Сейчас нет на сайте
| Цитата EvilT ( ) pixeye, едрен батон какая крутота!!!
Ахах - я еще кстати собирать буду техно демку для своего фреймворка) МИНИ КРИОШОК
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Сообщение отредактировал pixeye - Пятница, 01 Июня 2018, 19:38 |
|
| | |
pixeye | Дата: Пятница, 01 Июня 2018, 17:54 | Сообщение # 246 | Тема: Diabolic |
Red Winter Software
Сейчас нет на сайте
| Цитата ... я очень далёк от всех этих гитхабов и плохо в этом разбираюсь, это всё так действительно критично?
Не критично но очень удобно даже если один работаешь : )
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
pixeye | Дата: Пятница, 01 Июня 2018, 13:16 | Сообщение # 247 | Тема: Вопрос-[ответ] по Unity |
Red Winter Software
Сейчас нет на сайте
| Цитата Leonin ( ) Разве не лучше использовать ScriptableObject для хранении даты? Можно создавать их в ассетах и, кажется, они сохраняют значения после плэинга в эдиторе. Хотя, ScriptableObject лучше подходит для данных, в которых настраивается конфигурация объекта, а не все данные К слову об архитектуре. Не пытались использовать Dependency Injection в unity? Юзаю Zenject, вроде пока вполне себе интересная штука, позволяет сконцентрироваться на том, чтобы класс выполнял только свою задачу, да и зависимости отслеживаются легко: практически метрика связности, сколько классов нужно объекту для нормальной работы. Из минусов правда начальная сложность в изучении и много всяких классов-installer'ов, но зато основной класс не заботится о том, откуда взять нужные связи: их предоставят извне и настраивать систему проще. + наследование от монобеха уже необязательно для внутренних состояний компонента. Причем остается возможность использовать апдейты, корутины, эвэйки, даже если это не монобехи.
не люблю Zenject я свой фреймворк пишу.
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
pixeye | Дата: Пятница, 01 Июня 2018, 12:28 | Сообщение # 248 | Тема: Falcoware - Заработай на Своих Играх! |
Red Winter Software
Сейчас нет на сайте
| Цитата red_odysseus ( ) пока мы видим только, что ты с марта ударно заливаешь игры в Стим, но всем говоришь, что там делать нечего, клоун )))
Ты бы делал столько сколько говоришь.
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
pixeye | Дата: Пятница, 01 Июня 2018, 11:23 | Сообщение # 249 | Тема: Actors |
Red Winter Software
Сейчас нет на сайте
| Добавил описание для ECS. ECS у меня простенький и только для Actor классов. Я его не использую повсеместно. В будущем улучшу. Вкратце позволяет фильтровать сущности в группы по определенным критериям ( по наличию компонентов или тэгу ) и обрабатывать их в апдейте.
Код public class ProcessingCameraFollow : ProcessingBase, ITick, IMustBeWipedOut{ [GroupBy(Tag.GroupPlayer)] [GroupExclude(Tag.StateDead)] private Group groupPlayers;
public ProcessingCameraFollow() { groupPlayers.OnGroupChanged += OnGroupPlayersChanged; }
void OnGroupPlayersChanged() { for(var i=0;i<groupPlayers.length;i++){ Debug.Log("Actor: " + groupPlayers.actors[i]); } } public void Tick() { for(var i=0;i<groupPlayers.length;i++){ DoSomething(groupPlayers.actors[i]); } } void DoSomething(Actor a){ } }
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Сообщение отредактировал pixeye - Пятница, 01 Июня 2018, 12:23 |
|
| |
pixeye | Дата: Пятница, 01 Июня 2018, 09:31 | Сообщение # 250 | Тема: Вопрос-[ответ] по Unity |
Red Winter Software
Сейчас нет на сайте
| Цитата Павел_С_Ф ( ) да все верно это контейнер данных с обработкой, я учусь по видеоурокам так как нет нормальных источников по юнити, в видео такой пример был, на их сайте только общие данные я не спец что бы в них разобраться, поэтому такая каша void Start () { Destroy(gameObject,LiveTime);} эта строчка что бы не переполнять память то есть в начале создания объекта ему выделено некое время после чего он удаляется. время выставляется для каждого прифаба свое, разные рпифабы разное время, тип прифабов один, скрипт на них на всех один.
Переполнять память? Я 6 лет назад на третий айфон так не запаривался делая игры, а уж на комп и подавно. Aбстрактный совет : излишняя оптимизация - зло.
Если уж на то пошло и у тебя много однотипных объектов которые должны создаваться/удаляться используй пул объектов. В любом случае это от контекста зависит. У меня похожее было на эффектах.
Код LiveShip=10; Ship=GameObject.Find("Ship01"); LiveShip=LiveShipe;
Нет смысла прописывать LiveShip дважды.
1) Не рекомендую использовать монобехейверы для дата компонентов. Используй обычные C# классы. 2) Разделяй UI и логику. У тебя там в классе здоровья корабля UI 3) Хорошо если твой класс выполняет 1 задачу. Это может быть не буквально 1 задача, но относиться к решению 1 задачи. Это повышает читабельность и гораздо легче править. 4) Если игра слишком мелкая для деления на классы поведений то все равно можно структурно разделять методами задачи. 5) Не юзай GameObject Find без особой нужды ( на самом деле он хоть и медленный но если всего мало то без разницы )
Я кину тебе простой пример архитектуры. Тебе не обязательно его повторять просто подумай в этом направлении.
Код // сериалайзабл позволит видеть переменные обычного класса в инспекторе [System.Serializable] public class DataHP { public int val; }
Код
// База для всех твоих монобехейверов и контейнер. public class MonoBase : MonoBehaviour { public Dictionary<int, object> container = new Dictionary<int, object>();
// добавляем в контейнер объект определенного типа public void Add<T>(T o) { container.Add(typeof(T).GetHashCode(), o); } // вытаскиваем из контейнера объект определенного типа public T Get<T>() { object val; if (container.TryGetValue(typeof(T).GetHashCode(), out val)) { return (T) val; }
return default(T); } }
Код
// ленивый синглтон только для примера. public class DataSession { public static DataSession Default = new DataSession(); public MonoBase player; public List<MonoBase> enemies = new List<MonoBase>(); }
Код // наследуем от монобейза public class PlayerShip : MonoBase { [SerializeField] private DataHP dataHP;
// добавляем дату private void Awake() { Add(dataHP); }
public void Update() { HandleInput(); HandleMove(); HandleDestroy(); }
void HandleInput() { }
void HandleMove() { }
void HandleDestroy() { } // добавляем в данные private void OnEnable() { DataSession.Default.player = this; }
private void OnDisable() { DataSession.Default.player = null; } }
Код
// наследуем от монобейза public class EnemyShip : MonoBase { [SerializeField] private DataHP dataHP;
private void Awake() { Add(dataHP); }
public void Update() { HandleAI(); HandleMove(); HandleAttack(); HandleDestroy(); }
void HandleAI() { }
void HandleMove() { }
void HandleAttack() { DataSession.Default.player.Get<DataHP>().val--; } void HandleDestroy() { }
private void OnEnable() { DataSession.Default.enemies.Add(this); }
private void OnDisable() { DataSession.Default.enemies.Remove(this); } }
Что в итоге. Без труда можно любому понять контекст. Это корабль игрока и у него несколько методов - получения управления, движения , уничтожения. У него есть одна дата - здоровье. Есть корабль противника. У него одна дата- здоровье и есть AI, движение, атака и уничтожение. Есть дата которая хранит сессию куда мы добавляем врагов и героя. Так как все они наследуются от одной нашей обертки ( MonoBase ) то нам необязательно знать ТИП сущности чтобы к ней обратиться. Мы предполагаем, что у сущности которую мы обозвали переменной игрока есть DataHP и обращаемся к ней напрямую через MonoBase
Размышляя в таком русле ты можешь построить игру на компонентах и никогда не задаваться вопросами как общаться между сущностями : )
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Сообщение отредактировал pixeye - Пятница, 01 Июня 2018, 09:46 |
|
| |
pixeye | Дата: Четверг, 31 Мая 2018, 23:32 | Сообщение # 251 | Тема: Вопрос-[ответ] по Unity |
Red Winter Software
Сейчас нет на сайте
| Павел, копаться в чужом коде все равно что копаться в чужой голове - та еще хрень. Одно дело помогать с какими-то настройками в юнити или общими вопросами по программированию другое дело влезать в твою реализацию логики.
Пока мне вообще трудно понять что у тебя происходит. У тебя например класс EnemyData - что наталкивает на мысль о контейнере с переменными но там же сразу идет какая-то логика причем с совершенно для меня убийственным
Код void Start () { Destroy(gameObject,LiveTime);} - ну для эффекта я это понимаю, а enemyData тут причем?
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Сообщение отредактировал pixeye - Четверг, 31 Мая 2018, 23:33 |
|
| |
pixeye | Дата: Четверг, 31 Мая 2018, 22:14 | Сообщение # 252 | Тема: Diabolic |
Red Winter Software
Сейчас нет на сайте
| Цитата MyDreamForever ( ) Я делал игру в GM:S1, а там если я не ошибаюсь нет системы автотайлинга, кажется она появилась только во второй студии, поэтому стыки между тайлами приходилось делать кодом. Сам редактор комнат тоже в гмс не очень удобный, когда дизайнишь несколько уровней, состоящих из тайлов 16х16, понимаешь это. В целом мне не с чем сравнивать, т.к. работал только в game maker, но иногда лично мне не хватает в нём встроенных скриптов, например движения персонажа или всплывающего красивого текста. Всё это всегда приходиться писать заново или копировать с прошлых исходников. (Я правда не знаю это так во всех движках или нет) А вообще самое неприятное это отсутствия встроенной паузы и встроенных сохранений, ведь в GM:8.1 это всё было. А в целом Game Maker очень даже удобный.
Есть какой-то контроль версий? Ну например тебе надо изменения откатить или ты хочешь что-то протестировать при этом не затрагивая текущую работу?
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
pixeye | Дата: Четверг, 31 Мая 2018, 21:55 | Сообщение # 253 | Тема: Diabolic |
Red Winter Software
Сейчас нет на сайте
| Что самое неприятное было при работе с Game Maker когда ты делал эту игру?
PS) заценю попозже
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
pixeye | Дата: Четверг, 31 Мая 2018, 11:53 | Сообщение # 254 | Тема: Опрос и обсуждение: Будущее конкурсов Gamiron |
Red Winter Software
Сейчас нет на сайте
| Цитата LunarPixel ( ) Конкурс проводится Фалко для получения игр, не хотите такого бреда, не будет такого призового фонда. Тут ничего не попишешь, кто платит, тот и музыку заказывает.
Согласен. Но в таком случае судейство избыточно. Игры делаются на реализацию у фалко и ему их и оценивать денежно. Голосование открытое на основе него выстраивается рейтинг игр. Соглашаться с этим рейтингом при учете распределения денег или нет - дело Фалко.
PS. Рад видеть тебя : )
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Сообщение отредактировал pixeye - Четверг, 31 Мая 2018, 11:54 |
|
| |
pixeye | Дата: Четверг, 31 Мая 2018, 10:28 | Сообщение # 255 | Тема: Actors |
Red Winter Software
Сейчас нет на сайте
| Добавил описание для cхем ( Blueprints )
Схемы - это scriptable object для удобного хранения информации у одинаковых объектов.
Пример вытаскивания даты из схемы
Код var weaponData = Get<DataBlueprint>().Get<DataWeapon>();
Настройка самой схемы идентична настройке акторов
Код [CreateAssetMenu(fileName = "BlueprintCreature", menuName = "Blueprints/BlueprintCreature")] public class BlueprintCreature : Blueprint { [FoldoutGroup("Setup")] public DataCreature dataCreature; [FoldoutGroup("Setup")] public DataDeathAnimations dataDeathAnimations;
public override void Setup() { Add(dataCreature); Add(dataDeathAnimations); } }
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
pixeye | Дата: Четверг, 31 Мая 2018, 09:56 | Сообщение # 256 | Тема: Опрос и обсуждение: Будущее конкурсов Gamiron |
Red Winter Software
Сейчас нет на сайте
| И опять) за всеми этими рассуждениями на тему какой должен быть призовой фонд искажается смысл зачем вы делаете эти игры. Это фундаментальный вопрос. Зачем вы делаете игры? : )
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Сообщение отредактировал pixeye - Четверг, 31 Мая 2018, 10:02 |
|
| |
pixeye | Дата: Среда, 30 Мая 2018, 22:51 | Сообщение # 257 | Тема: Опрос и обсуждение: Будущее конкурсов Gamiron |
Red Winter Software
Сейчас нет на сайте
| Цитата blackcatkpi ( ) Увы, краткосрочный конкурс не вариант для людей с ограниченным временем.
Тут нигде противоречия нет?
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
pixeye | Дата: Среда, 30 Мая 2018, 21:57 | Сообщение # 258 | Тема: Опрос и обсуждение: Будущее конкурсов Gamiron |
Red Winter Software
Сейчас нет на сайте
| Вопрос неправильно стоит. Гамирон - это Falco, а Falco все утраивает и ничего не изменится. Даже для бесплатного хакатона на хорошем уровне нужна организация, а для нее нужна воля заинтересованных людей. Хоть какая-то простейшая инфраструктура. Кто-то хочет этим заниматься ?
Мой совет : Ludum dare проходит каждые 3-4 месяца. Сделать там игру которая бы вошла в 10 ку лучших - это хорошая ачивка : )
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Сообщение отредактировал pixeye - Среда, 30 Мая 2018, 22:47 |
|
| |
pixeye | Дата: Среда, 30 Мая 2018, 11:54 | Сообщение # 259 | Тема: Actors |
Red Winter Software
Сейчас нет на сайте
| Добавил описание для паттерна пулов объектов и описание таймеров.
Таймеры - это отложенные действия : )
Код Timer.Add(0.1f, actor.HandleDestroyGO); Можно сохранить таймер и использовать его потом.
Код private Timer timerBlink; timerBlink = new Timer(BlinkFinish, 0.15f); void Blink(){ timerBlink.Restart(); } Можно добавить ID к таймеру чтобы потом обратиться к группе таймеров одного объекта и изменить например их скорость. Я так делаю для механики стазиса когда мне нужно замедлить сущности.
Код Timer.Add(0.1f, actor.HandleDestroyGO).AddID(actor); var timers = Timer.FindAllTimers(actor); if (timers != null) for (var i = 0; i < timers.Count; i++) { timers[i].timeScale = 0.5f; }
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Сообщение отредактировал pixeye - Среда, 30 Мая 2018, 12:01 |
|
| |
pixeye | Дата: Вторник, 29 Мая 2018, 22:00 | Сообщение # 260 | Тема: Итоги конкурса Gamiron #14 |
Red Winter Software
Сейчас нет на сайте
| Я бы брал формат Ludum Dare.
Цитата ГоК ( ) - Сроки? Если не 2 месяца, то сколько? - победитель последнего ludum dare - сделана за 72 часа, бесплатно и по фану.
Сравним так сказать с тем что мы видим за 2 месяца на гамироне. Да, на ludum фигни тоже навалом, как никак там за конкурс сдают буквально тысячи игр.
Цитата ГоК ( ) - Нужен ли мероприятию ребрэндинг, чтобы подчеркнуть его новую направленность на новые идеи и быстрые прототипы? Нужен. Но пока фалько говорит "эй красавица, неси игру" - далеко не уедет гамирон. Раньше на форуме был замечательный человек LunarPixel и насколько помню он вносил огромный вклад в сам процесс организации конкурса.
Цитата ГоК ( ) - Будет ли такой формат пользоваться популярностью? Да он и сейчас не особо популярен, куда уж хуже Популярностью пользуется то в чем есть смысл и фан. Как пойдет развиваться так и популярностью обрастет.
Цитата ГоК ( ) - Сроки? Если не 2 месяца, то сколько? 2-5 дней. Формат ближе к хакатону. 2 месяца слишком мало чтобы сделать качественную игру. А для крутого прототипа много времени не надо. Это просто база геймдизайна : если твоя идея требует слишком сложного/дорогого прототипа быть может НЕ ВСЕ С НЕЙ ХОРОШО? Люди на гамироне зацикливаются на чем угодно, но не на фане и цельном восприятии игры.
Цитата ГоК ( ) Нужны ли категории голосования при новых условиях? Я бы голосовал по категориям и игры бы могли в своих категориях быть лучшими. Разработчикам будет легче понять в чем они сильны, а где явно просаживаются. Можно быть первым в визуальщине и иметь слабые оценки по геймплею. Но будет круто если можно будет сортировать игры по отдельным критериям.
По завершению конкурса игры оформлять на itch.io или gamejolt - отличные площадки где можно вести документацию, красиво оформлять. В общем чтобы тема чувствовалась.
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Сообщение отредактировал pixeye - Вторник, 29 Мая 2018, 22:37 |
|
| |
|