[2D+3D] - The Great tribes - [TBS]
| |
Anyan | Дата: Четверг, 29 Ноября 2018, 13:34 | Сообщение # 41 |
участник
Сейчас нет на сайте
| Цитата Alexandrovis ( ) Если не верите, можете прочитать любую научную литературу из приведенного списка. да я и читать то не умею
Сообщение отредактировал Anyan - Четверг, 29 Ноября 2018, 13:46 |
|
| |
Zemlaynin | Дата: Пятница, 30 Ноября 2018, 03:55 | Сообщение # 42 |
частый гость
Сейчас нет на сайте
| Цитата Anyan ( ) ЗЫЗЫ графика похожа на стратежки 20 лет назад которые были
Спасибо за комплимент, я думал все еще хуже
Цитата мне кажется вы делаете одну и главных ошибок разрабов когда пытаетесь накидать в игру всего и побольше, а зачем фиг его знает, это скорее убивает интерес, чем добавляет.
Ох, вы не знаете сколько было уже отброшено.
Цитата Но для сингла нужен реально хороший ИИ (чтобы не стать очередной никому не нужной поделкой ) - вы сможете его разработать?
... действительно это очень сложно, но есть соображения по этому поводу. Будем пробовать.
Цитата Anyan ( ) мне кажется что это все одно и тоже у вас получится - всё достигается через техническое развитие?
А через что по вашему достигается?
Цитата Anyan ( ) да, планы у вас абциозные, но мне кажется проект уйдет на многолетний долгострой с таким размахом)) Да, к сожалению такой проект на коленке не написать.
Добавлено (05 Декабря 2018, 06:50) ---------------------------------------------
Дневник разработки №32
Всем привет!
Прошло полтора месяца с моего последнего дневника, был проделан огромный фронт работ за это время. Вот так выглядел мой таск лист, не учитывая тех задач что я выполняю по внутриигровым механикам:
Все задачи выполняли не в том порядке, в котором они были расположены в списке, да и тут отсутствуют мелкие задачи, которые приходилось решать попутно. Многие задачи не касались моего участия, например Алексей потихоньку текстурил здания:
Тем временем, я думаю наши читатели помнят голосовалку в нашей группе ВК https://vk.com/thegreattribes, шла работа по подбору цветового оформления террайна:
Вариант который мы выбрали на сегодняшний день покажу немного ниже.
Первым делом у меня стояла задача по реализации теней от объектов на карте и первые попытки реализации через Shadow map дали вот такой результат:
И после недолгих мучений удалось получить вот такой результат:
Далее, стояла задача подправить воду, подобрать к ней хорошие текстуры, коэффициенты и переменные для лучшего отображения, нужно было сделать блики на воде:
В это же время к нашей небольшой команде подключился еще один моделлер который сделал нам нового юнита:
Модель была с картой спекуляра, но поддержки этого материала не было в моем движке. Пришлось потратить время на внедрение поддержи specular map. Поралельно с этой задачей пришлось наконец-то доработать освещение.
Все как говориться, цепляется одно за другое, пришлось вводить поддержку влияния тенейц на спекуляр:
И сделать регулируемый источник света для проверки всего и вся:
Как видно теперь появилась панелька где можно управлять положением источника света. Но и это было не всё, пришлось задать дополнительный источник освещения имитирующий отраженный свет, чтобы получить более реалистичный спекуляр с теневой стороны, он привязан к положению камеры. Как теперь видно броня поблескивает и с теневой стороны:
Ух сколько было убито свободного времени на анимацию этого персонажа, точнее импорта анимации. Но теперь все работает отлично! Скоро запишу видео игрового процесса.
Тем временем Алексей выкатил новую модельку шахты:
Чтобы сделать такой скриншот с приближением шахты пришлось отвязать камеру, что дало возможность насладится открывшимися видами:
В процессе работы над построением городов был реализован механизм расширения административной зоны города, на скриншоте она обозначена белым цветом:
Надеюсь вы читали наш предыдущий дневник о реализации системы визуализации городских районов:
Как вы могли заметить на последнем скриншоте более качественные тени, чем ранее. Мною была допущена ошибка при расчете теней и по этому тени отставали от маленьких объектов и получалось ощущение что они висят в воздухе, теперь тень падает естественней.
Немного был изменен генератор карты, были подправлены холмы, сделал их более гладкими. Появились ледники на суше, если она находится близко к полюсам:
Была проделана большая работа по оптимизации отображения графики, переписал местами шейдеры устранив слабые места. Оптимизировал механизм хранения и отрисовки видимых тайлов, что дало ощутимый прирост и стабильный FPS на слабых компьютерах. Сделал плавное передвижение и поворот камеры, полностью исключив ранее видимые рывки.
Это не полный список всех решенных задач, я просто не помню все
Планы на ближайшее будущее:
- Интерфейс, очень большие у нас с ним проблемы и очень нужна помощь спецов в этом деле. - Реализация столкновений армий. - Реализация роста городов, я так и не доделал этот механизм. - Реализация первых зачатков ИИ, маневрирование армией и принятие решений и реакция на столкновение армий противника. - Реализация механизма хранения состояний отношения ИИ к противникам, дипломатия. - ИИ городов.
Спасибо за внимание! Вступайте в нашу группу в https://vk.com/thegreattribes
Сообщение отредактировал Zemlaynin - Среда, 05 Декабря 2018, 06:51 |
|
| |
Core | Дата: Среда, 05 Декабря 2018, 13:47 | Сообщение # 43 |
заслуженный участник
Сейчас нет на сайте
| Alexandrovis, А нельзя сделать людей нормального размера, а то выглядит это как то нелепо
|
|
| |
Zemlaynin | Дата: Среда, 05 Декабря 2018, 14:27 | Сообщение # 44 |
частый гость
Сейчас нет на сайте
| Цитата Core ( ) А нельзя сделать людей нормального размера, а то выглядит это как то нелепо Во многих стратегических играх юнит армии сделан в виде одной большой фигурки.
|
|
| |
pixeye | Дата: Среда, 05 Декабря 2018, 14:38 | Сообщение # 45 |
Red Winter Software
Сейчас нет на сайте
| Цитата Zemlaynin ( ) Во многих стратегических играх юнит армии сделан в виде одной большой фигурки.
Твоя правда : ) однако если брать эталон циву то они давно уже перешли на "группы" юнитов - это гораздо зрелищнее. Конечно работы добавляет, но на будущее имхо лучше на группы переходить.
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
|
|
| |
Zemlaynin | Дата: Среда, 05 Декабря 2018, 14:59 | Сообщение # 46 |
частый гость
Сейчас нет на сайте
| Цитата pixeye ( ) Конечно работы добавляет, но на будущее имхо лучше на группы переходить. Я это понимаю, но нет у нас человека, кто смог ба замоделить такие группы и потом их анимировать.
|
|
| |
Core | Дата: Среда, 05 Декабря 2018, 15:09 | Сообщение # 47 |
заслуженный участник
Сейчас нет на сайте
| Цитата Zemlaynin ( ) у нас человека, кто смог ба замоделить такие группы и потом их анимировать. Значит надо самому это все реализовывать, а так же освоить многозадачность.
|
|
| |
drcrack | Дата: Среда, 05 Декабря 2018, 15:41 | Сообщение # 48 |
старожил
Сейчас нет на сайте
| Не рановато ли тебе с подписью "Напишу трек для любого жанра игры за 69р" учить других жизни?
|
|
| |
Zemlaynin | Дата: Среда, 05 Декабря 2018, 15:45 | Сообщение # 49 |
частый гость
Сейчас нет на сайте
| Цитата Core ( ) Значит надо самому это все реализовывать, а так же освоить многозадачность. Мда... я то все могу, но делать тогда буду до пенсии
|
|
| |
pixeye | Дата: Среда, 05 Декабря 2018, 16:03 | Сообщение # 50 |
Red Winter Software
Сейчас нет на сайте
| Цитата Zemlaynin ( ) Мда... я то все могу, но делать тогда буду до пенсии :) Да норм все я тебя прекрасно как разраб понимаю, но это точно не последний комментарий такого плана.
Цитата Core ( ) Значит надо самому это все реализовывать, а так же освоить многозадачность.
Цитата Core ( ) Alexandrovis, А нельзя сделать людей нормального размера, а то выглядит это как то нелепо :D
Нелепо говорить нелепо про игры. Игра должна решать свои задачи и вряд ли эта игра потеряет от того как будут отображены модели. PS В Europa Universalis поиграй.
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Сообщение отредактировал pixeye - Среда, 05 Декабря 2018, 16:04 |
|
| |
Zemlaynin | Дата: Среда, 05 Декабря 2018, 16:16 | Сообщение # 51 |
частый гость
Сейчас нет на сайте
| Цитата Core ( ) а так же освоить многозадачность. Про какую многозадачность ты говоришь? Если в плане работы - то я и так с десяток функций выполняю, если о программной части, то у меня все работает на потоках
Цитата pixeye ( ) я тебя прекрасно как разраб понимаю, но это точно не последний комментарий такого плана. Ну может это далекий от разработки человек. Значит нужно ему рассказать, о том что, большие игры в одиночку делать долго. Я и так с чужой помощью пишу уже 2 года.
|
|
| |
Core | Дата: Среда, 05 Декабря 2018, 17:42 | Сообщение # 52 |
заслуженный участник
Сейчас нет на сайте
| Цитата Zemlaynin ( ) Про какую многозадачность ты говоришь? Если в плане работы - то я и так с десяток функций выполняю, если о программной части, то у меня все работает на потоках Сам на свой вопрос и ответил
Цитата drcrack ( ) Не рановато ли тебе с подписью "Напишу трек для любого жанра игры за 69р" учить других жизни? Причем тут подпись
|
|
| |
Zemlaynin | Дата: Среда, 05 Декабря 2018, 18:03 | Сообщение # 53 |
частый гость
Сейчас нет на сайте
| Цитата Core ( ) Сам на свой вопрос и ответил Твой вопрос был, просто размытый, я сразу на две версии ответил :)))Добавлено (11 Января 2019, 10:36) --------------------------------------------- Дневник разработки №33
Всем привет! И с прошедшими новогодними праздниками!
Прошло уже больше месяца с последнего дневника разработки. Скажу сразу, что хотел выложить дневник раньше, но столкнулся с трудноразрешимой задачей, на которую потратил кучу времени. Но все по порядку.
Согласно плану разработки был реализован первый контакт с ИИ:
Внизу скриншота видны сообщения о пересечении зон контроля армии с другой армией и городом. Теперь предстояло разработать некий элемент интерфейса который бы отображал данные события:
На данном скриншоте в левом верхнем углу представлена реализация UILabel с возможностью переноса текста по словам. Важный элемент интерфейса который пригодиться в дальнейшем. В правом нижнем углу, над кнопкой конца хода теперь видны различные сообщения, по наведению курсора мышки на них выскакивает подсказка (тоже новый элемент интерфейса), с коротким описанием события. По нажатию правой кнопки событие можно закрыть без принятия какого либо решения, а левой кнопкой можно раскрыть сообщение. В данном случае при нажатие на кнопку события произойдет первый дипломатический контакт в игре:
Далее были реализованы первые маневры ИИ. ИИ ходит по карте и пытается определить границы своего материка. В видео у Дуката https://youtu.be/69G51u_Mq3g?t=693 ,есть момент где он бегает за армией противника, который не обращает на него внимания, так как занят исследованием карты
И вот где-то в этом месте и в это время, я столкнулся с проблемой, проблемой производительности. У нашего моделлера достаточно мощный современный компьютер красной сборки. Но у него игра жутко тормозила грузя одно ядро процессора. Причина проста — в новых процессорах много ядер, но по факту они менее производительны в однопоточных приложениях. А тот момент у меня был рендер в один поток. Но на самом деле причины была не столько в этом. И в процессе поиска проблемы я решил посчитать сколько полигонов у нас присутствует в сцене:
На средней карте при максимальном отдалении и большом скоплении пальм - это просто жуть! 15 824 756 треугольников! Почти 16 миллионов!!!
Немного погенерировав карты я нашел место с 16,75 миллионами
Хотя вот подобное место с елками давало всего 8,5 миллионов треугольников:
А в среднем сцена состояло из примерно 4 миллионов:
В общем я был рад что мой рендер справляется с таким огромным числом треугольников, но их количество было чрезмерным. Нужно было оптимизировать количество полигонов в моделях.
На 40% снизился полигонаж елок! Отличий практически не видно.
Следом мы переделали и пальмы - полигонаж на пальмах был снижен в 10 раз. 600 - 700 против шести тысяч полигонов в одном паке.
Параллельно пока шла работа над моделями я занялся вопросом упрощения геометрии террайна. Вот как он выглядел до оптимизации:
И после первых шагов:
Но это было все сделано простым методом — все ровные тайлы были заменены двумя треугольниками вместо 882.
Но оставались еще ровные места которые можно было оптимизировать, и я начал строить полигоны из тех треугольников у которых была одинаковая высота:
Строить по ним выпукло-вогнутый контур (Concave Hull). С Convex Hull`ом проблем не было, я уже использовал алгоритм Грэхема (Graham scan). А вот построением Concave Hull появилась проблема... Информации на эту тему тему в интернете найти оказалось достаточно сложно. Пришлось писать реализацию алгоритмов с нуля. Не совру, если я скажу что прочитал с десяток разных диссертаций на эту тему. Но все предложенные алгоритмы давали приближенный результат с некоторой погрешностью. После недели мучений и боли мне пришла идея своего алгоритма, возможно я его когда-нибудь опишу В результате уже двух недельного мучения я получил искомый результат и смог строить Concave Hull практически любой сложности, обходя стороной множества с дырками, просто разделяя их на 2 половины по дырке. Получал контур и триангулировал его:
Получая на выходе такой результат:
Также подвергся упрощению туман войны:
И в зонах где присутствовал только туман войны получалось всего порядка 300 полигонов:
Но в итоге я был расстроен результатом и расскажу что эти две недели я потратил в пустую... Разработанный мной алгоритм давал ощутимую прибавку в производительности при отрисовке, так как количество полигонов в среднем сокращалось на 60 — 70%. Но генерация карты стала происходить раз в 10 медленнее.... алгоритм был тяжелый по временным затратам.
3 дня я проиграл в ATOM RPG снимая стресс Даже на работу не ходил. Слава богу у нас в это время термометр зашкаливал на границе -44 - -46 градусов по Цельсию. И свою хандру я выдал за отмазку о не заводившейся машине.
И вот перед новогодними праздниками, вдоволь наигравшись, но правда не пройдя игру, я выдал новую облегченную версию алгоритма, который подходил только под мои условия тайлов. Вычисления данных для оптимизации были не заметны на фоне генерации карты и количество полигонов снижалось в среднем на 40-50%. Но появились артефакты при отрисовке воды, пришлось переписать все алгоритмы связанные с водой. Вот результат:
Анатолий тем временем сделал юнит кочевья:
Пока он лежит отдыхает
В процессе работы над оптимизацией, мне пришла в голову идея как можно изменить наши горы.
Горы стали более рельефными, это заметно без текстуры, так как текстура теперь к ним не подходит:
По сетке так вообще отличия очевидны:
Осталось дело за малым — нужна новая текстура гор.
Следующим этапом пришлось переписать загрузчик ресурсов и генератор карты. Попутно переделав стартовое меню под эти все дела:
Теперь загрузка ресурсов идет параллельно и после чего начинается генерация карты.
Огромную работу проделал по разделению рендера на 3 потока. Вся сложность была в синхронизации. Теперь у нас один поток отвечает только за отрисовку, второй поток за перерасчет видимого пространства при передвижении камеры и прочих с взаимодействий с пространством карты, и третий поток отвечает за анимацию и связь с серверной частью.
И да, у нас теперь есть серверная часть отвечающая за все события в игре и за ИИ. В свою очередь каждый ИИ игрок это отдельный процесс.
Подведем итоги проделанной работы: - Оптимизация графики с программной стороны. - Оптимизация графики — модели. - Серверная часть. - Разбитие рендера на 3 потока. - Предзагрузка ресурсов (текстур и моделей). - Переписал шейдеры тумана войны, воды и террайна. - Сократил потребление оперативной памяти на 20-30% - Реализован ряд элементов UI - Переделано стартовое окно с новым UI. - Устранил ошибки в расчетах нормалей. - Подправил холмы. - Новые горы. - Ввели нормалмапу для террайна. - Новое выделение юнитов. - Новая анимация юнитов. - Окно дипламатии. - Действия ИИ. Исследование карты. - Действия ИИ. Дипломатический контакт. - Действия ИИ. Заключение мира, дружбы или объявление войны. - Действия ИИ. Действие юнитов при столкновении.
В общем была проделана огромная работа по оптимизации и не много по игровым механикам. Надеюсь в этом месяце в се пойдет по плану и я наконец-то допишу города
Спасибо за внимание! Вступайте в нашу группу в ВК: https://vk.com/thegreattribes
Добавлено (15 Января 2019, 05:06) --------------------------------------------- Вышла статья на Хабре https://habr.com/post/436040/
|
|
| |
drcrack | Дата: Вторник, 15 Января 2019, 12:04 | Сообщение # 54 |
старожил
Сейчас нет на сайте
| Цитата Вышла статья на Хабре https://habr.com/post/436040/ чет жесть самоотверженное превозмогание проблем которые были решены 10 лет назад и эти решения доступны бесплатно в куче движков на любой вкус и это еще я так понимаю у игры 2 тестера было — программист и моделлер, а че начнется когда ее будут пытаться запускать на зоопарке реальных компов реальных игроков страшно представить. ну удачи, че)
PS для тех кто не понял о чем речь — чел пишет свой движок с нуля на java+opengl
|
|
| |
Zemlaynin | Дата: Вторник, 15 Января 2019, 12:07 | Сообщение # 55 |
частый гость
Сейчас нет на сайте
| Тестеров больше По поводу движков промолчу, было сказано уже кучу слов на эту тему.
|
|
| |
drcrack | Дата: Вторник, 15 Января 2019, 12:18 | Сообщение # 56 |
старожил
Сейчас нет на сайте
| Цитата По поводу движков промолчу, было сказано уже кучу слов на эту тему. а где можно почитать эти слова, мне интересны твои аргументы ))
|
|
| |
Zemlaynin | Дата: Вторник, 15 Января 2019, 12:36 | Сообщение # 57 |
частый гость
Сейчас нет на сайте
| Не помню точно на каком сайте мы вели дисскусию по поводу самописного движка. Если есть желание можно пошерстить
Если нет, могу конечно вкратце написать
|
|
| |
drcrack | Дата: Вторник, 15 Января 2019, 12:55 | Сообщение # 58 |
старожил
Сейчас нет на сайте
| Цитата Если нет, могу конечно вкратце написать :) напиши
|
|
| |
Zemlaynin | Дата: Вторник, 15 Января 2019, 13:22 | Сообщение # 59 |
частый гость
Сейчас нет на сайте
| Основные моменты которые крутятся на языке: 1. Почему большинство стратегий написаны на своих движках? 2. Почему не Unity - с этим инструментом знаком поверхностно, были попытки, были проблемы с производительностью и излишнем потреблением памяти. Это отчасти и ответ на первый пункт. Нам не нужен движок который будет тащить за собой кучу ненужных нам сущностей. 3. Я достаточно хорошо знаю Java. 4. Спортивный интерес в создании своего движка. Интерес постижения самых основ. Кто-то же должен делать движки. 5. Одна из самых популярных игр написана на Java. Я считаю что основа её популярности - простота моддинга на Java.
|
|
| |
drcrack | Дата: Вторник, 15 Января 2019, 14:54 | Сообщение # 60 |
старожил
Сейчас нет на сайте
| Цитата 1. Почему большинство стратегий написаны на своих движках? могу предположить что из-за относительной легкости разработки узкоспециализированного движка ограничение "2д геймплей, камера только издалека и сверху" на порядок упрощает буквально ВСЕ
Цитата 5. Одна из самых популярных игр написана на Java. Я считаю что основа её популярности - простота моддинга на Java. а я так не считаю основа ее популярности — интересный (и в свое время уникальный) геймплей
Цитата 4. Спортивный интерес в создании своего движка. Интерес постижения самых основ. Кто-то же должен делать движки. мне вот хватает базовых знаний о том как это все работает я прекрасно понимаю что если я возьмусь за свой движок, то в итоге получится примерно то же самое что можно наблюдать в этой теме — через год разработки у меня будет рендерер террейна с деревьями и больше ничего для сравнения, год разработки на unity: https://youtu.be/2I8_volHQ0Y (по большей части мной в одно рыло с эпизодической помощью от разных людей)
Цитата 3. Я достаточно хорошо знаю Java. тем более не вижу никаких проблем перейти на Unity c# это как java, только на 10 лет впереди
Цитата 2. Почему не Unity - с этим инструментом знаком поверхностно, были попытки, были проблемы с производительностью и излишнем потреблением памяти. Это отчасти и ответ на первый пункт. Нам не нужен движок который будет тащить за собой кучу ненужных нам сущностей. это каких таких сущностей если не секрет?
|
|
| |
|