Среда, 18 Декабря 2024, 07:59

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Результаты поиска
ZemlayninДата: Пятница, 13 Апреля 2018, 13:25 | Сообщение # 21 | Тема: [2D+3D] - The Great tribes - [TBS]
частый гость
Сейчас нет на сайте
Дневник разработки №18

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

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

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

Ну хватит вступления!

На сегодняшней момент, идет работа над способом хранения ресурсов и товаров и их распределением внутри города. Дополняется математическая модель торговли между городами и фракциями с учетом интерполяции данной модели на торговлю между странами. Здесь нам пришлось немного упростить модель торговли и от изначально планировавшейся торговли между стратами пришлось отказаться. Минимальный уровень торговли — город или деревня. Но страты оставляют за собой достаточный уровень влияния на торговлю, просто у страт не будет своих складов, все ресурсы хранятся на одном городском складе. Уровень доступности страты к складу города, будет зависеть от богатства и потребностей страты и прочих её характеристик.

Походу реализации основной задачи, выполняются и более мелкие:
- отображение тумана войны с учетом административных зон городов;
- зона столкновения двух юнитов;
- исправлена ошибка с отображением вражеского юнита в тумане войны.
Это список из последних выполненных задач, конечно, на самом деле, он шире.

Добавлена генерация расположения городских районов. Алексей сделал уже модельки шесть районов, пока они не текстурированы, но смотрятся уже неплохо:



Попробовали сделать небоскребы, правда они совсем без материалов и на скринах они как черные дыры :)


В общем города будут выглядеть вот так:



Максимальный размер городов:


Города с подложкой:


А вот какая речная долина получилась!

Далее мне бы хотелось поделиться с вами эволюцией интерфейса пользователя. 23 скриншота в порядке их создания:


Хотелось бы получить фидбэк по этой теме.

Так что работа кипит! Ближайшие задачи — закончить и прикрутить интерфейс. Реализовать модель торговли и роста поселений.

Всем удачи!
P.S. Ищем Java программиста :)


Сообщение отредактировал Zemlaynin - Пятница, 13 Апреля 2018, 13:26
ZemlayninДата: Воскресенье, 18 Марта 2018, 09:33 | Сообщение # 22 | Тема: [2D+3D] - The Great tribes - [TBS]
частый гость
Сейчас нет на сайте
Дневник разработки №14

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



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

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



По мимо этого с Алексеем мы обнаружили баг отображения загружаемых объектов: вот так выглядел куб:



Пришлось перепроверить матрицы трансформации, была ошибка в матрице поворота из-за чего нарушались пропорции объектов.

Алексей сделал новые модельки деревни:


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

Тем временем Алексей реализовал 3 концепта городов: простой город без специализации, торговый и религиозный город:


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

И в заключении хочу сообщить хорошую новость, к нашему проекту присоединился еще и художник!
Вот набросок интерфейса миникарты:


По мере своих возможностей, он начал работу над реализацией вот этой концепции интерфейса

Основной экран

Экран города

Экран юнита

Всем спасибо за внимание!
Вступайте в нашу группу https://vk.com/thegreattribes
ZemlayninДата: Пятница, 16 Марта 2018, 14:00 | Сообщение # 23 | Тема: Делимся проектами
частый гость
Сейчас нет на сайте
Мы вот The great tribes постоянно публикуем обновления :)
ZemlayninДата: Пятница, 02 Марта 2018, 12:43 | Сообщение # 24 | Тема: [2D+3D] - The Great tribes - [TBS]
частый гость
Сейчас нет на сайте
Дневник разработки №11

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

Начну с нового экрана загрузки:


Напомню о поставленных мною на первую неделю задачах: прикрутить кнопку «Конец хода» и осуществить первый ход в игре; реализовать многопоточнось в ИИ противников; прикрутить первые города и деревни.

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

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

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


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

