Войти
ПроектыФорумСобираю команду

Разработка игры HardLanding [ищу 3д моделлера/художника/геймдизайнера/тестировщика] (2 стр)

Страницы: 1 2 3 4 5 6 Следующая »
#15
0:04, 3 мая 2022

u960
> менеджер карутин будет?
зачем? нет он там не нужен. У нас моделируется полная асинхронность, где каждое устройство, участок провода и т.п. - работает сам по себе, с частотой раз в секунду.

#16
0:14, 3 мая 2022

>tac
Да без проблем могу и коммент оставить на видео.

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

Оставил, и лайк поставил.

#17
0:47, 3 мая 2022

FourGen
> Оставил, и лайк поставил.
Спасибо, я наверно все же запишу видео ... у вас там минимум три длинных вопроса получилось :)

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

Про модули, думаю правильнее это называть компонентами - я понял ... ждите обновлений

#18
1:33, 3 мая 2022

>tac
Когда в функцию или процедуру, поступают данные которые могут при неправильных значениях вызвать исключение скажем:
Параметры должны быть в пределах 1-10, то проверяю являются ли они в этих пределах или нет, что бы исключить некорретные. Да они проверяются в предыдущей процедуре, когда создаются, но она может быть изменена и что бы потом не искать где что не так, можно сделать обработку. И так вообще для всех параметров. Если может быть null, тогда проверка на null с пониманием откуда он взялся и тд.

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

Удалили компонен с объекта, прога падать не должна, даже если на него идут ссылки и они где-то используются, как это можно не проверять?

Этому наверняка есть объяснение какое-то. Или так быстрее, или так проще или это не нужно или еще что-то. (Вот по стабильности, это мнереально интересно)
По структуре, уже так для общего развития.

Ну на всякий случай уточню по архитерктуре, мало ли. Я име юв виду примерно следующее:
Есть скажем действие некое, диалог, ходить, функция ящика, умирать

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

Я не спец, мне сложно объяснить, надеюсь понятно примеры привел.

P. S.
Под модулями я понимаю скрипты, обычно обособленный или скрипт + скрипт параметров

#19
3:06, 3 мая 2022

FourGen
> Когда в функцию или процедуру, поступают данные которые могут при неправильных
> значениях вызвать исключение скажем:
> Параметры должны быть в пределах 1-10, то проверяю являются ли они в этих
> пределах или нет, что бы исключить некорретные. Да они проверяются в предыдущей
> процедуре, когда создаются, но она может быть изменена и что бы потом не искать
> где что не так, можно сделать обработку. И так вообще для всех параметров. Если
> может быть null, тогда проверка на null с пониманием откуда он взялся и тд.
>
> Удалили компонен с объекта, прога падать не должна, даже если на него идут
> ссылки и они где-то используются, как это можно не проверять?
>
> Этому наверняка есть объяснение какое-то. Или так быстрее, или так проще или
> это не нужно или еще что-то. (Вот по стабильности, это мнереально интересно)

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

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

Третье. Откуда вся эта лирика идет. Вас же где-то этому учили? По большому счету - это влияние такой пропаганды как "экстремальное программирование". Но только задумайтесь сколько лишнего вы делаете

> Параметры должны быть в пределах 1-10, то проверяю являются ли они в этих
> пределах или нет, что бы исключить некорретные.

Тут вы должны лишь однозначно полюбить строготипизированные языки, т.к. написал int и это число, а написал строка и это строка. А вот такие мелочи - 1-10 ... ну кому это важно? завтра все поменяется и вы вместо того, чтобы ничего не делать, пойдете менять проверки? Это утопия ... вы реально так программируете, ну не верю ...

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

> Удалили компонен с объекта, прога падать не должна, даже если на него идут
> ссылки и они где-то используются, как это можно не проверять?

ну пусть упадет, вам то что? Упадет тогда и исправите. Зачем усложнять себе жизнь тем, чего не произошло?

Вы ровно так же увидите, что компонента нет, и ваше сообщение "компонента нет" ничем не отличается от "компонент упал".

#20
4:01, 3 мая 2022

