Название: Crunch House
Жанр: Песочница, симулятор геймдев студии, экономическая стратегия
Вдохновители: RimWorld, Factorio, Prison Architect
Движок: Godot
Разработчик: Alprog
Репозиторий: GitHub
Начало проекта: 4 сентября 2023
Подробный симулятор геймдев студии с отловом багов, рефакторингом, фичекатами, bus-фактором, документацией, мерж-конфликтами, спагети-кодом, тех.собесами, мотивацией, кранчами, пицца-патями, харассментом, кондёрами и уборкой.
Основное отличие от разнообразных казуальных симуляторов геймдева, типа GameDev Tycoon или GameDev Story, в том, что основная игровая карта будет не офис, а виртуальный мир разработки, куда девсы телепортируются садясь за компьютер, и где они будут физически выращивать код, отлавливать баги и заниматься прочими активностями.
Так же планируется третья карта — мир игры.
Короче, по фану стартанул новый пет-прожект чуть больше недели назад. Буду пилить по вечерам после работы по мере возможности. Если не заброшу сразу, то скорее всего это долгострой. Но поскольку это песочница, в которой нет чёткого финального состояния, и которую можно улучшать и докручивать бесконечно; меня вполне устроит судьба вечного раннего доступа.
Однако это не оторванный от реальности долгострой. Амбиции и артстайл специально подгоняются так, чтобы это было мне по силам в соло. В качестве пруфа, что я адекватно представляю объём работ, вот пример крупного проекта, в котором я был лидом: Encased. Пока никого в команду не ищу. О возможности продать не думаю тем более. Ну а там посмотрим, как говорится.
Взял Godot, потому что принципиально не хочу Unity (у меня к ней старая нелюбовь, задолго до вчерашних новостей), Unreal слишком жирный для моего проекта, а Defold не особо удобен под 3D. К тому же мне импонирует опен-сорсовость и либеральность в плане языков.
GDScript осваивать не хочу, поэтому стартанул на C#, но вполне допускаю, что позже подключу силу С++ для трушности и какой-нибудь скриптинг для модинга. Не исключаю, что на каком-то этапе проекта психану и фана ради стану прикручивать к проекту мой второй пет-проджект — скриптовый язык ку-ку, который всё ещё в зачаточном состоянии. Ну или буду совершать какие-то другие неадекватные мувы по ходу разработки. Потому что это мой проект по фану. И если не реализовывать наркоманские хотелки, то зачем это всё?
Ах, да. Исходники пока планирую оставить публичными на GitHub. Там же, на github pages, будет вестись диздок, он же вики по игре. Однако OpenSource лицензию пока не прикрепляю, так что по умолчанию действует копирайт. Будет проект полностью опенсорсным или всё-таки коммерческим, решу когда-нибудь потом.
Alprog
> основная игровая карта будет не офис, а виртуальный мир разработки, куда симы
> телепортируются садясь за компьютер, и где они будут физически выращивать код,
> отлавливать баги и заниматься прочими активностями.
Не очень понятно, откровенно говоря...
P.S. Желаю успехов и надеюсь на частое обновление девлога.
GDR
> Не очень понятно, откровенно говоря...
Представь себе офис, по которому ходят человечки, как в RimWorld. Работают за компом, пьют воду из кулера, совещаются в переговорках, ходят на обед.
А теперь представь вторую карту. Только не офис, а абстрактное виртуальное пространство. На этой карте такие же симы дэвы делают всякие другие активности: сажают картошку, поливают её, избавляются от жуков-вредители. Только сажать они будут не картошку, а код. А жуки-вредители — это баги. Ну и так далее. У меня в голове более-менее сформированный вижн, как внутри этой метафоры должны работать механики костылей, спагети-кода, легаси, мерж-реквестов и тому подобного.
Я в обычные симуляторы разработчика не играл - потому что смотрелось все не завлекательно. А здесь сам концепт более менее заинтересовал
Вот этот второй мир - это олицетворение некоего конкретного "проекта" над которым они работают или их деятельности и работы в целом? Думаю второе, но все же интересно уточнить.
В любом случае - удачи в разработке, получай от проекта фана больше чем рутины. Помню еще маленькую и скромную rpg)
Alprog
> GDScript осваивать не хочу
В какой-то степени придётся, т.к. API демонстрируется в основном на нём.
Но "осваивать" его особо и не надо. Просто скрипт с питонной индентацией.
И поддерживается он в первую очередь.
Я начал с крестов, тоже примерно по такой мотивации, но GDScript как то сам освоился.
У шарпа там есть свои закавыки, к которым говорят надо привыкнуть.
druggon
> Вот этот второй мир - это олицетворение некоего конкретного "проекта"
> над которым они работают или их деятельности и работы в целом?
Олицетворение конкретного проекта (или даже нескольких). Нужно будет собирать проект из фич, наполнять их необходимым контентом. Следить за зависимостями между модулями, выделять их в движок.
> Помню еще маленькую и скромную rpg)
было дело ^_^
Der FlugSimulator
> У шарпа там есть свои закавыки, к которым говорят надо привыкнуть.
По шарпу пока не заметил проблем в использовании. Из заковык Godot'а столкнулся пока только с тем, что isampler и usampler номинально существуют в шейдерах, но, похоже, что нет способа указать формат при передаче текстуры в материал.
Alprog
> isampler и usampler номинально существуют в шейдерах, но, похоже, что нет
> способа указать формат при передаче текстуры в материал.
Его и не надо указывать при передаче. Это просто подкласс Texture2D. Ты её сформировать соответственно должен.
Der FlugSimulator
> Это просто подкласс Texture2D. Ты её сформировать соответственно должен.
Я понимаю, как это должно работать в теории. Но на практике, как ни передавай, Godot переконверчивает твои инты в чёрти-что. Во всяком случае, я нагуглил confirmed bug с описанием этой проблемы, и он не зарезолвлен. В самом конце топика там нашли какой-то workaround, но я не вникал. Мне проще забить и обычный UNORM домножать на 255 в шейдере.
это будет интересно
Alprog
> GDScript осваивать не хочу, поэтому стартанул на C#, но вполне допускаю, что
> позже подключу силу С++ для трушности и какой-нибудь скриптинг для модинга.
Посмотрел как делать С++ на Годе, это просто праздник какой-то:
https://docs.godotengine.org/en/stable/contributing/development/c… odules-in-cpp
Создай пачку каких-то файлов, руками везде пропиши пути компиляции, зарегистрируй в движке каждую функцию, создай пихтон скрипт, и тогда, так уж и быть, мы тебе позволим использовать плюсы. А - автоматизация.
ЗЫ: Идею одобряю, будет интересно посмотреть как у тебя получится именно с "геймдевелоперским" геймплеем. Я тоже много думал на параллельную тему и не придумал ничего интересного.
jaguard
> Посмотрел как делать С++ на Годе, это просто праздник какой-то:
Модули это немного не то. В последний годот завезли GDExtension для плюсовых плагинов.
Там тоже не прям сильно автоматизировано, но всё-таки полегче.
> Идею одобряю
Спасибо!
jaguard
> Посмотрел как делать С++ на Годе, это просто праздник какой-то:
Изза праздников, не туда посмотрел. Это модули, т.е. по сути модификация ядра.
Есть gdnative и gdextension - там просто shared library пишешь.
В 4-ке кстати говорят под вендой с отладкой проблема: ОС лочит dll от модификации.
Т.к. у меня не win, я особо не страдаю, но если правильно помню в 4.2 dev вроде уже решили.
В Godot'е очень удобная работа с окнами.
Буду поддерживать игру на двух мониторах на одном или в двух окнах.
Внутри одного окна тоже скорее всего будет возможность делать сплит-скрин, чтобы за разными локациями следить.
Пока разбираюсь с местным инпутом и фокусом. В Encased я написал очень годную систему евентов и фокуса, которая поддерживала кучу всего, включая биндинг, комбинации клавиш, контексты действия, локализацию, виртуальный курсор, геймпад, пульсацию кнопок, глобальный резолв OnHover и Update-евент. Вот думаю, хочу ли я здесь такое же для контроля за происходящим или пока хватит местного функционала?
Тоже касается сериализации и формата для ассетов. С одной стороны это первостепенные вопросы. С другой — не факт, что я останусь на шарпе, так что пока не хочется сильно вкладываться в системы.
Думаю, первые пару недель попрототипирую на местных средствах, подосвоюсь получше. Потом будет видно.