Работа кипела, и ранним утром 20 февраля, когда я планировал завершить работу над передвижением юнитов и их взаимодействием с картой и туманом войны, меня ждал сюрприз.
Каждое рабочее утро я обхожу все форумы на котором мы рассказываем о своем проекте. И на одном из них меня ждало сообщение от Yoggi, он буквально так и написал: Приветствую! Нужны пальмы? Подарю, если требуются.

Конечно я согласился! Это было так неожиданно и круто само по себе. И отложив все дела я попробовал прикрутить пальмы:


Сделав с них паки, получил вот такие джунгли:


Отвязав камеру, я наслаждался видами:


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

Увидев результат своей работы, Yoggi предложил и быстро воплотил простенькую елочку:


С отвязанной камерой я даже заглянул под землю :)


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


В большинстве других игр просто забили на эту проблему :) Но проблему я реши, просто перестал высаживать паки деревьев на берегах.

Утром следующего дня меня ждал очередной сюрприз от Yoggi:


Быстро накиданные мной паки давали не очень хороший результат:


Пришлось малость повозиться с расположением деревьев в паках:


Целый день я крутил и компоновал пальмы и елки чтобы сделать с них красивые структуры.
Забегаю вперед скажу что на первые десять паков пальм я потратил целый день! Но через неделю я уже мог делать по 20 паков за 2 часа! Ух и поднаторел я в 3D моделировании за эти 2 недели :)

Параллельно с работой я переписывался с Yoggi, он сказал, что не готов подключится к проекту, так как по уши завален работой. Но готов иногда помочь с модельками по мере сил. Но он продолжал каждый день радовать меня новыми объектами! Поэтому, я считаю его полноценным участником нашей команды! Я очень благодарен этому человеку, он вдохнул, вселил в меня новые силы, подарил положительные эмоции от созерцания того как меняется окружающий мир нашей игры. Алексей огромное тебе спасибо!

И так, утром следующего дня:


Пальма шик! И новая елка:


Теперь елка не подходит к пальме... начали эксперименты по текстурированию:


Тем самым временем, пока Алексей занимался текстурой елки я прикрутил полученные от него камыши:


А тут и новая елка подоспела:


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


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

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


Для понимая объема проделанной, в течении последней недели, работы, скажу вам что я за эту неделю поспал всего порядка 20 часов, без устали реализовывая новые фишки. Признаюсь малость устал, но не мог начать отдыхать пока не реализую последнюю задачу из списка, вот она - первая деревня мечты: :)



Деревню лепил сам, это так скажем концепт.

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

Жду критики и отзывов!

Присоединяйтесь к нашей группе в ВК https://vk.com/thegreattribes


Сообщение отредактировал Zemlaynin - Пятница, 02 Марта 2018, 12:44
ZemlayninДата: Среда, 14 Февраля 2018, 11:41 | Сообщение # 25 | Тема: [2D+3D] - The Great tribes - [TBS]
частый гость
Сейчас нет на сайте
Дневник разработки № 8

Всем привет!

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

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

План на эти три недели был следующий:
1. Завершить работу над генерацией карты, реализовать распределение ресурсов по карте.
2. Изменить стартовое окошко где предусмотреть место для разного функционала игры.
3. Неким образом визуализировать процесс загрузки и генерации карты.
4. Визуализировать поиск пути.
5. Разместить стартовые поселения и юниты на карте.

Данный план пришлось нарушить, так как появилась необходимость, для удобства поиска сгенерированных ресурсов показывать текущее местоположения на карте. Для этого пришлось реализовать элемент пользовательского интерфейса — миникарту. Для этого в свою очередь пришлось проработать и реализовать всю систему классов по работе с UI. Это заняло практически целую неделю.

И так согласно плану было реализовано распределение ресурсов по карте. И на этом этапе с генерацией карты закончено.

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


При выборе Юнита теперь показывается путь его перемещения и изменяемый путь:


Также на этой картинке вы могли заметить первый элемент интерфейса — миникарту. Что бы представить огромный размер средней карты посмотрите на следующий скрин, где на миникарте показана область с максимальным отдалением камеры.


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

