По итогам нескольких дней работы в GameMaker Studio 2 принято решение остаться на старой версии - Game Maker 7.
Было сложно сделать выбор.
Если бы переход на GMS2 состоялся, то TNU4 начал бы писать с нуля.
Что в таком случае могло появиться:
- поддержка джойстика без сторонних программ
- 60 FPS
- фильтры
- большая вероятность чёткой пиксельной картинки
- кроссплатформенность
- пересмотренный принцип реализации тех или иных моментов в игре (т.е., с учётом навыков иначе запрограммированный игрок, слуги и т.д..)
Но пришло осознание объёма уже проделанной в GM7 работы; помимо реализации игре сопутствуют постоянные тестирования. На это действительно уходило и уходит много сил и времени.
На первый взгляд, накопленные знания помогут выполнить любые поставленные в программировании задачи. Но и из-за них же при реализации чего-либо неволей приходится продумывать множество потенциальных обстоятельств.
В качестве примера: элементарное управление героем, на которое я безуспешно (успех - 100% удовлетворенность результатом) потратил минувшую ночь.
Не удалось сделать движение игрока влево и вправо без погрешностей. Проблема заключалась в том, что помимо банальных нажатий клавиш нужно было учитывать нажатость других направлений (ВВЕРХ / ВНИЗ) и устанавливать соответствующее поведение.
Дело тут, возможно, не в GMS2.
Просто этот момент показательный: стало ясно, что без тщательных тестирований и уделения должного количества времени (никогда не знаешь сколько может потребоваться) разработка с нуля затянется на весьма ощутимые сроки.
Не на долгие годы, скорее всего, конечно, но всё-таки переписывание игры не будет "лёгкой прогулкой".
К этому добавляются отличия в программировании в GMS2 от GM7 (появились новые функции, пропали некоторые старые, сохраняются вопросы по возможностям самого GMS2 (они, наверняка, решаемые)).
Всё это создаёт сомнение в целесообразности перехода и в уверенности, что сохранится мотивация / хватит сил дотянуть проект до конца.
В целом, проработанность TNU4 на данный момент на GM7 меня устраивает.
Не потому, что реализованное уже тяжело менять. Мелкие недоработки в механике, в левелдизайне периодически попадаются. И они все поправляются.
Правда, упомянутые вначале плюсы перезапуска на GMS2, в таком случае, вероятно, не появятся.
Т.е., если проект остаётся на GM7, то:
- не будет 60 FPS (а будет 30)
- джойстик напрямую не поддерживается (но можно подключить специальные программы: Xpadder, Joy2Key...)
- не будет кроссплатформенности (но она и не ставилась в приоритет + она возможна, но с большими оговорками - о них будет написано ниже)
- чёткой пиксельной картинки во весь экран может не быть (но нужно тестировать - у меня при определённых настройках в игре с этим порядок).
Ещё одним обоснованием для перехода на GMS2 была возможность более простой работы над картами уровней: в комнатах появилась лупа, легче управлять расположением объектов. Работа над уровнями в GM7 посложнее, но не могу согласиться, что GMS2 предлагает вариант ощутимо проще. В GM7, на худой конец, можно запрограммировать запись координат расставленных платформ и иных объектов в дебаг-режиме, который в TNU4 уже довольно функциональный.
На данный момент при разработке уровней большую сложность представляет отсутствие / неопределённость идей левелдизайна, а не программная часть.
Мне кажется, что перечисленные выше плюсы от перезапуска проекта на GMS2 не столь важны для TNU4. Точнее, они не перевешивают то, что уже сделано и не являются оправданием для потенциальной траты большого объёма сил и времени (+ увелечения риска банального выгорания).
Хотя эти плюсы, если и не все, то часть можно будет добавить после завершения разработки на GM7 (НО ЭТО НЕ ТОЧНО + если энтузиасты захотят попробовать; сам вряд ли смогу это сделать): как минимум, кроссплатформенность - на Linux, Android (?) .
Axel_k пытался портировать проект с GM7 на GMS2.
И это почти удалось. Но есть свои сложности.
Возможно, придётся запрограммировать некоторые элементы игры заново, но факт - игрок (правда, не Ункенде, а Роберт) уже может побегать в первом уровне. Меню, открывающая катсцена практически полностью перенесены в порт.
Соглашаться на портирование игры на GMS2 сейчас, когда она ещё не закончена, и продолжать разработку в GMS2 не хочется.
В GMS2 мне объективно сложнее работать с непривычки и из-за отличий в коде. А также морально давит и то, что всё уже реализованное нужно будет вновь тестировать и что-то может понадобиться исправить (неизвестно сколько и как долго).
Также будет напрягать и то, что не поправил мелкие неточности, которые благодаря имеющимся знаниям я бы сейчас запрограммировал по-другому; сделал бы компактнее, функциональнее.
Но из-за портирования игры, а не переписывания её с нуля, что-то кардинально менять будет куда труднее, чем писать заново. А писать заново - долго и трудно.
В какой-то степени оправданием оставления проекта на GM7 является его уникальность: наверно, сейчас, никто не делает подобные крупные проекты посредством данной версии. А также в таком случае в игре остаются элементы, которые были запрограммированы по-разному; так, как умел в разные годы разработки: одно сделано довольно топорно, а другое - заметно прогрессивно. Что-то в игре потенциальные взломщики, ожидаю, обнаружат сразу, а что-то могут и не заметить. Главное, что вся эта "конструкция" работает. А в GMS2 же рационально было бы задействовать максимум накопленных знаний (получилось бы компактнее, проффессиональнее, но потеряло бы свой "шарм" - но это в конечном итоге, до которого ещё нужно добраться, что не факт).
В любом случае, я не забрасываю изучение GMS2 насовсем. Буду, хотя бы пытаться писать на нём вспомогательные программы для стримов и того же TNU4 (если что-то понадобится).
Заглядывая в далёкое будущее, новые игры тоже попробую, в первую очередь, делать посредством GMS2.