Краткий обзор основ архитектуры в игре HardLanding 03/05/2022 (UNITY, C#, Архитектура кода)

Мне задали ряд вопросов в связи с архитектурой в игре, такие как удобно ли будет расширять функционал? почему логика пишется в классах, а не используется компонентный подход Юнити? Из краткого обзора должно стать понятно, что компонентный подход Юнити используется ограничено - не каждый класс - это компонент. Компоненты - это системные классы, которые управляют некими сущностями. А сущности это абстракции реального мира со своим поведением и логикой. С таким подходом в использовании Юнити становится легко программировать используя ООП, а следовательно не нужно никаких больше приемов, чтобы функциональность добавлялась легко и просто.

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

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

#21
5:19, 3 мая 2022

FourGen
> есть например дом, можно ему назначить параметр ящик, при клике на дом
> откроется ящик, открытие ящика это отдельная сущьность, можно сделать что бы он
> начала диалог при открытии ящика. Если указано, что он может ходить, то неважно
> есть там аниматорконтроллер или нет, он должен ходить, а вот как раз проверки
> наличия этих аниматорконтроллеров и тд, должны обрабатываться кооректно то есть
> не должно падать.
>
> Я не спец, мне сложно объяснить, надеюсь понятно примеры привел.

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

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

> можно сделать что бы он начала диалог при открытии ящика. Если указано, что он может ходить
как указано? кому указано? логично тогда иметь список действий связанный с визуализацией - аниматором ... но анимации, то уж точно специфичны! И вот мы пришли, что вы никуда без ПРЕФАБОВ дом и ящик не денетесь. И на них как минимум повесите скрипт - сущность, которая умеет клик и как-то вам надо их отличать друга от друга - ну по минимуму введете свойство Name .

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

> А если вам понадобится потом, что бы электростанция выполняла функцию склада попутно и при этом еще могла перемещаться?

Ну и когда предлагаете пример, плиз что нить осмысленное ... электростанция функцию склада? как это? и чтобы на колесиках ездила? :)

#22
10:52, 3 мая 2022

>Откуда вся эта лирика идет. Вас же где-то этому учили?
У меня нет спец образования IT, все на уровне хобби, когда постоянно что-то делаешь криво, ничинаешь считать, что так и надо), я много работал с потоками, там малейший косяк (по крайней мере так считаю), и приложение будет падать по утечкам, скажем раз в месяц-пол года, и потом фиг найдешь, где оно там утекает и что за хендл забыл закрыть.

но я начинаю думать - что что-то там не так точно

100% что-то не так. Если сможете прокоментировать, мне было бы интересно, сейчас делаю штуку, еще некоторое количество проверок и описаний надо добавить - несколько дней  и выложу готовое.
(было бы интересно понять, как сохранить все проверки, но более правильно это организовать, что бы не было лишней писанины)

Вы ровно так же увидите, что компонента нет, и ваше сообщение "компонента нет" ничем не отличается от "компонент упал".

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

логично тогда иметь список действий связанный с визуализацией

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

А вот такие мелочи - 1-10 ... ну кому это важно? завтра все поменяется и вы вместо того, чтобы ничего не делать, пойдете менять проверки?

Да если понадобится изменить границы, то буду менять границы, это по сути ничем не будет отличаться от рефакторинга ведь? Сейчас прыгать могли в пределах 0 - 0.5 метра а стали прыгать в предлах 0 - 1 метра. Но при этом это никак не повлияет на проверку уперся ли персонаж в препятсвие во время прыжка или нет и он просто станет.

Ну и когда предлагаете пример, плиз что нить осмысленное ... электростанция функцию склада? как это? и чтобы на колесиках ездила? :)

Без проблем:
Автомобиль с генераторной установкой который запитал некое здание, где в кузове еще есть место и туда можно что-то положить для перевозки, и при этом если он передает энергию зданию, его можно переместить на другую клетку.

Что-то в этом духе. (Не совсем так как на скрине, просто для понимания, там настроек еще на 2 часа этого дела что бы проставить порядки выполнения и приоритета и назначить правила, но суть примерно такая)
Box | Разработка игры HardLanding [ищу  3д моделлера/художника/геймдизайнера/тестировщика]
Может рандомно ходить, может умирать, то есть есть жизни, но не может атаковать, так как не повешен скрипт атаки, является магазином и может разговаривать, при этом еще является ящиком, его можно открыть и положить в него вещи ну или забрать. Так же можно смешивать все это, но у меня не дописана система настройки, это гемор тот еще все вручную.
* анимаций нет и аниматора к нему нет