Также была проведена работа по оптимизации производительности. Данная работа была произведена спонтанно. Я уже думал что оптимизировал все что можно добившись стабильного показателя FPS на разных машинах. Но как говориться нет придела совершенству. И в один прекрасный вечер я засыпал с мыслями о реализации UI, но видимо мой мозг продолжал все еще решать интересную ему задачу оптимизации. И проснулся я уже с готовой реализацией, пришлось немного изменить систему хранения видимых на экране тайлов. Данная работа заняла буквально пять минут кодинга, но дала снижение нагрузки на процессор в районе 15-20%. Ух как это было круто! :)

Теперь задача на ближайшую неделю: прикрутить кнопку «Конец хода» и осуществить первый ход в игре! Работы тут не початый край, многопоточнось! Хочу каждого AI игрока разместить в своем потоке. Ну и наконец прикрутить первые города и деревни.
ZemlayninДата: Суббота, 27 Января 2018, 11:18 | Сообщение # 26 | Тема: [2D+3D] - The Great tribes - [TBS]
частый гость
Сейчас нет на сайте
Дневник разработки № 4
Всем привет!
За последние три недели немного выбился из графика работы над проектом. Причиной тому было вот это :


Потратил 4 дня на симуляцию дыма. Это полноценный 3D дым, сделано 3D-текстурами на основе шума Перлина. Думал пригодиться в игре. Но такой метод очень нагружает видеокарту и мало применим к играм, что я понял уже слишком поздно, но все же решил допилить до конца. Получилось достаточно реалистично, но где-то похоже ошибся со светом и под определенным углом обзора может показаться что это вовсе не 3D дым.

Поправил отображение вулканов:


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


Закончив наводить марафет, я задумался о предстоящей глобальной работе по написанию загрузчика 3D объектов. Для статичных объектов все было более менее понятно, но вот анимированные объекты для меня казались не решаемой задачей. На этом фоне я малость взгрустнул и следующие выходные решил отдохнуть и на пару дней ушел в PUBG. Скажу честно я не любитель всякого рода шутеров и мой скилл в таких играх наверное ниже среднего. Но побегать по обширной карте мне почему-то доставило. И после пары десятков игр я начал стабильно входить в топ10 и даже раз занял 2е место :)

Но вот я начал поиск информации по работе с анимированными 3D объектами и наткнулся на библиотеку Open Asset Import Library (Assimp) и её реализацию под Java. И дело пошло веселее.

Первым делом разобрался со статичными объектами и достаточно быстро удалось разобраться и с анимацией. Следом встала задача найти объекты деревьев и пальм чтобы прикрутить их к проекту. Поиск дал огромное количество бесплатных моделей но ни одна модель не подходила мне. Мне нужна было low poly модель и с этим была проблема. Те модели которые мне удалось найти были кривыми и содержали кучу лишних полигонов. Покрутив их я решил попробовать сделать простые модели сам... Гхм...
Первый раз в жизни я взял в руки Blender не для перегонки из одного формата в другой, а для создания объекта с нуля. За пару часов мучений и боли у меня получилась вот такая ель:


Воодушевленный результатом я взялся за пальму:


С елкой было проще, не смейтесь - пол дня я убил на эту пальму:

Уложился в 73 полигона.

Вот так это выглядит непосредственно в проекте:


На видео видно анимированного человечка и можете увидеть течение у рек:


Сообщение отредактировал Zemlaynin - Суббота, 27 Января 2018, 11:21
ZemlayninДата: Понедельник, 08 Января 2018, 12:57 | Сообщение # 27 | Тема: [2D+3D] - The Great tribes - [TBS]
частый гость
Сейчас нет на сайте
Дневник разработки № 1
Данный проект я пишу на Java и ранее все отображение графики происходило стандартными средствами Java и поэтому все рисовалось силами процессора. Но в какой-то момент, на моем достаточно мощном компьютере, все стало притормаживать и при больших масштабах даже подлагивать.

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

И на этом этапе наступил переломный момент. Я решил все это дело перенести в 3D, дабы вся отрисовка происходила на видео карте, так как процессор нам нужен для другого :)

