Поскольку Дядя Миша завершил работу над Xash-движком и XashXT, мной было принято решение создать форк XashXT, в котором я хочу воплотить в жизнь следующие планы:
Написал сюда только те аспекты, которые вспомнил. Возможно что-то упустил.
1. Актуальная документация, на русском и английском языках
2. Поддержка современных компиляторов и IDE
Иначе говоря: упростить всю возню до уровня "скачал код, открыл IDE, и начал клепать очередную Зону 51"
3. Рефакторинг кода
Если кратко: сделать логичную и удобную структуру каталогов в репозитории и раскидать все исходники по ней.
Ещё первое что приходит в голову - для каждой энтити сделать отдельную пару .h/.cpp файлов.
4. Окончательно пофиксить все проблемы, связанные с лагами от wpoly (на видеокартах AMD в частности)
5. Прикрутить графические плюшки и систему материалов с удобным интерфейсом
Насколько я знаю, что-то такое уже реализовано в P2. Коли так, то буду от неё отталкиваться.
6. Кроссплатформенность
Предполагается что форк будет использоваться со свежей версией FWGS-форка движка. Так что можно сказать, что по этому аспекту не будет особых трудностей.
Суть этой всей задумки проста: предоставить моддерам простой и удобный SDK для разработки игр под движок Xash3D.
Сам лично я планирую разрабатывать форк и параллельно внедрять наработки к себе в мод. В итоге получается двойная польза.
Этим постом я просто решил сообщить о своих намерениях. Возможно, это повлияет на чьи-то планы касательно разработки мода.
Пока еще в этом направлении ничего не готово - работу планирую начать летом 2020 года, поскольку освобожусь от учёбы я только к тому времени.
В свою очередь я хочу, чтобы здешний народ дал мне знать, есть ли спрос на подобные вещи. К посту прикреплю опрос, будьте добры проголосовать.
Старовато, однако.
У меня в приоритете Visual Studio 2017/2019, но вообще я к форку прикручу cmake/waf, и там уже не будет разницы какую IDE использовать.
Отличная затея! Если ещё и простой скриптинг оружия и монстров будет, а также куча энтитей, чтобы делать меньше костылей, то будет очень и очень круто!
SNMetamorph писал: 3. Рефакторинг кода
Если кратко: сделать логичную и удобную структуру каталогов в репозитории и раскидать все исходники по ней.
Ещё первое что приходит в голову - для каждой энтити сделать отдельную пару .h/.cpp файлов.
Рефакторинг кода - это когда модифицируют код, разве нет?
Я не совсем понимаю, зачем тасовать код между файлами, заниматься сортировкой строчек в delta.lst и тому подобными странными вещами.
Если есть силы и свободное время - потратил бы его на изучение теории движкостроения и попрактиковался в написании собственного. Вот это было бы полезно.
XaeroX писал: потратил бы его на изучение теории движкостроения и попрактиковался в написании собственного.
Я думал это один из этапов развития.
Сначала понимаешь, что тебя не устраивает чей то код, пытаешься его рефакторить, потом происходит озарение и понимание того, что проще написать все самому заново.
За документацию по движку и моду - да, за всё остальное - нет.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
AntiPlayer писал: Сначала понимаешь, что тебя не устраивает чей то код, пытаешься его рефакторить, потом происходит озарение и понимание того, что проще написать все самому заново.
А ещё позже может прийти понимание, что изначальный код был очень хорошим и правильным и "зря я его рефакторил".
SNMetamorph писал: Если кратко: сделать логичную и удобную структуру каталогов в репозитории и раскидать все исходники по ней.
Ещё первое что приходит в голову - для каждой энтити сделать отдельную пару .h/.cpp файлов.
Это никому не нужно. Бесполезная трата времени в условиях, когда хочется сделать ну хоть что-то, а навыков нехватает. Мне например сейчас создание каждого нового h\cpp как серпом по яйцам, только отвлекает и время тратит.
Если всеръез возьмешься, я тебе скину несколько исправлений багов, которые забыл сделать.
Теперь из тово, что можно было бы реализовать:
1. бамп маппинг
2. тени от всенаправленных источников
3. скриптовые пушки
Ну это так, навскидку.
AntiPlayer писал: Сначала понимаешь, что тебя не устраивает чей то код
Вот тут и вопрос - не устраивает чем? Если ты его не понимаешь, то это твои проблемы, а не кода. А вот если ты в нём нашёл кучу ошибок - это уже другое дело.
Единственное на что я может быть потратил бы время касательно XashXT -- это последний пункт. И чтобы полностью его достичь, нужно закрыть одну очень крупную задачу в самом Xash3D FWGS -- проигрывание авишек и в самом XashXT PhysX обновить до версии с открытым исходным кодом, потому что она единственная которая заработает на Linux.
А так, мне кажется Дядя Миша уже сделал всё, чтобы XashXT был удобным инструментом, сравнительно с HLSDK, SoHL и подобных проектов.