Страница 1 из 2

Поговорим о Godot

Сообщение #1Добавлено: 12.11.2016, 00:55
Neofit
У меня есть интерес к этому движку, но не знаю с какой стороны подступиться, нет нормальных манов на отечественном, да и прогать я не горазд.
Однако, есть ли интерес у форумчан к Godot-технологиям, может кто то уже пробовал что то сделать?
Кто хочет поковыряться с ним?
Я бы сделал ремейк игрушки которую развивал лет десять назад на game maker.

Сообщение #2Добавлено: 12.11.2016, 01:16
СамСуCам
Neofit, Дима Кива на этом движке игру сделал, он может что знает.

Сообщение #3Добавлено: 12.11.2016, 01:47
exooman
начни с БГЕ, разберись с синтаксисом питона, научись ориентироваться в API. Затем изучай годот - там принцип тот же самый, но API более широкий. Ну и интерфейс ближе к юньке.

Сообщение #4Добавлено: 12.11.2016, 01:53
grayich
Neofit, хотел одно время его тыкать, но потом глянул реальное состояние... нет смысла, он не намного шустрее BGE, разве что для 2d пользовать.
godot v3 вроде ожидается более вкусный

Сообщение #5Добавлено: 12.11.2016, 08:23
Neofit
СамСуCам, А годот один человек разрабатывает?

Сообщение #6Добавлено: 12.11.2016, 09:41
Bibo
http://cgex.ru/viewforum.php?f=28
Частичный перевод официальной вики.
На сайте движка так же есть FAQ и достаточно полезной информации.

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

Сообщение #7Добавлено: 30.01.2018, 14:29
grayich
выпустился godot 3.0 https://godotengine.org/article/godot-3-0-released
rus -- http://www.opennet.ru/opennews/art.shtml?num=47990

ктось 3-тью версию уже тыкал? как оно в 3д ?

Сообщение #8Добавлено: 31.01.2018, 18:42
stark
Клёво. Но если 29-го выпустился, то рано спрашивать. Только если до релиза можно было пощупать и кто-то щупал.

Агитируют использовать glTF 2.0, хотя Collada никуда не делась. Вроде есть экспортёр из Blender от Kronos на GitHub и ещё один от некоего Kupoman. Интересно, это вообще актуально и работает?

Сообщение #9Добавлено: 18.03.2018, 22:57
stark
Посмотрел Godot 3 по части скелетной анимации. Пишут что ограничения есть вроде того что висящие кости некорректно обрабатываются и что вообще скелет должен быть деревом из connected элементов чтобы сейчас обрабатываться корректно.

Видно что хранятся внутри матрицы преобразований по штуке на кость. Но больше удивило как реализована скелетная анимация сама по себе. Хотя наверное это и есть современный подход. Текущее положение скелета из оперативной памяти пишется в "текстуру" 4xfloat32 в каждой ячейке а на видеокарте вершинный шейдер делает по 3 текстурных выборки чтобы получить матрицу преобразования 4x3 от одной кости (до 4x4 расширяется константной строкою) и делает это ровно для 4-х костей на вершину.

Т.е. деформируется меш уже на видеокарте в вершинном шейдере. И есть ограничение что максимум 4 кости влияют на вершину. Объём передаваемых на каждом кадре в видеопамять данных зависит от количества костей а не вершин заскиненного меша. Вообще "текстура" в видеопамяти с матрицами от арматуры забиндена на область оперативной памяти и как там внутри работает видимо уже от OpenGL зависит. Сами же вершины перемещаются параллельно на видеокарте, правда это стоит 12 текстурных выборок на вершину. Интересно, есть ли такое что эти данные накапливаются в кэше у потоковых процессоров/блоков потоковых процессоров чтобы оптимизировать и делать меньше 12 текстурных выборок на применение скелетной анимации для каждой вершины.

Добавлено спустя 2 минуты:
Документация по Godot 3 пока, увы, оставляет желать лучшего, как по мне. Но урок по созданию игры Dodge The Creeps я прошёл полностью :)

Сообщение #10Добавлено: 18.03.2018, 23:53
Neofit
stark, Ноды щупал? Прогать приходится много? На сколько актуальны старые уроки?

Сообщение #11Добавлено: 19.03.2018, 10:35
Дмитрий
>> Ноды щупал?
А что интересует то?

>> Прогать приходится много?
Да как и в любом другом.

>>На сколько актуальны старые уроки?
А я честно сказать по нему особо уроков то не встречал, были вольные переводы официальной документации на русский, а оригинальных уроков не встречал. Документация под третий может и не в идеале но она есть, и я бы не сказал что сильно плохая.

Сообщение #12Добавлено: 19.03.2018, 12:08
Bibo
Neofit писал(а):На сколько актуальны старые уроки?
Зависит от версий. Общая концепция неизменна, но много различий в интерфейсе. Импорт теперь автоматический, настройка частиц отличается самую малость, неплохо видоизменился редактор анимаций.
Если разбирался в старом, в новом особых проблем не возникнет. Но новая версия пока сыровата.
Neofit писал(а):Ноды щупал? Прогать приходится много?
Почти обычное программирование, но вместо рукописного кода выбираешь функции/переменные мышкой.

Сообщение #13Добавлено: 19.03.2018, 14:59
Neofit
Дмитрий, Так, ноды то в чем то заменяют писательское проганье?
Я так понимаю что создание игры очень далеко от визуального программирования а ля Game Maker..
Немного учу питон, и хотелось бы понять в какую сторону его учить для применения в Blender и Godot

Сообщение #14Добавлено: 19.03.2018, 15:43
Levitanus
Neofit писал(а):в какую сторону его учить
да в принципе, без разницы. Я вот месяца три назад с питоном столкнулся - и очень полюбил. Можно для "введения в курс дела" пройти http://adventofcode.com
А все, что кроме общиего программирования - уже только курение API и понимание матчасти движка.
Я вот не помню точно, но в unity, кажется, один из трех языков - boo, который является форком питона 2,5 что в принципе ставит под вопрос необходимость курения API blendera или фреймворка godot, если уж речь идет о кодинге.
А в самом кодинге ничо плохого нет, на этапе построения функционала не сложнее врубиться, чем в то же 3D. Вот когда грянут оптимизации и масштабирование архитектуры - то дилетантизм полезет, но к этому моменту, дай бог, будет уже реализован функционал, встанет на место голова, и будет хороший список статей и мануалов для покурить ;)

Сообщение #15Добавлено: 19.03.2018, 15:48
Дмитрий
А... про эти ноды, простите в формате ИМХО, изврат. Если вы хоть на чём ни будь писали раньше, освоить GDScript ничего не стоит. И да, к слову, в годот не питон, GDScript, сейчас ещё прикрутили моно.

Типы данных, простые структуры данных (массивы, диктонарии), методы над стандартными данными, конструкции языка - шаг в лево, шаг в право во всех языках одинаковые, специфика языка осваивается в процессе, просто начните и всё пойдёт. Документация по GDScript весьма хорошая - классы, методы всё описано не плохо, есть вводный курс с примерами. если что вот сдесь: https://godotengine.org/qa/ обычно довольно быстро помогают.

Сообщение #16Добавлено: 19.03.2018, 16:09
dron
Levitanus писал(а):но в unity, кажется, один из трех языков - boo, который является форком питона 2,5
Они от него давно отказались, так что в юнити можно использовать только IronPython для трансляции в C#.
Neofit писал(а):Дмитрий, Так, ноды то в чем то заменяют писательское проганье?
Имхо есть UML для которого давно есть генераторы кода для любого языка остается только дописать нужные конструкции в код если из генератора их получить затруднительно (с ходу назвать генераторы не могу так как пользовался только 1 раз для поиграть и уже не помню названия)

Сообщение #17Добавлено: 19.03.2018, 16:17
exooman
Neofit писал(а):Немного учу питон, и хотелось бы понять в какую сторону его учить для применения в Blender и Godot

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

А по сути, нужно понять лишь одну суть: весь код - это лишь указание путей до некого функционала, ну и сам функционал.
Вот например, на неком сайте есть картинка - это функционал. Чтобы открыть её, нужно вбить адрес в некое поле - это уже путь до функционала. А если до этого нужно было указать путь до адресного поля? А перед этим указать регистр? И всё это нужно сделать, используя лишь блокнот? Вот это и есть погромирование. Естественно с сугубо художественной точки зрения.

Что нужно учить первым делом? Синтаксис языка. То есть правила, по которым регулируются все взаимоотношения в коде.

Далее изучаем фундамент любого языка:

- основные типы переменных (bool, string, int, float),
- математические операции и работу с форматированием строк,
- массивы и списки,
- принцип работы методов(функций)
- классы

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

И к слову, стоит строго разделять в представлении саму суть изучения языка: выучить общие синтаксис и правила - это одно, а выучить API конкретного движка - совершенно другое, зачастую имеющее к самому языку лишь косвенное отношение. Например, API того же годота качественно иное, нежели у BGE (пусть и схожее). И выучив API одного, навряд ли оно пригодится во втором.

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

Сообщение #18Добавлено: 19.03.2018, 16:44
Levitanus
dron писал(а):IronPython для трансляции в C#.
лучше уж, наверное, сразу net учить))

Сообщение #19Добавлено: 19.03.2018, 17:14
Дмитрий
Автор куда то делся..., а мы на правах офтопа обсуждаем предпочтения по средам разработки и языкам ;)

Levitanus писал(а):лучше уж, наверное, сразу net учить))
А я вот к нему очень плохо отношусь, и дело даже не в языке (тут как раз всё пучком), а в том, что это сугубо приблуда интерпретатора дерьмодоту нет... да и по большому счёту платформенноориентированного интерпретатора.

Впрочем язык тут вообще не главное, упираться в него як краеугольный камень не надо. Если человек (топикстартер) действительно имеет намерения разработать некую игру (идею) или вообще попробовать/освоить это дело... гамедев очень полигранная штука и абсолютно прикладная, не надо упираться рогом в одну из составляющих и надо не репетировать где то там "с питоном" не зная в какую степь его поизучать... надо сесть, для начала как минимум описать (сформулировать и зафиксировать) свою идею, написать долгосрочный план (план проекта) и краткосрочный план (текущих задач) и поступательно работать по всем направлениям.

Сообщение #20Добавлено: 19.03.2018, 21:44
stark
Neofit писал(а):stark, Ноды щупал? Прогать приходится много? На сколько актуальны старые уроки?
Если имеется ввиду ноды как визуальное программирование, то нет, не щупал. Я вполне себе программист и не избегаю кодить. Наоборот считаю что код - это лучшая организация решения сложной задачи. Например недавно радовался тому что можно починить отвалившиеся драйвера в blender просто редактируя связанную строчку dna, по сути код, а не удаляя и создавая вновь.

А так думаю на вопросы тут уже ответили. Я тоже считаю что не стоит "бегать" от написания кода. Я, например, не учил Python почти и не прочитал всю эту целую страницу с описанием GDScript в Godot. Понимание как оно работает обычно появляется в процессе, если например урок проходить. Чуствуешь что путаешься в синтаксисе языка и базовых конструкциях - подтягиваешь язык. Нет - учишь API пытаясь решить свою задачу.

Уроки смотрю только по новой версии. Сейчас вроде в процессе написание урока по созданию First Person Shooter в Godot 3, что-то уже выложено если не всё.