Стоит отметить, что в 3D на этот момент я был полный ноль и все мои знания были чисто теоретическими и поверхностными.

Начал я с ознакомления с существующими библиотеками для работы c 3D на Java. Выбор оказался не велик и в результате я взялся за изучение LWJGL. Помимо этого пришлось доставать из уголков своей памяти знание основ OpenGL и оказывается мои знания безнадежно устарели.

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



Мир был жутко страшным с нелепыми треугольными горами:



Я понимал, что сейчас весь этот ужас происходит из-за таких страшных текстур и начал поиск более подходящих, даже купил текстурпак:



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



Ну что-же, выглядят они намного лучше. Пора избавляться от нашего плоско выглядящего мира к более объемному. Для этого нужно добавить освещение, чтобы заиграли все неровности! И о боже что это?



Полное отсутствие нормалей дает такой результат. Высчитываю нормаль для каждого треугольника:



Получилось не очень, высчитываю нормаль для каждой вершины:




Усредняю нормали для соседних вершин на стыках тайлов:



Теперь видны холмы и горы. Но поверхность слишком бугристая



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

За несколько дней сделал все до слова «реки» и озадачился одним вопросом... вы, наверное, заметили в окне в левом уголку циферки? Это FPS. Я их конечно замечал в самом начале, но откладывал на потом, понимая, что у меня отрисовывается вся карта, а не её видимая часть. Взялся за оптимизацию и результат:



Рек все еще нет, но я занялся сглаживанием краев воды и красивым прибоем, жалко на скрине не видно прибой:



Все красиво и хорошо, но рек все же еще нет и пора браться за них. Сразу столкнулся с проблемой что мой алгоритм из 2D версии не подходит к 3D из-за того, что тут тайлы квадратные, а там были ромбовидные и все реки стали прямыми и некрасивыми. Пришлось переписывать весь алгоритм с нуля. Жалко я не сохранил скрин первых рек, они были в принципе ничего. Но они были квадратными!
И все это из-за того, что весь мир у меня строился на тайлах, а каждый тайл у меня строился из девяти субтайлов и, в свою очередь, каждый тайл разбивался на 9 квадратов что соответствовало 18 полигонам. 18 полигонов это очень мало для придания рекам хоть какой-то формы отличной от квадратно-угловатой.

Решил попробовать увеличить число полигонов на субтайл, по моим прикидкам 100 квадратов (200 полигонов) на субтайл было бы самое то, и на бумаге даже красиво получалось...
Но 3200000 полигонов рисуемые в 2 прохода... плюс еще будут десятки тысяч объектов от 100 до 1000 полигонов... получается многовато, да и памяти хорошо отъедает и строиться такой мир долго очень, а как его сохранять потом? Подумав малость пришлось отказаться от такого подхода. И начались бессонные ночи в расчетах и поиске золотой середины. Три дня и три ночи я не спал и думал. Я переосмыслил все что-только можно было, и уже даже почти успел впасть в депрессию из-за невозможности найти решение, да и просто и от усталости. В ночь на 20 декабря я наконец-то смог уснуть...я уснул ровно на 20 минут и проснулся... Ведь какая штука наш мозг... проснувшись ко мне пришло полное осмысление всей информации, полное осмысление и понимание устройства OpenGL (конечно преувеличиваю), я проснулся с решением поставленной задачи. В 3 раза сократил потребление видеопамяти, в несколько раз сократил и потребление оперативной памяти, увеличил общую производительность, убрал один жесткий лаг. В общем жизнь заиграла другими красками.

В итоге, я все же решил сократить количество полигонов и вместо сетки 10х10 на субтайле, я сделал 7х7. Единственное пришлось много времени потратить на перерисовку гор и берегов и 30 декабря я выкатил вот такой результат:





31 декабря - 1 января был синдром нового года.

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




Но пришлось еще малость по колдовать, чтобы нивелировать такие резкие повороты




И в итоге получить нечто подобное



Тяжелые были 2 месяца, но предстоит еще больше! Проекту очень требуется в помощь художник и 3D-моделлер!
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг