Видимо и я дорос до того чтобы организовать здесь свой W.I.P, в данной теме, я буду освещать работу над всеми своими проектами, как законченными так и которые ещё в процессе создания.
Почему ZZZubec? потому что именно под таким ником я больше всего известен на просторах интернета.
мой блог http://zzzubec.blogspot.ru/
группа проектов вконтакте: https://vk.com/phantom_hunter_group, также она ещё называлась windy
Редактор OpenGL объектов http://www.gamedev.ru/code/forum/?id=18614 (2006 год... а я думал затерялась тема)
Глобальный мод на игру Minecraft: Сектор 5661 (Sector 5661) aka (Minecraft Stalker Mod или MCS mod) https://www.youtube.com/results?search_query=%D0%A1%D0%B5%D0%BA%D… BE%D1%80+5661
Проект в котором участвовали:
Руководитель проекта: Александр aka Meny
Технический руководитель проекта: Иван aka ZZZubec
3D дизайнер: Иван aka Robocop
Дизайнер карт: Денис aka TheAs110z
Естественно идеи и просто мысли вслух, реализовывали мы вместе. Но каждый отвечал за свой раздел головой 8)
Изначально проект начинался с мода MCS на форуме minecraft.su, в котором принимали участие аж 12 человек и в котором руководителем был я сам.
Robocop, TheAs110z, ZnW (ZeroNoWings) и другие участники с которыми мы фактически и заложили основы, которые уже после объединения с Meny (партнером проекта), переросли во всем известный сервер: Сектор 5661. Который был запущен в мае 2013 года в Астрахани. Через полгода проект был закрыт из-за внутренних разногласий.
Проект многоразово пытался быть реанимирован, как на новых версиях Minecraft https://www.youtube.com/watch?v=J7PCAVt-VH4&list=PLV5M9Zg0Imx… 3&index=2, так и на совершенно других платформах как отдельная игра https://www.youtube.com/watch?v=XDeKAlLQiiI&index=12&list… QDcHYiALd5Mz3
скриншоты "Сектор 5661" (на Unity)
, фактически тем же составом, но "палка стреляет лишь один раз".
Не смотря на это, в игре каким то чудом, появился легендарный клан Легион (Legion), о котором и по сей день слагают легенды в других проектах на сталкерскую тематику.
Клан был популярен тем, что не раз вставал на защиту бывалых и совсем зеленых новичков, когда их прижимали другие игроки пользуясь лазейками в правилах игры (а правило было только одно, выжить))). Также слышал истории о том, что они частенько помогали лутом и снарягой, а также помогали проходить задания в которых требовалось проходить группой. В общем и в целом, клан был как светлячок в кромешной тьме.
В игре было 6 локаций: Кардон, Сады Чусовского, Седое озеро, Автобаза, и две не достроенных локации Арена и Деревня новичков.
Некоторые идеи были придуманы мной (и не только) ещё в глобальном моде на игру сталкер в группе All Changes Team (ACT) в 2009 году. Интервью с участниками проекта было два, вот одно из них http://ap-pro.ru/blog/intervju_s_razrabotchikom_all_changes_mod/2012-07-12-194
это календарики которые мы создавали для тех, кто ожидает мод.
Космическая песочница GameFF - http://www.gamedev.ru/projects/forum/?id=208088
Руководитель проекта: Salamandr
2D дизайнер: har1ton
Ну и текущий проект, который продолжу освещать уже здесь, это RTS "Spear Of God", которая началась в результате участия в конкурсе "Развивайся или умри".
видео:
На текущий момент реализовано:
Рабочие, которые умеют добывать золото, рубить лес и относить ресурсы на ИХ ближайшую базу.
Выделение рамкой юнитов
Туман войны - пофикшен до нормального состояния (в видео этого пока нет)
Логика ИИ, которая следит за юнитами не принадлежащих игроку
И глобальная логика, которая следит за базовой механикой юнитов игрока.
Перемещение юнитов по карте, к объекту, а также перемещение к точке. Сделано так, что даже если юниты идут в одну точку, они ищут место куда встать рядом (чтобы не толпиться).
[место зарезервировано]
Spear Of God
= пофикшено выделение юнитов.
+ добавлено два материала для разного отображения юнитов игрока и противника
+ добавлена "камера фокуса", которая отображает текущий выбранный объект (будь то здание или юнит), за юнитами она ещё и следит. Если никого не выбрано или выбрано больше одного юнита, отображается "квадрат малевича". Можно выбрать в том числе чужого юнита или здание. Информация пока не отображается.
+ теперь при выделенных юнитах и ПКМ по шахте или дереву, если юнит имеет профу "рабочий", начинает добывать или рубить. Если это просто солдат, он подойдет и встанет рядом с объектом.
Spear Of Good
+ добавлено отображение переносимого ресурса (для рабочего класса)))
= пофикшены материалы для распределение на стороны
Также, дополнена идея самой игры, теперь участвующих сторон "конфликта" - три.
Люди, Нежить и Биороботы.
Примерное локальное время 3033 год от "Падения Империи Летящего льва"
Игра берет некоторые особенности окружения из двух аниме, так что возможны пересечения с сюжетом.
Сюжет пролегает в том месте, где человечество имеет множество перерождений (падений империй). То есть, дошли до ядерного оружия, применили его. Людей почти не осталось. Они снова используют луки и стрелы, но остались следы предыдущих эпох. Следующая эпоха, дошла там до биороботов, опять что-то смертоносное придумала, опять выжили единицы и так циклично
То есть по всей карте, будут отголоски (артефакты) предыдущих эпох.
А также мой друг Robocop, прислал для игры новую модель "золотого рудника"
Ностальгия по РУСьСКИМ играм http://www.gamedev.ru/flame/forum/?id=218782
+ все "источники" ресурсов теперь имеют общий класс, который содержит: тип ресурса, его количество, сколько могут работать одновременно, а также время работ для добычи ресурса.
кроме того теперь ресурсы передаются юнитам (не вздумайте добыть золото, а затем добыть дерево!!! - это геймхак )))
+ теперь первый ресурс у юнита-рабочего отображается за спиной правильно.
= пересмотрел ещё раз стилистику и принял решение сделать всё таки Minecraft RTS, тем кто в него играл будет освоится порще. Выращивание пшеницы, рубка деревьев, разведение скота и прочего будет с похожей механикой
+ добавлено состояние объекта при окончании ресурса (пеньки)
= исправлено куча багов по пути...
ну чё могу сказать... картинки прилагаю, разрешаю фапать на игру (прим. в ред.) ;)
Какой террейн используешь? Обычный юнитевский?
Пока да, потом наверное буду все генерировать (деревья, ландшафт, шахты и дороги с ручьями), но это будет после, когда ИИ будет себя адекватно вести
Давненько не виделись 8)
Никогда бы не подумал, что такой фактор как "соседи" играет столь важную роль, даже в "поиске пути" (A* Pathfind). И ктобы мог подумать что они смогли ускорить алгоритм аж в 200раз от первоначального варианта, что в итоге составило 5.3мс (0.053сек, а было 0.250сек да ещё и в 2д, а новый в 3д) и всё это всего лишь на Питоне (говорят он не самый быстрый в исполнении кода).
А с чего бы вдруг я полез в Python? Дык всё элементарно "Ватсон", я не просто прозябал это время, а нашел то что так давно искал, а именно код. Ну что может быть интереснее обычного банального работоспособного кода. А код собственно о том, как привязать Юньку к моему серверу, и не просто серверу, а совершенно любому, будь то Java (ток не надо путать с JavaScript) или Python.
Тепло, теплее, горячоооо!....
Да, именно. А что нужно хорошему серверу который считает перемещения юнитов ... или NPC? Правильно, быстрый поиск пути.
Сейчас я написал два сервера, на двух языках. И скоро, вы увидите в действии всё это добро. И наконец таки, у меня появится свой маааленький постоянный онлайн серверок, с какой то своей онлайн (only) игрой. Фух. Вот такие пироги.
PS: да, если кому нужен алгоритм поиска, как только дофиксю его, смогу выложить его на двух языках. Алгоритм ищет в 3д пространстве по графам. Оригинал статьи тут (правда там для 2д): http://www.redblobgames.com/pathfinding/a-star/implementation.html
Удобство данного алгоритма заключается в том, что вы сами определяете что является "соседом" или ячейкой. Это могут быть координаты на карте xyz или же вообще ноды. И соответственно от их количества, определяется и скорость работы алгоритма. В карте 16x16 (2D) он мне выдал аж 0.003мс, что не может не радовать 8)
А ещё там есть генератор мира (http://www-cs-students.stanford.edu/~amitp/game-programming/polyg… p-generation/ который вы наверняка уже встречали) и в дополнительных ссылках которого есть генератор чуть ли не целой страны. О чём ещё можно мечтать? (когда есть куда стремиться).
Всем проектам большой привет (AWPStar, Madware, robotcity, bwolf88 и д.р.), вижу как стараетесь и трудитесь, и даже если не отписываюсь, всё равно слежу за вами.
Salamandr
У поиска пути на сервере есть одна проблема, он не имеет фиксированного времени обработки - и посему предсказать будут лаги или нет не возможно. И зачем тебе считать пути если это может сделать клиент, клиент посчитал кинул на сервер путь а сервер пусть двигает.
> А ещё там есть генератор мира
> (http://www-cs-students.stanford.edu/~amitp/game-programming/polyg…
> p-generation/ который вы наверняка уже встречали)
встречали, кстати очень не удобный, выглядить прикольно. вот этот показался более интересным http://nusic.github.io/Land-generator/ особенно для RTS (демо http://nusic.github.io/Land-generator/)
> Всем проектам большой привет (AWPStar, Madware, robotcity, bwolf88 и д.р.),
> вижу как стараетесь и трудитесь, и даже если не отписываюсь, всё равно слежу за
> вами.
robotcity
> есть одна проблема, он не имеет фиксированного времени обработки
нет такой проблемы, можно считать путь частями, а не целиком. то есть запускать продолжение поиска в нужный момент (сразу 10 шагов, и через секунд 20 досчитать остальное, или там каждый тик делать по одному шагу)
Salamandr
если растянешь поиск пути на тики, то есть большая вероятность что юнит не сразу будет реагировать на команды клиента, клиент дал команду юнит не двигается, клиент дает опять команду, старая затирается и поиск пути начинается по новой и так придет к тому что юнит или не сдвинется или у клиента не хватит терпения, вообще то это не предположение это факт, потому что уже делал такое, да еще и проблема с потреблением памяти алгоритма A*, вообщем считать на сервере очень сложно.
Salamandr
> Туман войны - пофикшен до нормального состояния (в видео этого пока нет)
А каким способом делали туман войны? Если можно ссылку.
robotcity
> юнит не сразу будет реагировать
так и есть
>и так придет к тому что юнит или не сдвинется или у клиента не хватит терпения
это решить гораздо проще чем кажется, главное я добился высокой скорости работы алгоритма (есть ещё дополнительные способы увеличения, но они не подходят для 3д)
>да еще и проблема с потреблением памяти
ну... minecraft сжирает все мои 6 гигабайт под 1 карту 1600x1200 c 20 игроками и это считается нормальным (вообще нормальным считается наличие оперативки в 32гб, чего нет, того нет). А у меня мир значительно меньше, так что проблем особых быть не должно. Но память точно сожрут все мобы.
>вообщем считать на сервере очень сложно
а других вариантов не бывает, первое правило сервера: никогда не доверяй пакетам от клиента.
потому что клиент игры могут хакнуть, потому что пакет могут подсунуть и т.д. и т.п., не то чтобы "плавали -> знаем", но опыт кое-какой имеется.
Если есть желание, можно объединится для проекта.
Anshivl
>можно ссылку
http://staraban.com/tuman-vojny-v-unity/
Единственное что, я его подшаманил. Тут один проход, мне пришлось использовать 2а. Первый рисует только эти круги-масок в камере, вторая камера рисует по PathFlow (это как раз создает карту, уже пройденных мест), ну и сам шейдер потом объединяет всё это дело на Plane.
То есть на сцене три камеры (одна из них, игровая, для отображения мира игроку, обычная проще говоря), две из которых рендерят карту для масок.
Salamandr
> Если есть желание, можно объединится для проекта.
в чем объеденяться если я все делаю по другому, даже с madware ничего похожего, да я тоже планирую делать просчеты на сервере, но у меня мечты о тысячных армиях и сотнях игроков на одной карте, тут хочешь не хочешь приходится все оптимизировать по самое не балуй, поэтому A* улетел в трубу он не эффективен для сервера, для сервера пишу собственную реализацию с поиском пути это смесь A*-flowgrid-и поисков пути по дороге(графы вообщем). Я вообще не против объеденяться, но чет не везет мне с этим.
Тема в архиве.