По видео:
В общем я понял разницу. Я не использую ООП. А так в общем целом все то же самое. Надо будет заняться поразбираться с этими наследованиями и прочим, может я многое упускаю. У вас выглядит более запутано (для меня). Мне более проще держать 3 десятка массивов, чем 3 десятка классов, которые между собой завязаны. Вероятно отсюда и проверки у меня идут в огромном количестве, так как всегда надо контролировать значения, а у вас они чисто физически не могут быть ошибочны, если нет багов. Но суть примерно такая же.

#23
12:07, 3 мая 2022

FourGen
> В общем я понял разницу. Я не использую ООП. А так в общем целом все то же
> самое. Надо будет заняться поразбираться с этими наследованиями и прочим, может
> я многое упускаю.
Надеюсь лайк поставили :) Рад, если чем то помог. Конечно, без ООП я себя давно не мыслю ... и конечно вы тогда упускаете ..

tac
> Автомобиль с генераторной установкой который запитал некое здание, где в кузове
> еще есть место и туда можно что-то положить для перевозки, и при этом если он
> передает энергию зданию, его можно переместить на другую клетку.

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

Единственно, я не представляю себе как генератор может запитать здания и при этом перемещаться.

Но в любом случае, генератору до этого нет дела. А в новом классе автомобиля это все будет реализовано. По сути превратится в мини строителя который поставит генератор и провода подведет.

FourGen
> Если сможете прокоментировать, мне было бы интересно, сейчас делаю штуку, еще
> некоторое количество проверок и описаний надо добавить - несколько дней  и
> выложу готовое.
выкладывайте, на конкретном примере, сможете потом переделать под ООП. И поймете разницу на практике.

А графику в вашей игре сами делаете?

#24
16:13, 3 мая 2022

>tac
Да поставил, спасибо.

А графику в вашей игре сами делаете?

Нет я рисовать не умею. Всю графику, анимации сделали.
Я только в Unity перевожу и расставляю (рефференс то же есть), так как оно под самописанный двиг планировалось и не переведено соответвенно.

По ООП надо разбираться, вот допилю штуку можно на ней было бы попробовать, если будет желание. Там немного 2К строк всего (и больше половины комментарии). Все +- разнесено по процедурам и функциям, корявенько, с приличным вложением (но лень далее делить на более мелкие части). В некотором случае с обращением к глобальным переменным прямо из процедуры, а не в виде параметров. Покажу в общем, там решите надо оно вам или нет, а я посмотрел бы с удовольствием что можно сделать.

#25
16:22, 3 мая 2022

FourGen
ок, могу сделать разбор на ютубе вашего кода ) раз уж я начал развивать свой канал

а мне бы заполучить специалистов по графике :)

#26
20:08, 3 мая 2022

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

#27
21:40, 3 мая 2022

Arclight
> Вот мне интересно, а как вы будете наследоваться от двух классов? Или вы
> запихнете один в другой, тогда что важнее склад или генератор?
u960
> а может еще наследоваться от стиральной машинки

вы оба, что-то напутали - я разве что-то говорил о наследовании?

#28
22:50, 3 мая 2022

tac
> вы оба, что-то напутали - я разве что-то говорил о наследовании?
tac
> С таким подходом в использовании Юнити становится легко программировать
> используя ООП, а следовательно не нужно никаких больше приемов
tac
> логика пишется в классах, а не используется компонентный подход Юнити
tac
> Компоненты - это системные классы, которые управляют некими сущностями.

С чего вы взяли что компонентный подход должен быть обязательно привязан к Юнити?
Так как по вашему должен выглядеть склад и генератор в одном флаконе?

#29
23:37, 3 мая 2022

>Arclight
Ну ведь из этих классов, которые друг друга наслудуют (сорри я ООП не знаю) можно же обращаться к внешним классам и использовать их логику (если получить ссылки на них)? Наверное так и можно будет.

Страницы: 1 2 3 4 5 6 Следующая »
ПроектыФорумСобираю команду

Тема в архиве.